RicardoSantos

[RS]Neo Wave V0

EXPERIMENTAL: Request for IvanLabrie.
Method for reading Neo             Wave's.
note: some issues arent possible to work around/fix due to limitations in pinescript.
Remove from Favorite Scripts Add to Favorite Scripts
study(title='[RS]Neo Wave V0', overlay=true)
SHOW_TF = input(title='Display Timeframe Box:', type=bool, defval=true)
timeframe = input(title='Timeframe:', type=string, defval='D')

shift = timeframe == 'D' and period == '720' ? 2 :
        timeframe == 'D' and period == '360' ? 4 :
        timeframe == 'D' and period == '240' ? 6 :
        timeframe == 'D' and period == '180' ? 8 :
        timeframe == 'D' and period == '120' ? 12 :
        timeframe == 'D' and period == '60' ? 24 :
        timeframe == 'D' and period == '45' ? 32 :
        timeframe == 'D' and period == '30' ? 48 :
        timeframe == 'D' and period == '15' ? 96 :
        timeframe == 'D' and period == '5' ? 288 :
        timeframe == 'D' and period == '3' ? 480 :
        timeframe == 'D' and period == '1' ? 1440 :
        timeframe == 'W' and period == '720' ? 10 :
        timeframe == 'W' and period == '360' ? 20 :
        timeframe == 'W' and period == '240' ? 30 :
        timeframe == 'W' and period == '180' ? 40 :
        timeframe == 'W' and period == '120' ? 60 :
        timeframe == 'W' and period == '60' ? 120 :
        timeframe == 'W' and period == '45' ? 160 :
        timeframe == 'W' and period == '30' ? 240 :
        timeframe == 'W' and period == '15' ? 480 :
        timeframe == 'W' and period == '5' ? 1440 :
        timeframe == 'W' and period == '3' ? 2400 :
        timeframe == 'W' and period == '1' ? 7200 :
        timeframe == 'M' and period == '720' ? 40 :
        timeframe == 'M' and period == '360' ? 80 :
        timeframe == 'M' and period == '240' ? 138 :
        timeframe == 'M' and period == '180' ? 160 :
        timeframe == 'M' and period == '120' ? 240 :
        timeframe == 'M' and period == '60' ? 480 :
        timeframe == 'M' and period == '45' ? 640 :
        timeframe == 'M' and period == '30' ? 960 :
        timeframe == 'M' and period == '15' ? 1920 :
        timeframe == 'M' and period == '5' ? 0 :
        timeframe == 'M' and period == '3' ? 0 :
        timeframe == 'M' and period == '1' ? 0 :
        0

tf_counter = change(time(timeframe))!=0 ? 1 : tf_counter[1]+1
//plot(tf_counter)

tf_high = not SHOW_TF ? na : security(ticker, timeframe, high)
tf_low = not SHOW_TF ? na : security(ticker, timeframe, low)
tf_hp = plot(title='TF High', series=tf_counter >= shift ? na : tf_high, style=circles, color=black, linewidth=1)
tf_lp = plot(title='TF Low', series=tf_counter >= shift ? na : tf_low, style=circles, color=black, linewidth=1)
fill(title='Time Box', plot1=tf_hp, plot2=tf_lp, color=blue, transp=90)
//hl = high >= tf_high ? high : low <= tf_low ? low : na
//plot(hl)
hh = tf_counter == 1 ? high : high >= hh[1] ? high : hh[1]
ll = tf_counter == 1 ? low : low <= ll[1] ? low : ll[1]
//plot(hh, color=black)
//plot(ll, color=black)
hhc = change(hh)>0 ? n : hhc[1]
llc = change(ll)<0 ? n : llc[1]


direction = tf_counter == 1 ? hhc[1] < llc[1] ? hh[1] : ll[1] : tf_counter == shift ? hhc[shift] < llc[shift] ? ll[shift+1] : hh[shift+1] : na
plot(title='Wave', series=direction, color=direction>fixnan(direction[1])?green:maroon, linewidth=2, offset=-shift)
Great!
Wave charts without so much hassle. It's pretty great, shame it can't be done 100% correctly.
Reply
xel_arjona
a year ago
Nice one! Reading from their site (http://www.neowave.com/info-difference.asp) it reads that they make heavy use of "golden-ratio" constant. Im currently making experimentation with this kind of "morphic numbers" with lot of attention more over the "padovan sequence" rather than the fibonacci one. For them, they tend to use the "Plastic Number" constant. Here you could find some great information about the logic behind this "morphic numbers" and their relation to -Fractal Nature- http://www.infovis.net/printMag.php?num=145&lang=2
Here is the two algebraic constant calculations that I'm using in order to experiment with my own algo's if you like to play with them:

// PHI Constant with Negative
_PHI = (1+sqrt(5))/2 // Phi Number (Fibonacci Seq.)
_NegPHI = (1-sqrt(5))/2

// Plastic Number with Negative
nroot(index,number) =>
cond_r = index == 0 or number == 0 or number < 0
If_True = 0
If_False = (exp((1/index) * log(number)))
iff(cond_r, If_True, If_False)
_PN = (nroot(3,(108 + 12*sqrt(69))) + nroot(3,(108 - 12*sqrt(69))))/6 // Plastic Number (Podovan Seq.)
_NegPN = (nroot(3,(108 + 12*sqrt(69))) - nroot(3,(108 - 12*sqrt(69))))/6
Reply
Ideas Scripts Chart
United States
United Kingdom
India
España
Italia
Brasil
Россия
Türkiye
日本
한국
Home Stock Screener Economic Calendar How It Works Chart Features House Rules Moderators For the WEB Widgets Stock Charting Library Priority Support Feature Request Blog & News FAQ Help & Wiki Twitter
Private Messages Chat Ideas Published Followers Following Priority Support Public Profile Profile Settings Billing Sign Out