/*[[ Name := ASCTrend2 Author := C0Rpus - big thanks CHANGE2002, STEPAN and SERSH Notes := ASCTrend2 3.0 Open Source Separate Window := No First Color := Aqua First Draw Type := Symbol First Symbol := 160 Use Second Data := Yes Second Color := Fuchsia Second Draw Type := Symbol Second Symbol := 160 ]]*/ Inputs: RISK(3),MONYRISK(2.0),AllBars(500); Variables: value2(1),value3(18),value4(0),value5(0),value6(0),value7(0),value8(0),value9(0); Variables: value10(10),value11(10000),value12(0),value13(0),value14(0),value19(0); Variables: value4_1(0),value4_2(0),value9_1(0),value10_1(0),value11_1(0),value12_1(0); Variables: TrueCount(0),Counter(0),DCounter(0),Range(0),AvgRange(0),AvgRange_1(0),AvgRange_2(0); Variables: MRO1(0),MRO2(0),MRO3(0),MRO4(0); Variables: val1(0),val2(0),shift(0),NumBars(0); // 576 SetLoopCount(0); If Barsvalue4_1 And value4_1=1 Then MRO1=Counter-shift-1 Else MRO1=-1; // ----- Counter=shift; TrueCount=0; While Countervalue4_2) Then TrueCount=TrueCount+1; Counter=Counter+1; }; If TrueCount>=1 Then MRO2=Counter-shift-1 Else MRO2=-1; // ----- //value4_1=UserFunction("JESSD",High[shift+1],Low[shift+1],High[shift+1+value2],Low[shift+1+value2],Close[shift+1+value2]); AvgRange_1=(High[shift+1]+Low[shift+1])/2.0; If Close[shift+1+value2]-1 And Low[shift+1]>value4_1) Then value5=value4_1-value13; If (MRO2>-1 And High[shift+1]value12) Then {//value5=UserFunction("TrueLow",shift)-value13; If Close[shift+1]value12_1 And value11High[shift] Then {value5=Close[shift+1]+value13;} Else {value5=High[shift]+value13;}; }; // ----- If Abs(Open[shift]-Close[shift+1])>=1.618*value13 Then {If value11>value12 Then value5=Low[shift]-value13; If value11value10 Then {value8=value10;} Else {value8=High[shift]+2.40*value13;}; // ----- //value9=UserFunction("BS0",Low[shift],60,value7,RISK,value19); value9=value7; // ----- //value10=UserFunction("SS0",High[shift],60,value8,RISK,value19); value10=value8; // ----- If Low[shift]-value9>value19/Point Then value9=Low[shift]-(1.50+0.1*Risk)*value13; If value10-High[shift]>value19/Point Then value10=High[shift]+(1.50+0.1*Risk)*value13; If value11>=value12 And value5>=value9 Then value9=value5; If value11<=value12 And value6<=value10 Then value10=value6; If value11<=value12 And value5<=value9 Then value9=value5; If value11>=value12 And value6>=value10 Then value10=value6; // ----- Counter=shift; TrueCount=0; While Counter=value12 Then TrueCount=TrueCount+1; Counter=Counter+1; }; If TrueCount>=2 Then MRO3=Counter-shift-1 Else MRO3=-1; // ----- Counter=shift; TrueCount=0; While Counter=2 Then MRO4=Counter-shift-1 Else MRO4=-1; // ----- If (MRO3>-1 And value9<=value9_1) Then value9=value9_1; If (MRO4>-1 And value10>=value10_1) Then value10=value10_1; // ----- //value11=UserFunction("AverageClose",9,shift); Counter=shift; AvgRange=0; For Counter=shift To shift+9-1 {AvgRange=AvgRange+Close[Counter];}; value11=AvgRange/9; // ----- //value12=UserFunction("AverageClose",value3,shift); Counter=shift; AvgRange=0; For Counter=shift To shift+value3-1 {AvgRange=AvgRange+Close[Counter];}; value12=AvgRange/value3; // ----- val1=0; val2=0; If (value9>0 And value11>=value12 And value9<=High[shift]) Then {val1=value9;}; If (value10>0 And value10<1000000000 And value11<=value12 And value10>=Low[shift]) Then {val2=value10;}; // ----- value9_1=value9; value10_1=value10; SetIndexValue(shift,val1); SetIndexValue2(shift,val2); // ----- End;