Convert haDelta from Trading View/pine script to ThinkScript?

hashy

Member
If anyone is bored and would like to convert this simple script from Trading View over to ThinkScript I would greatly appreciate it. TIA!

Code:
study(title="haDelta by Dan Valcu", shorttitle="haDelta+SMA")
delta = close - open
plot(delta, color=black)
s2=sma(delta, 3)
plot(s2, color = red)
plot(s2, color=red, style=area)
c_color=s2 < 0 ? (s2 < s2[1] ? red : lime) : (s2 >= 0 ? (s2 > s2[1] ? lime : red) : na)
plot(s2, color=c_color, style=circles, linewidth=2)
h0 = hline(0)

source: https://www.tradingview.com/script/3gxRNmub-haDelta-developed-by-Dan-Valcu/
Thanks again
 
Last edited by a moderator:

tradegeek

Active member
2019 Donor
VIP
@hashy

I'm not a coder but it seems easy so I gave it a shot for practice. Let me know how it is...

https://tos.mx/Jobl3Eb
Code:
# haDelta was originally developed by Dan Valcu
# Pinescript by Kumowizard
# https://www.tradingview.com/script/3gxRNmub-haDelta-developed-by-Dan-Valcu/
# Converted to Thinkscript by tradegeek on thinkscript.com on 04/25/2020
#
# The indicator measures difference between Heikin Ashi close and open
# thus quantifies Heikin Ashi candles to get earlier signals
# haDelta smoothed by applying 3 period SMA

declare lower;

input smoothingLength = 3;

def haclose = (open + high + low + close) / 4;
def haopen = CompoundValue(1, (haopen[1] + haclose[1]) / 2, (open[1] + close[1]) / 2);
plot HAdiff = haclose - haopen;
plot HAavg = Average(HAdiff, smoothingLength);

plot zeroline = 0;

zeroline.SetDefaultColor(Color.GRAY);
zeroline.SetPaintingStrategy(PaintingStrategy.DASHES);

HAdiff.SetDefaultColor(Color.ORANGE);

HAavg.DefineColor("Up", Color.uptick);
HAavg.DefineColor("Down", Color.downtick);
HAavg.DefineColor("Flat", Color.GRAY);
HAavg.AssignValueColor(if HAavg >= HAavg[1] then HAavg.Color("Up") else if HAavg <= HAavg[1] then HAavg.Color("Down") else HAavg.Color("Flat"));

HAavg.SetPaintingStrategy(PaintingStrategy.LINE_VS_POINTS);

AddCloud(HAavg, zeroline, Color.GREEN, Color.RED);
 
Last edited:

hashy

Member
@tradegeek Do you know how to add overbought/oversold lines to your script?
I've tried variations of the code below but get an error every time I try to add an additional "plot" to your script. Thanks again

plot OverBought = over_bought;
plot OverSold = over_sold;
OverBought.SetDefaultColor(GetColor(5));
OverSold.SetDefaultColor(GetColor(5));
 

diazlaz

Well-known member
2019 Donor
VIP
@tradegeek nice work. in ToS there is a native study called, HeikinAshiDiff. if you want HA candles you will need to apply the open/close formula for HA candles, refer to the HeikinAshiDiff for the formula.

I really like this, i going to do a quick analysis on a deviation of HA and compare it to a regular candle open and close.
 

tradegeek

Active member
2019 Donor
VIP
@tradegeek Do you know how to add overbought/oversold lines to your script?
I've tried variations of the code below but get an error every time I try to add an additional "plot" to your script. Thanks again

plot OverBought = over_bought;
plot OverSold = over_sold;
OverBought.SetDefaultColor(GetColor(5));
OverSold.SetDefaultColor(GetColor(5));

I believe you have to define the overbought and oversold area first or assign a numeric value to them when you plot them like...

plot OverBought = 10;
plot OverSold = -10;
 

tradegeek

Active member
2019 Donor
VIP
nice work. in ToS there is a native study called, HeikinAshiDiff. if you want HA candles you will need to apply the open/close formula for HA candles, refer to the HeikinAshiDiff for the formula.

I really like this, i going to do a quick analysis on a deviation of HA and compare it to a regular candle open and close.

@diazlaz Thanks buddy!

I took a look at the HeikinAshiDiff and made changes to my code to reflect that and took out some things that weren't needed in my original code.


Code:
# haDelta was originally developed by Dan Valcu
# Pinescript by Kumowizard
# https://www.tradingview.com/script/3gxRNmub-haDelta-developed-by-Dan-Valcu/
# Converted to Thinkscript by tradegeek on thinkscript.com on 04/25/2020
#
# The indicator measures difference between Heikin Ashi close and open
# thus quantifies Heikin Ashi candles to get earlier signals
# haDelta smoothed by applying 3 period SMA

declare lower;

input smoothingLength = 3;

def haclose = (open + high + low + close) / 4;
def haopen = CompoundValue(1, (haopen[1] + haclose[1]) / 2, (open[1] + close[1]) / 2);
plot HAdiff = haclose - haopen;
plot HAavg = Average(HAdiff, smoothingLength);

plot zeroline = 0;

zeroline.SetDefaultColor(Color.GRAY);
zeroline.SetPaintingStrategy(PaintingStrategy.DASHES);

HAdiff.SetDefaultColor(Color.ORANGE);

HAavg.DefineColor("Up", Color.uptick);
HAavg.DefineColor("Down", Color.downtick);
HAavg.DefineColor("Flat", Color.GRAY);
HAavg.AssignValueColor(if HAavg >= HAavg[1] then HAavg.Color("Up") else if HAavg <= HAavg[1] then HAavg.Color("Down") else HAavg.Color("Flat"));

HAavg.SetPaintingStrategy(PaintingStrategy.LINE_VS_POINTS);

AddCloud(HAavg, zeroline, Color.GREEN, Color.RED);
 

BlockWar

New member
@hashy Same here I just singed up this is a very great tool on tradingview

Code:
//@version=3
// study version 0.2

study("Automatic Support & Resistance by getmohsin.py", shorttitle = "Auto S/R by getmohsin.py", overlay=true)

left = input(defval=50, title="Left Bars", type=integer)
right = input(defval=25, title="Right Bars", type=integer)
quick_right = input(defval=5, title="Quick Right", type=integer)
src = input(defval="Close",options = ["Close","High/Low"], title = "Source")


pivot_high = iff(src=="Close",pivothigh(close,left,right),pivothigh(high,left,right))
pivot_lows = iff(src=="Close",pivotlow(close, left,right),pivotlow(low,left,right))

quick_pivot_high = iff(src=="Close",pivothigh(close,left,quick_right),pivothigh(high,left,quick_right))
quick_pivot_lows = iff(src=="Close",pivotlow(close, left,quick_right),pivotlow(low, left,quick_right))

level1 = iff(src=="Close",valuewhen(quick_pivot_high, close[quick_right], 0),valuewhen(quick_pivot_high, high[quick_right], 0))
level2 = iff(src=="Close",valuewhen(quick_pivot_lows, close[quick_right], 0),valuewhen(quick_pivot_lows, low[quick_right], 0))
level3 = iff(src=="Close",valuewhen(pivot_high, close
[RIGHT], 0),valuewhen(pivot_high, high
, 0))
level4 = iff(src=="Close",valuewhen(pivot_lows, close
, 0),valuewhen(pivot_lows, low
, 0))
level5 = iff(src=="Close",valuewhen(pivot_high, close
, 1),valuewhen(pivot_high, high
, 1))
level6 = iff(src=="Close",valuewhen(pivot_lows, close
, 1),valuewhen(pivot_lows, low
, 1))
level7 = iff(src=="Close",valuewhen(pivot_high, close
, 2),valuewhen(pivot_high, high
, 2))
level8 = iff(src=="Close",valuewhen(pivot_lows, close
, 2),valuewhen(pivot_lows, low
, 2))

level1_col = close >= level1 ? green : red
level2_col = close >= level2 ? green : red
level3_col = close >= level3 ? green : red
level4_col = close >= level4 ? green : red
level5_col = close >= level5 ? green : red
level6_col = close >= level6 ? green : red
level7_col = close >= level7 ? green : red
level8_col = close >= level8 ? green : red

plot(level1, style=line, color=level1_col, show_last=1, linewidth=3, trackprice=true)
plot(level2, style=line, color=level2_col, show_last=1, linewidth=3, trackprice=true)
plot(level3, style=line, color=level3_col, show_last=1, linewidth=3, trackprice=true)
plot(level4, style=line, color=level4_col, show_last=1, linewidth=3, trackprice=true)
plot(level5, style=line, color=level5_col, show_last=1, linewidth=3, trackprice=true)
plot(level6, style=line, color=level6_col, show_last=1, linewidth=3, trackprice=true)
plot(level7, style=line, color=level7_col, show_last=1, linewidth=3, trackprice=true)
plot(level8, style=line, color=level8_col, show_last=1, linewidth=3, trackprice=true)
 

Similar threads

Top