OPEN-SOURCE SCRIPT

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[1], s) // or s := na(s[1]) ? 0 : s[1]
// 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[10], low[10], width=4)
line.delete(l[1])

// 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[10], low[10], width=4)

DEMOExponential Moving Average (EMA)exampleframeworkpinescriptpinescriptersSimple Moving Average (SMA)toolv3v4

Script de código abierto

Siguiendo fielmente el espíritu de TradingView, el autor de este script lo ha publicado en código abierto, permitiendo que otros traders puedan entenderlo y verificarlo. ¡Olé por el autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la reutilización de este código en la publicación se rige por las Normas internas. Puede añadir este script a sus favoritos y usarlo en un gráfico.

¿Quiere utilizar este script en un gráfico?

Exención de responsabilidad