SirYoungMan
New member
Good day everyone. I have created a backtest for an ichimoku strategy that incorporates both the daily and weekly time frames. When I test it using only the daily parameters I have no issues. The problem occurs when I try to backtest using both time frames. My question is; does TOS allow backtesting both time frames simultaneously? The code is below. Thanks in advance.
Code:
input conversionPeriods = 9;
input basePeriods = 26;
input leadingSpan2Periods = 52;
input displacement = 26;
input kijun_period = 26;
def high = high;
def low = low;
def close = close;
def open = open;
def TenkanSen = (Highest(high, conversionPeriods) + Lowest(low, conversionPeriods)) / 2;
def KijunSen = (Highest(high, basePeriods) + Lowest(low, basePeriods)) / 2;
def SenkouSpanA = (TenkanSen + KijunSen) / 2;
def SenkouSpanB = (Highest(high, leadingSpan2Periods) + Lowest(low, leadingSpan2Periods)) / 2;
def Chikou = close[-kijun_period];
def TenkanWeekly;
def KijunWeekly;
def SenkouSpanAWeekly;
def SenkouSpanBWeekly;
def ChikouWeekly;
def CloseWeekly;
if GetDayOfWeek(GetYYYYMMDD()) == 1 {
TenkanWeekly = TenkanSen;
KijunWeekly = KijunSen;
SenkouSpanAWeekly = SenkouSpanA;
SenkouSpanBWeekly = SenkouSpanB;
ChikouWeekly = Chikou;
CloseWeekly = close;
} else {
TenkanWeekly = TenkanWeekly[1];
KijunWeekly = KijunWeekly[1];
SenkouSpanAWeekly = SenkouSpanAWeekly[1];
SenkouSpanBWeekly = SenkouSpanBWeekly[1];
ChikouWeekly = ChikouWeekly[1];
CloseWeekly = CloseWeekly[1];
}
def TenkanWeeklyPlot = TenkanWeekly;
def KijunWeeklyPlot = KijunWeekly;
def SenkouSpanAWeeklyPlot = SenkouSpanAWeekly;
def SenkouSpanBWeeklyPlot = SenkouSpanBWeekly;
def ChikouWeeklyPlot = ChikouWeekly;
plot Tenkan = TenkanSen;
plot Kijun = KijunSen;
plot SpanA = SenkouSpanA;
plot SpanB = SenkouSpanB;
plot ChikouS = Chikou;
input mode = {default "Bounce_long", "Bounce_short"};
def long = SenkouSpanA from -26 bars ago is greater than SenkouSpanB from -26 bars ago and TenkanSen is greater than KijunSen and close is greater than close from 26 bars ago and close is greater than TenkanSen and close > TenkanWeekly and TenkanWeekly > KijunWeekly and close > CloseWeekly[1] and close > SenkouSpanAWeekly[1] and close > SenkouSpanBWeekly[1];
def short = close < TenkanWeekly and TenkanWeekly < KijunWeekly and close < CloseWeekly[1] and close < SenkouSpanAWeekly[1] and close < SenkouSpanBWeekly[1];
def buy;
def sell;
switch (mode) {
case "Bounce_long":
buy = long;
sell = short;
case "Bounce_short":
buy = short;
sell = long;
}
AddOrder(OrderType.BUY_AUTO, buy, name = "ichiL");
AddOrder(OrderType.SELL_AUTO, sell, tickcolor = GetColor(1), arrowcolor = GetColor(1), name = "ichiS");