/*[[ Name := !Math! Separate Window := no First Color := Blue First Draw Type := Line First Symbol := 217 Use Second Data := no Second Color := Red Second Draw Type := Line Second Symbol := 218 ]]*/ Input : beginer(64); Input : periodtotake(64); Var : shift(0); Var : sum(0); Var : v1(0); Var : v2(0); Var : fractal(0); Var : v45(0); Var : mml00(0); Var : mml0(0); Var : mml1(0); Var : mml2(0); Var : mml3(0); Var : mml4(0); Var : mml5(0); Var : mml6(0); Var : mml7(0); Var : mml8(0); Var : mml9(0); Var : mml98(0); Var : mml99(0); Var : range(0); Var : octave(0); Var : mn(0); Var : mx(0); Var : finalH(0); Var : finalL(0); Var : x1(0); Var : x2(0); Var : x3(0); Var : x4(0); Var : x5(0); Var : x6(0); Var : y1(0); Var : y2(0); Var : y3(0); Var : y4(0); Var : y5(0); Var : y6(0); SetLoopCount(0); For shift = 1 Downto 0 Begin v1 = (L[lowest(MODE_LOW,beginer,periodtotake)]); //price H v2 = (H[highest(MODE_HIGH,beginer,periodtotake)]); //price L //determine fractal..... If v2 <= 250000 AND V2 > 25000 Then fractal = 100000 Else If v2 <= 25000 AND V2 > 2500 Then fractal = 10000 Else If v2 <= 2500 AND V2 > 250 Then fractal = 1000 Else If v2 <= 250 AND V2 > 25 Then fractal = 100 Else If v2 <= 25 AND V2 > 12.5 Then fractal = 12.5 Else If v2 <= 12.5 AND V2 > 6.25 Then fractal = 12.5 Else If v2 <= 6.25 AND V2 > 3.125 Then fractal = 6.25 Else If v2 <= 3.125 AND V2 > 1.5625 Then fractal = 3.125 Else If v2 <= 1.5625 AND V2 > 0.390625 Then fractal = 1.5625 Else If v2 <= 0.390625 AND V2 > 0 Then fractal = 0.1953125; range = (v2 - v1); sum = Floor(log(fractal / range) / log(2)); octave = fractal * (pow(0.5,sum)); mn = Floor(v1 / octave) * octave; If (mn + octave) > v2 Then mx = mn + octave Else mx = mn + (2 * octave); // calculating xx If (v1 >= 3 / 16 * (mx - mn) + mn) and (v2 <= 9 / 16 * (mx - mn) + mn) Then x2 = mn + (mx - mn) / 2 Else x2 = 0; //x2 If (v1 >= mn - (mx - mn) / 8) and (v2 <= 5 / 8 * (mx - mn) + mn) and x2 = 0 Then x1 = mn + (mx - mn) / 2 Else x1 = 0; //x1 If (v1 >= mn + 7 * (mx - mn) / 16) and (v2 <= 13 / 16 * (mx - mn) + mn) Then x4 = mn + 3 * (mx - mn) / 4 Else x4 = 0; //x4 If (v1 >= mn + 3 * (mx - mn) / 8) and (v2 <= 9 / 8 * (mx - mn) + mn) and x4 = 0 Then x5 = mx Else x5 = 0; //x5 If (v1 >= mn + (mx - mn) / 8) & (v2 <= 7 / 8 * (mx - mn) + mn) & x1 = 0 & x2 = 0 & x4 = 0 & x5 = 0 Then x3 = mn + 3 * (mx - mn)/4 Else x3 = 0; //x3 If x1 + x2 + x3 + x4 + x5 = 0 Then x6 = mx Else x6 = 0; //x6 finalH = x1 + x2 + x3 + x4 + x5 + x6; // calculating yy If x1 > 0 Then y1 = mn Else y1 = 0; //y1 If x2 > 0 Then y2 = mn + (mx - mn) / 4 Else y2 = 0; //y2 If x3 > 0 Then y3 = mn + (mx - mn) / 4 Else y3 = 0; //y3 If x4 > 0 Then y4 = mn + (mx - mn) / 2 Else y4 = 0; //y4 If x5 > 0 Then y5 = mn + (mx - mn) / 2 Else y5 =0 ; //y5 If finalH > 0 and (y1 + y2 + y3 + y4 + y5 = 0) Then y6 = mn Else y6 = 0; //y6 finalL = y1 + y2 + y3 + y4 + y5 + y6; v45 = (finalH - finalL) / 8; mml00 = (finalL - v45 * 2); //-2/8 mml0 = (finalL - v45); //-1/8 mml1 = (finalL); // 0/8 mml2 = (finalL + v45); // 1/8 mml3 = (finalL + 2 * v45); // 2/8 mml4 = (finalL + 3 * v45); // 3/8 mml5 = (finalL + 4 * v45); // 4/8 mml6 = (finalL + 5 * v45); // 5/8 mml7 = (finalL + 6 * v45); // 6/8 mml8 = (finalL + 7 * v45); // 7/8 mml9 = (finalL + 8 * v45); // 8/8 mml99 = (finalL + 9 * v45); //+1/8 mml98 = (finalL + 10 * v45); //+2/8 // comment("\n","finalh = ",finalh,"\n","finalL = ",finalL,"\n","v45 = ",v45, // "\n","octave = ",octave,"\n","mn = ",mn,"\n","mx = ",mx,"\n","Fractal = ",fractal, // "\n","range = ",range,"\n","sum = ",sum,"\n","high =",v2,"\n","Low = ",v1); SetObjectText("mm11_txt"," -2/8 BUY HERE ","Arial Black",8,Aqua); MoveObject("mm11_txt",OBJ_TEXT,time[30],mml00,time[30],mml00,Aqua); SetObjectText("mm12_txt"," -1/8 BUY HERE ","Arial Black",8,Aqua); MoveObject("mm12_txt",OBJ_TEXT,time[30],mml0,time[30],mml0,Aqua); SetObjectText("mm1_txt"," 0/8 BUY HERE ","Arial Black",8,Aqua); MoveObject("mm1_txt",OBJ_TEXT,time[30],mml1,time[30],mml1,Aqua); SetObjectText("mm2_txt"," 1/8 ","Arial Black",8,Orange); MoveObject("mm2_txt",OBJ_TEXT,time[30],mml2,time[30],mml2,Orange); SetObjectText("mm3_txt"," 2/8 ","Arial Black",8,red); MoveObject("mm3_txt",OBJ_TEXT,time[30],mml3,time[30],mml3,red); SetObjectText("mm4_txt"," 3/8 ","Arial Black",8,Green); MoveObject("mm4_txt",OBJ_TEXT,time[30],mml4,time[30],mml4,Green); SetObjectText("mm5_txt"," 4/8 GET OUT HERE ","Arial Black",8,Pink); MoveObject("mm5_txt",OBJ_TEXT,time[30],mml5,time[30],mml5,Pink); SetObjectText("mm6_txt"," 5/8 ","Arial Black",8,Green); MoveObject("mm6_txt",OBJ_TEXT,time[30],mml6,time[30],mml6,Green); SetObjectText("mm7_txt"," 6/8 ","Arial Black",8,red); MoveObject("mm7_txt",OBJ_TEXT,time[30],mml7,time[30],mml7,red); SetObjectText("mm8_txt"," 7/8 ","Arial Black",8,Orange); MoveObject("mm8_txt",OBJ_TEXT,time[30],mml8,time[30],mml8,Orange); SetObjectText("mm9_txt"," 8/8 SELL HERE ","Arial Black",8,Yellow); MoveObject("mm9_txt",OBJ_TEXT,time[30],mml9,time[30],mml9,Yellow); SetObjectText("mm-1_txt"," +1/8 SELL HERE ","Arial Black",8,Yellow); MoveObject("mm-1_txt",OBJ_TEXT,time[30],mml99,time[30],mml99,Yellow); SetObjectText("mm-2_txt"," +2/8 SELL HERE ","Arial Black",8,Yellow); MoveObject("mm-2_txt",OBJ_TEXT,time[30],mml98,time[30],mml98,Yellow); MoveObject("mm11",OBJ_HLINE,time[0],mml00,time[0],mml00,Aqua,1,STYLE_DASHDOTDOT); //-2/8 MoveObject("mm12",OBJ_HLINE,time[0],mml0,time[0],mml0,Aqua,1,STYLE_DASHDOTDOT); //-1/8 MoveObject("mm1",OBJ_HLINE,time[0],mml1,time[0],mml1,Aqua,2,STYLE_SOLID); // 0/8 MoveObject("mm2",OBJ_HLINE,time[0],mml2,time[0],mml2,Orange,1,STYLE_DOT); // 1/8 MoveObject("mm3",OBJ_HLINE,time[0],mml3,time[0],mml3,red,1,STYLE_DOT); // 2/8 MoveObject("mm4",OBJ_HLINE,time[0],mml4,time[0],mml4,Green,1,STYLE_DOT); // 3/8 MoveObject("mm5",OBJ_HLINE,time[0],mml5,time[0],mml5,Pink,1,STYLE_DASH); // 4/8 MoveObject("mm6",OBJ_HLINE,time[0],mml6,time[0],mml6,Green,1,STYLE_DOT); // 5/8 MoveObject("mm7",OBJ_HLINE,time[0],mml7,time[0],mml7,red,1,STYLE_DOT); // 6/8 MoveObject("mm8",OBJ_HLINE,time[0],mml8,time[0],mml8,Orange,1,STYLE_DOT); // 7/8 MoveObject("mm9",OBJ_HLINE,time[0],mml9,time[0],mml9,Yellow,2,STYLE_SOLID); // 0/8 MoveObject("mm-1",OBJ_HLINE,time[0],mml99,time[0],mml99,Yellow,1,STYLE_DASHDOTDOT); //+2/8 MoveObject("mm-2",OBJ_HLINE,time[0],mml98,time[0],mml98,Yellow,1,STYLE_DASHDOTDOT); //+1/8 End; SetIndexValue(shift,O);