I am using Heikin Ashi bar chart. I am trying to record the highest price during a period. ThinkScript doesn't allow me to use the def variable to compare with other value. I cannot get it works correctly. Please help.
I expect all the bubbles on the right side should display the value of 284.38.
My code :
I expect all the bubbles on the right side should display the value of 284.38.
My code :
Code:
def emaLen9 = 9;
def emaLen3dot5 = 3.5;
def priceType = FundamentalType.CLOSE;
def averageType = AverageType.EXPONENTIAL;
def baseTF = GetAggregationPeriod();
def baseTF_mve9 = MovingAverage(averageType, Fundamental(priceType, period = baseTF), emaLen9);
def baseTF_mve3dot5 = MovingAverage(averageType, Fundamental(priceType, period = baseTF), emaLen3dot5);
def baseTF_O = open(period = baseTF);
def baseTF_h = high(period = baseTF);
def baseTF_l = low(period = baseTF);
def baseTF_c = close(period = baseTF);
def baseTF_HAclose = (baseTF_O + baseTF_h + baseTF_l + baseTF_c) / 4;
def baseTF_HAopen = CompoundValue(1, (baseTF_HAopen[1] + baseTF_HAclose[1]) / 2, baseTF_HAclose);
def baseTF_HAhigh = Max(Max(baseTF_h, baseTF_HAopen), baseTF_HAclose);
def baseTF_HAlow = Min(Min(baseTF_l, baseTF_HAopen), baseTF_HAclose);
def baseTF_isCrossedAbove = baseTF_mve3dot5 crosses above baseTF_mve9;
def baseTF_isCrossBelow = baseTF_mve3dot5 crosses below baseTF_mve9;
def baseTF_isCrossBelowBefore;
def baseTF_isCrossAboveBefore;
if(baseTF_isCrossBelow)
{
baseTF_isCrossBelowBefore = yes;
baseTF_isCrossAboveBefore = no;
}
else if(baseTF_isCrossedAbove)
{
baseTF_isCrossBelowBefore = no;
baseTF_isCrossAboveBefore = yes;
}
else
{
baseTF_isCrossBelowBefore = baseTF_isCrossBelowBefore[1];
baseTF_isCrossAboveBefore = baseTF_isCrossAboveBefore[1];
}
def rangeHighest ;
if(baseTF_isCrossAboveBefore)
{
#if(baseTF_HAhigh > rangeHighest ) #-- shold be like this, but thinkScript doesn't like this, syntex error
#if(baseTF_HAhigh > baseTF_HAhigh[1] && baseTF_HAhigh > rangeHighest ) #-- no syntex error but nothing show up
if(baseTF_HAhigh > baseTF_HAhigh[1]) #-- the result is NOT fully correct
{
rangeHighest = baseTF_HAhigh;
}
else
{
rangeHighest = rangeHighest[1];
}
}
else
{
rangeHighest = rangeHighest[1];
}
AddChartBubble(yes, high, rangeHighest , Color.WHITE, yes);