Counting Consecutive Periods in a watchlist? [Length of Trend]

J

JabronLames

Member
VIP
Hello,

Anyone have experience with Ichimoku charts?

I'm looking to add a watchlist column on my TOS that counts the number of periods that the price is above/below the cloud, and resets to 0 when the price closes in the cloud. Can anyone point me in the right direction to the thinkScript function call that would serve this purpose?

Thank you for your time!
 
J

JabronLames

Member
VIP
Update:

I managed to get something working for those who are interested.

Code:
# Dan Dudes 'I'm Big in Japan' Ichimoku function
# copyright forever

#------ Inputs for Ichimoku plots
input tenkan_period = 9;
input kijun_period = 26;
input lookBack = 5;
input breakOutBars = 3;
#------ Inputs for signal generation
input requireConfirmation = no;
input signalType = {default "Cloud Break", "T/K Cross"};

input length = 200;

#----------- Section for plotting the Ichimoku
def Tenkan = (Highest(high, tenkan_period) + Lowest(low, tenkan_period)) / 2;
def Kijun = (Highest(high, kijun_period) + Lowest(low, kijun_period)) / 2;
def "Span A" = (Tenkan[kijun_period] + Kijun[kijun_period]) / 2;
def "Span B" = (Highest(high[kijun_period], 2 * kijun_period) + Lowest(low[kijun_period], 2 * kijun_period)) / 2;
def Chikou = close[-kijun_period];

#------------ Section for generating signals
def bullishCloud = "Span A" >= "Span B";
def bearishCloud = "Span B" > "Span A";

###### Recursive Function Call
def countTrend = CompoundValue(1, if close > "Span A" and bullishCloud or (close > "Span B" and bearishCloud) or (close < "Span A" and bearishCloud) or (close < "Span B" and bullishCloud) then countTrend[1] + 1 else 0, 1);
######

AddLabel(yes, countTrend);

AssignBackgroundColor( if close > "Span A" then color.DARK_GREEN else if close < "Span B" then color.DARK_RED else color.CURRENT );
 
Last edited by a moderator:
J

JabronLames

Member
VIP
* Added "Len" to the Label so that it's a little more clear

Code:
#------ Inputs for Ichimoku plots
input tenkan_period = 9;
input kijun_period = 26;
input lookBack = 5;
input breakOutBars = 3;
#------ Inputs for signal generation
input requireConfirmation = no;
input signalType = {default "Cloud Break", "T/K Cross"};

input length = 200;

#----------- Section for plotting the Ichimoku
def Tenkan = (Highest(high, tenkan_period) + Lowest(low, tenkan_period)) / 2;
def Kijun = (Highest(high, kijun_period) + Lowest(low, kijun_period)) / 2;
def "Span A" = (Tenkan[kijun_period] + Kijun[kijun_period]) / 2;
def "Span B" = (Highest(high[kijun_period], 2 * kijun_period) + Lowest(low[kijun_period], 2 * kijun_period)) / 2;
def Chikou = close[-kijun_period];

#------------ Section for generating signals
def bullishCloud = "Span A" >= "Span B";
def bearishCloud = "Span B" > "Span A";


def countTrend = CompoundValue(1, if close > "Span A" and bullishCloud or (close > "Span B" and bearishCloud) or (close < "Span A" and bearishCloud) or (close < "Span B" and bullishCloud) then countTrend[1] + 1 else 0, 1);


AddLabel(yes, "Len " + countTrend);

AssignBackgroundColor( if close > "Span A" then color.DARK_GREEN else if close < "Span B" then color.DARK_RED else color.CURRENT );
 
Last edited by a moderator:

Similar threads

Top