Convert haDelta from Trading View/pine script to ThinkScript?

H

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:
T

tradegeek

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:
H

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));
 
D

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.
 
T

tradegeek

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;
 
T

tradegeek

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);
 
H

hashy

Member
@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.
Awesome. That's very similar to what I've come up with. I also got the overbought/sold to work. Thanks for the help guys.
 

Similar threads

Top