Hello:
I coded a Multi Time Frame trend indicator but have problems with bigger time frames changing historical values. This can be seen when running "Bar Replay" feature. With Bar Replay you can see the bigger time frames moving to left instead of staying fixed with first line as I assumed. When an Indicator changes values like that I know there is some bug or code error. If I do Bar Replay of other indicator I can see it moving to left with fixed values because bars are not changing anymore (they are history).
The Code draws 6 lines of different Time Frames changing color based on direction.
The trend formula used in code is provided as an example. Is a simple WMA.
Colors used are WMA direction up = green, down=red.
Please help on this to look for error in Code:
Here is the Code:
Price = Close;
TCCount = 9;
//get multiple directions
function FTCunderPrice(price)
{
res = WMA(price, 13);
return res;
}
function plotLines (position, TC_Analysis, LineWidth)
{
col_AngleNegative = colorred;
col_AnglePositive = colorGreen;
color1 = IIf( TC_Analysis,col_AnglePositive, col_AngleNegative);
//plot multi cross, line with direction colors
Plot(position,"",color1, styleline, Null, Null, 0, 1, LineWidth );
}
//Month
TimeFrameSet( inMonthly );
AvgWtd_m = wma(FTCunderPrice(Price), 5);
AvgWtd_Angle_m = atan(AvgWtd_m - Ref(AvgWtd_m,-1)) * 180 / 3.14159265359;
AvgDirection_m = IIf( (AvgWtd_Angle_m>0) or (AvgWtd_m==TCCount) , 1 , 0);
Analysis_m = IIf( (AvgWtd_Angle_m>0) or (AvgWtd_m==TCCount), 1 , 0);
TimeFrameRestore();
//Week
TimeFrameSet( inWeekly );
AvgWtd_W = wma(FTCunderPrice(Price), 5);
AvgWtd_Angle_W = atan(AvgWtd_W - Ref(AvgWtd_W,-1)) * 180 / 3.14159265359;
AvgDirection_W = IIf( (AvgWtd_Angle_W>0) or (AvgWtd_W==TCCount) , 1 , 0);
Analysis_W = IIf( (AvgWtd_Angle_W>0) or (AvgWtd_W==TCCount), 1 , 0);
TimeFrameRestore();
//4 Days
TimeFrameSet(4*inDaily);
AvgWtd_4D = wma(FTCunderPrice(Price), 5);
AvgWtd_Angle_4D = atan(AvgWtd_4D - Ref(AvgWtd_4D,-1)) * 180 / 3.14159265359;
AvgDirection_4D = IIf( (AvgWtd_Angle_4D>0) or (AvgWtd_4D==TCCount) , 1 , 0);
Analysis_4D = IIf( (AvgWtd_Angle_4D>0) or (AvgWtd_4D==TCCount), 1 , 0);
TimeFrameRestore();
//3 Days
TimeFrameSet(3*inDaily);
AvgWtd_3D = wma(FTCunderPrice(Price), 5);
AvgWtd_Angle_3D = atan(AvgWtd_3D - Ref(AvgWtd_3D,-1)) * 180 / 3.14159265359;
AvgDirection_3D = IIf( (AvgWtd_Angle_3D>0) or (AvgWtd_3D==TCCount) , 1 , 0);
Analysis_3D = IIf( (AvgWtd_Angle_3D>0) or (AvgWtd_3D==TCCount), 1 , 0);
TimeFrameRestore();
//2 Days
TimeFrameSet(2*inDaily);
AvgWtd_2D = wma(FTCunderPrice(Price), 5);
AvgWtd_Angle_2D = atan(AvgWtd_2D - Ref(AvgWtd_2D,-1)) * 180 / 3.14159265359;
AvgDirection_2D = IIf( (AvgWtd_Angle_2D>0) or (AvgWtd_2D==TCCount) , 1 , 0);
Analysis_2D = IIf( (AvgWtd_Angle_2D>0) or (AvgWtd_2D==TCCount), 1 , 0);
TimeFrameRestore();
TimeFrameSet(inDaily);
AvgWtd_D = wma(FTCunderPrice(Price), 5);
AvgWtd_Angle_D = atan(AvgWtd_D - Ref(AvgWtd_D,-1)) * 180 / 3.14159265359;
AvgDirection_D = IIf( (AvgWtd_Angle_D>0) or (AvgWtd_D==TCCount) , 1 , 0);
Analysis_D = IIf( (AvgWtd_Angle_D>0) or (AvgWtd_D==TCCount), 1 , 0);
TimeFrameRestore();
Analysis_m1=TimeFrameExpand(Analysis_m ,inMonthly);
Analysis_W1=TimeFrameExpand(Analysis_W ,inWeekly);
Analysis_4D1=TimeFrameExpand(Analysis_4D ,4*inDaily);
Analysis_3D1=TimeFrameExpand(Analysis_3D ,3*inDaily);
Analysis_2D1=TimeFrameExpand(Analysis_2D ,2*inDaily);
Analysis_D1=TimeFrameExpand(Analysis_D ,inDaily);
//PLOTS
LineWidth = 5;
DotsWidth = 1;
plotLines(0,Analysis_m1,LineWidth);
plotLines(1,Analysis_W1,LineWidth);
plotLines(2,Analysis_4D1,LineWidth);
plotLines(3,Analysis_3D1,LineWidth);
plotLines(4,Analysis_2D1,LineWidth);
plotLines(5,Analysis_D1,LineWidth);