close
From:Traders Laboratory


Hello Everybody,

I am working on the Tuorial 26 from Markplex:

http://www.markplex.com/tutorial26.php

It works great.

I am trying to refine this indicator by adding another condition: if the trendline goes through a candlestick, then the trendline should be plotted using dots, in other words, if the trendline value is higher than the low of a price at any time, then the trendline style becomes dots instead of dashes.

I understand I need to programme a loop that will reproduce the values of a trendline at each bar between the two pivot points, and compare them to the low of each bar to check whether the trendline should be plotted using dots or dashes.

http://www.traderslaboratory.com/forums/coding-forum/7796-ts-el-stochastic-divergence-trendlines.html

// http://markplex.com/tutorial26.php

inputs :
PriceL(Low),
StochLength(7),
SmoothingLength1(3),
SmoothingLength2(3),
SmoothingType(1),
Length(20),
LeftStrength(3),
RightStrength(1),
BarTol(3);


vars:
ofastk(0),
oFastD(0),
oSlowk(0),
oSlowD(0),
oPivotPrice1(0),
oPivotBar1(0),
oPivotPrice2(0),
oPivotBar2(0),
oPivotPrice3(0),
oPivotBar3(0),
oPivotPrice4(0),
oPivotBar4(0),
tlslope(0),
bback(0),
tlvalue(0),
pricepivotcondition1(false),
pricepivotcondition2(false),
stochpivotcondition1(false),
stochpivotcondition2(false),
stochvalue(0),
tlstoch(0),
tlprice(0);


stochvalue=Stochastic(H,L,C,StochLength,SmoothingLength1,SmoothingLength2,SmoothingType,ofastk,ofastd,oslowk,oslowd);

//Determine if pivots in the stochstic have occurred
stochpivotcondition1 = Pivot(oslowd,Length,LeftStrength,RightStrength,1,-1,oPivotPrice1,oPivotBar1)<>-1;
stochpivotcondition2 = Pivot(oslowd,Length,LeftStrength,RightStrength,2,-1,oPivotPrice2,oPivotBar2)<>-1;

//Determine if pivots in the price have occurred
pricepivotcondition1 = Pivot(PriceL,Length,LeftStrength,RightStrength,1,-1,oPivotPrice3,oPivotBar3)<>-1;
pricepivotcondition2 = Pivot(PriceL,Length,LeftStrength,RightStrength,2,-1,oPivotPrice4,oPivotBar4)<>-1;

if pricepivotcondition1 and pricepivotcondition2 and stochpivotcondition1 and stochpivotcondition2
and (absvalue(oPivotbar1-oPivotBar3) and (absvalue(oPivotbar2-oPivotBar4) and (oPivotBar3 = RightStrength or oPivotbar1 = RightStrength)
and (oPivotPrice3<=oPivotPrice4 and oPivotPrice1>oPivotPrice2) and barstatus(1)=2 then
begin

tlprice= tl_new_S(D[oPivotBar4],Time_S[oPivotBar4],L[oPivotBar4],D[oPivotBar3],Time_s[oPivotBar3],L[oPivotBar3]);
tl_setcolor(tlstoch,Red);
tl_setsize (tlstoch,1);

tlstoch= tl_new_Self_s(D[oPivotBar1],Time_S[oPivotBar1],oPivotPrice1,D[oPivotBar2],Time_s[oPivotBar2],oPivotPrice2);
tl_setcolor(tlprice,Green);
tl_setsize (tlprice,1);

{tlslope = (oPivotPrice3 - oPivotPrice4) / AbsValue(oPivotbar3-oPivotBar4); //value of the slope
value1 = oPivotPrice4*tlslope;
if value1 >= low[oPivotBar4-3] then tl_setstyle(tlprice,2) else tl_setstyle(tlprice,3);}

{tlvalue = oPivotPrice4 * (AbsValue(oPivotBar3 - oPivotBar4)-1) * tlslope; //the -1 is for the bar just before the oPivotBar3
if tlvalue > low[oPivotBar3+1] then tl_setstyle(tlprice,2) else tl_setstyle(tlprice,3); //+1 for bar just before oPivotBar3}

value80 = absvalue(oPivotBar3-oPivotBar4);
//print(opivotbar2,";",opivotbar4,";",opivotbar1,";",opivotbar3,";",value80);
tlslope = (oPivotPrice3 - oPivotPrice4) / AbsValue(oPivotbar3-oPivotBar4); //value of the slope
for bback = oPivotBar4 - 1 downto bback = oPivotBar3 + 1
begin
value1 = oPivotPrice3 - (tlslope*bback);
//print(date:7:0,";",time:4:0,";",bback,";",tlslope:0:6,";",value1:0:6);
if value1[bback] > low[bback] then tl_setstyle(tlprice,3) else tl_setstyle(tlprice,2);
end;
end;

Plot1(oSlowD);
arrow
arrow
    全站熱搜

    David 發表在 痞客邦 留言(0) 人氣()