RagingRocketBull

Pinescript v3 Compatibility Framework (v4 Migration Tool)

Pinescript v3 Compatibility Framework (v4 Migration Tool)

This code makes most v3 scripts work in v4 with only a few minor changes below. Place the framework code before the first input statement.
You can totally delete all comments.

Pros:
- to port to v4 you only need to make a few simple changes, not affecting the core v3 code functionality
Cons:
- without #include - large redundant code block, but can be reduced as needed
- no proper syntax highlighting, intellisence for substitute constant names

Make the following changes in v3 script:

1. standard types can't be var names, color_transp can't be in a function, rename in v3 script:
color() => color.new()
bool => bool_
integer => integer_
float => float_
string => string_

2. init na requires explicit type declaration
float a = na
color col = na

3. persistent var init (optional):
s = na
s := nz(s, s) // or s := na(s) ? 0 : s
// can be replaced with var s
var s = 0
s := s + 1

___________________________________________________________

Key features of Pinescript v4 (FYI):

1. optional explicit type declaration/conversion (you still can't cast series to int)
float s

2. persistent var modifier
var s
var float s

3. string series - persistent strings now can be used in cond and output to screen dynamically

4. label and line objects
- can be dynamically created, deleted, modified using get/set functions, moved before/after the current bar
- can be in if or a function unlike plot
- max limit: 50-55 label, and 50-55 line drawing objects in addition to already existing plots - both not affected by max plot outputs 64
- can only be used in the main chart
- can serve as the only output function - at least one is required: plot, barcolor, line, label etc.
- dynamic var values (including strings) can be output to screen as text using label.new and to_string

str = close >= open ? "up" : "down"
label.new(bar_index, high, text=str)

col = close >= open ? color.green : color.red
label.new(bar_index, na, "close = " + tostring(close), color=col, textcolor=color.white, style=label.style_labeldown, yloc=yloc.abovebar)

// create new objects, delete old ones
l = line.new(bar_index, high, bar_index, low, width=4)
line.delete(l)

// free object buffer by deleting old objects first, then create new ones
var l = na
line.delete(l)
l = line.new(bar_index, high, bar_index, low, width=4)

Script open-source

Dans le véritable esprit de TradingView, l'auteur de ce script l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par le règlement. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.

Vous voulez utiliser ce script sur un graphique ?