#property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red double arr_global_76[]; extern int key = 699999996; //678999942 - original extern double Smooth = 1; double var_92 = 100; extern int bars = 1000; int var_104 = 0; extern int Progression = 3; //8 extern int Len = 12; //3 extern int Sensitivity = 30; int var_120 = 1; int var_124 = 0; double var_128 = 0; double var_136; double var_144; double var_152; double var_160; double var_168; double var_176; double var_184; double var_192; double var_200 = 0; int var_208; int var_212; int var_216; int var_220; int var_224; int var_228; int var_232; int var_236; int var_240; int var_244; int var_248; int var_252; int var_256 = 0; double var_260; double var_268; double var_276; double var_284; double var_292; double var_300; double var_308; double var_316; double var_324; double var_332; double var_340; double var_348; double var_356; double var_364; double var_372; double var_380; double var_388; double var_396; double var_404; double var_412; double var_420; double var_428; double var_436; double var_444; double var_452; double var_460 = 0; int var_468; int var_472; int var_476; int var_480; int var_484; int var_488 = 0; double arr_global_492[128]; double arr_global_496[128]; double arr_global_500[11]; double arr_global_504[62]; double arr_global_508[300]; int var_512; int var_516; int var_520; int var_524; int var_528; int var_532; double var_536; double var_544; int var_552; double arr_global_556[]; double arr_global_560[15000]; double arr_global_564[15000]; double var_568; double var_576 = 0; double var_584; double var_592; double var_600 = 0; //+------------------------------------------------------------------+ int init() { for (var_208 = 0; var_208 < 128; var_208++) arr_global_492[var_208] = 0.0; for (var_208 = 0; var_208 < 128; var_208++) arr_global_496[var_208] = 0.0; for (var_208 = 0; var_208 < 11; var_208++) arr_global_500[var_208] = 0.0; for (var_208 = 0; var_208 < 62; var_208++) arr_global_504[var_208] = 0.0; SetIndexStyle(0,DRAW_LINE,0,1); SetIndexBuffer(0,arr_global_76); SetIndexStyle(1,DRAW_LINE,0,1); SetIndexBuffer(1,arr_global_556); SetLevelValue(0,4); SetLevelValue(1,8); SetLevelValue(2,23); SetLevelValue(3,27); SetLevelValue(4,6); SetLevelValue(5,25); return(0); } //+------------------------------------------------------------------+ int start() { int var_start_0; int var_start_4; int var_start_8; switch (key) { case 34562788: loadJMA(); break; default: if (Bars > var_600) { var_600 = Bars; int var_start_16 = 0; for (int var_start_20 = 0; var_start_20 < bars; var_start_20++) { var_584 = 0; var_592 = 0; for (int var_start_24 = Len; var_start_24 <= Len + Progression * Sensitivity; var_start_24 = var_start_24 + Progression) { var_568 = iCustom(NULL,0,"UT_FAST",34562788,var_start_24,bars,0,var_start_20); var_576 = iCustom(NULL,0,"UT_FAST",34562788,var_start_24,bars,0,var_start_20 + 1); if (var_568 > var_576) var_584++; else var_592++; } arr_global_560[var_start_20] = var_584; arr_global_564[var_start_20] = var_592; } lenars(arr_global_560,1); lenars(arr_global_564,2); return(0); } } return(0); } //+------------------------------------------------------------------+ void loadJMA() { double var_loadJMA_0; var_220 = 63; var_224 = 64; if (var_120 == 1) { for (var_208 = 1; var_208 < var_220 + 1; var_208++) arr_global_492[var_208] = -1000000; for (var_208 = var_224; var_208 < 128; var_208++) arr_global_492[var_208] = 1000000; var_120 = 0; } var_468 = 1; if (Smooth <= 1.0) var_380 = 0.0000000001; else var_380 = (Smooth - 1.0) / 2; if (var_92 < -100.0) { var_268 = 0.5; } else if (var_92 > 100.0) { var_268 = 2.5; } else { var_268 = var_92 / 100 + 1.5; } var_144 = MathLog(MathSqrt(var_380)); var_152 = var_144; if ((var_144 / MathLog(2.0) + 2.0) < 0.0) var_160 = 0; else var_160 = var_152 / MathLog(2.0) + 2.0; var_404 = var_160; if ((var_404 - 2.0) >= 0.5) var_388 = var_404 - 2.0; else var_388 = 0.5; var_372 = MathSqrt(var_380) * var_404; var_396 = var_372 / (var_372 + 1.0); var_380 = var_380 * 0.9; var_332 = var_380 / (var_380 + 2.0); var_468 = 1; if (bars == 0) bars = Bars; for (var_124 = bars + 1000; var_124 >= 0; var_124--) { switch (var_104) { case 0: var_loadJMA_0 = Close[var_124]; break; case 1: var_loadJMA_0 = Open[var_124]; break; case 2: var_loadJMA_0 = (Open[var_124] + High[var_124] + Low[var_124] + Close[var_124]) / 4; break; case 3: var_loadJMA_0 = High[var_124]; break; case 4: var_loadJMA_0 = Low[var_124]; break; default:var_loadJMA_0 = Close[var_124]; } if (var_484 < 61) { var_484 = var_484 + 1; arr_global_504[var_484] = var_loadJMA_0; } if (var_484 > 30) { if (var_468 != 0) { var_468 = 0; var_212 = 0; for (var_208 = 1; var_208 < 30; var_208++) { if (arr_global_504[var_208 + 1] != arr_global_504[var_208]) var_212 = 1; } var_472 = var_212 * 30; if (var_472 == 0) var_308 = var_loadJMA_0; else var_308 = arr_global_504[1]; var_276 = var_308; if (var_472 > 29) var_472 = 29; } else { var_472 = 0; } for (var_208 = var_472; var_208 >= 0; var_208--) { if (var_208 == 0) var_260 = var_loadJMA_0; else var_260 = arr_global_504[31 - var_208]; var_292 = var_260 - var_276; var_324 = var_260 - var_308; if (MathAbs(var_292) > MathAbs(var_324)) var_152 = MathAbs(var_292); else var_152 = MathAbs(var_324); var_412 = var_152; var_136 = var_412 + 0.0000000001; if (var_236 <= 1) var_236 = 127; else var_236--; if (var_240 <= 1) var_240 = 10; else var_240--; if (var_256 < 128) var_256++; var_176 = var_176 + var_136 - arr_global_500[var_240]; arr_global_500[var_240] = var_136; if (var_256 > 10) var_200 = var_176 * 0.1; else var_200 = var_176 / var_256; if (var_256 == 30) var_516 = 0; if (var_256 > 127) { var_184 = arr_global_496[var_236]; arr_global_496[var_236] = var_200; var_252 = 64; var_244 = var_252; var_512 = var_244; while (var_252 > 1) { if (arr_global_492[var_244] < var_184) { var_252 = var_252 / 2; var_244 = var_244 + var_252; var_512 = var_244; } else { if (arr_global_492[var_244] <= var_184) { var_252 = 1; } else { var_252 = var_252 / 2; var_244 = var_244 - var_252; var_512 = var_244; } } } } else { arr_global_496[var_236] = var_200; if (var_220 + var_224 > 127) { var_224--; var_244 = var_224; var_512 = var_244; } else { var_220++; var_244 = var_220; var_512 = var_244; } if (var_220 > 96) var_228 = 96; else var_228 = var_220; if (var_224 < 32) var_232 = 32; else var_232 = var_224; } var_252 = 64; var_248 = var_252; while (var_252 > 1) { if (arr_global_492[var_248] >= var_200) { if (arr_global_492[var_248 - 1] <= var_200) { var_252 = 1; } else { var_252 = var_252 / 2; var_248 = var_248 - var_252; } } else { var_252 = var_252 / 2; var_248 = var_248 + var_252; } if ((var_248 == 127) && (var_200 > arr_global_492[127])) var_248 = 128; } if (var_256 > 127) { if (var_244 >= var_248) { if ((var_228 + 1 > var_248) && (var_232 - 1 < var_248)) { var_192 = var_192 + var_200; } else { if ((var_232 > var_248) && (var_232 - 1 < var_244)) { var_192 = var_192 + arr_global_492[var_232 - 1]; } } } else { if (var_232 >= var_248) { if ((var_228 + 1 < var_248) && (var_228 + 1 > var_244)) { var_192 = var_192 + arr_global_492[var_228 + 1]; } } else { if (var_228 + 2 > var_248) { var_192 = var_192 + var_200; } else { if ((var_228 + 1 < var_248) && (var_228 + 1 > var_244)) { var_192 = var_192 + arr_global_492[var_228 + 1]; } } } } if (var_244 > var_248) { if ((var_232 - 1 < var_244) && (var_228 + 1 > var_244)) { var_192 = var_192 - arr_global_492[var_244]; } else { if ((var_228 < var_244) && (var_228 + 1 > var_248)) { var_192 = var_192 - arr_global_492[var_228]; } } } else { if ((var_228 + 1 > var_244) && (var_232 - 1 < var_244)) { var_192 = var_192 - arr_global_492[var_244]; } else { if ((var_232 > var_244) && (var_232 < var_248)) { var_192 = var_192 - arr_global_492[var_232]; } } } } if (var_244 <= var_248) { if (var_244 >= var_248) { arr_global_492[var_248] = var_200; } else { for (var_516 = var_244 + 1; var_516 < var_248; var_516++) { arr_global_492[var_516 - 1] = arr_global_492[var_516]; } arr_global_492[var_248 - 1] = var_200; } } else { for (var_520 = var_244 - 1; var_520 >= var_248; var_520--) { arr_global_492[var_520 + 1] = arr_global_492[var_520]; } arr_global_492[var_248] = var_200; } if (var_256 <= 127) { var_192 = 0; for (var_528 = var_232; var_528 < var_228 + 1; var_528++) var_192 = var_192 + arr_global_492[var_528]; } var_348 = var_192 / (var_228 - var_232 + 1); if (var_488 + 1 > 31) var_488 = 31; else var_488++; if (var_488 <= 30) { if (var_292 > 0.0) var_276 = var_260; else var_276 = var_260 - var_292 * var_396; if (var_324 < 0.0) var_308 = var_260; else var_308 = var_260 - var_324 * var_396; var_436 = var_loadJMA_0; if (var_488 != 30) continue; var_444 = var_loadJMA_0; if (MathCeil(var_372) >= 1.0) var_168 = MathCeil(var_372); else var_168 = 1; var_480 = var_168; if (MathFloor(var_372) >= 1.0) var_152 = MathFloor(var_372); else var_152 = 1; var_476 = var_152; if (var_480 == var_476) { var_356 = 1; } else { var_168 = var_480 - var_476; var_356 = (var_372 - var_476) / var_168; } if (var_476 <= 29) var_212 = var_476; else var_212 = 29; if (var_480 <= 29) var_216 = var_480; else var_216 = 29; var_420 = (var_loadJMA_0 - arr_global_504[var_484 - var_212]) * (1 - var_356) / var_476 + (var_loadJMA_0 - arr_global_504[var_484 - var_216]) * var_356 / var_480; } else { if (var_404 >= MathPow(MathAbs(var_412 / var_348),var_388)) var_144 = MathPow(MathAbs(var_412 / var_348),var_388); else var_144 = var_404; if (var_144 < 1.0) { var_152 = 1.0; } else { if (var_404 >= MathPow(MathAbs(var_412 / var_348),var_388)) var_160 = MathPow(MathAbs(var_412 / var_348),var_388); else var_160 = var_404; var_152 = var_160; } var_340 = var_152; var_364 = MathPow(var_396,MathSqrt(var_340)); if (var_292 > 0.0) var_276 = var_260; else var_276 = var_260 - var_292 * var_364; if (var_324 < 0.0) var_308 = var_260; else var_308 = var_260 - var_324 * var_364; } } if (var_488 > 30) { var_300 = MathPow(var_332,var_340); var_444 = (1 - var_300) * var_loadJMA_0 + var_300 * var_444; var_452 = (var_loadJMA_0 - var_444) * (1 - var_332) + var_332 * var_452; var_460 = var_268 * var_452 + var_444; var_284 = var_300 * (-2.0); var_316 = var_300 * var_300; var_428 = var_284 + var_316 + 1.0; var_420 = (var_460 - var_436) * var_428 + var_316 * var_420; var_436 = var_436 + var_420; } } var_128 = var_436; arr_global_76[var_124] = var_128; } return; } //+------------------------------------------------------------------+ void lenars(double arr_lenars_0[], int inp_lenars_4) { double var_lenars_8; var_220 = 63; var_224 = 64; if (var_120 == 1) { for (var_208 = 1; var_208 < var_220 + 1; var_208++) arr_global_492[var_208] = -1000000; for (var_208 = var_224; var_208 < 128; var_208++) arr_global_492[var_208] = 1000000; var_120 = 0; } var_468 = 1; if (Smooth <= 1.0) var_380 = 0.0000000001; else var_380 = (Smooth - 1.0) / 2; if (var_92 < -100.0) { var_268 = 0.5; } else if (var_92 > 100.0) { var_268 = 2.5; } else { var_268 = var_92 / 100 + 1.5; } var_144 = MathLog(MathSqrt(var_380)); var_152 = var_144; if (var_144 / MathLog(2.0) + 2.0 < 0.0) var_160 = 0; else var_160 = var_152 / MathLog(2.0) + 2.0; var_404 = var_160; if (var_404 - 2.0 >= 0.5) var_388 = var_404 - 2.0; else var_388 = 0.5; var_372 = MathSqrt(var_380) * var_404; var_396 = var_372 / (var_372 + 1.0); var_380 = var_380 * 0.9; var_332 = var_380 / (var_380 + 2.0); var_468 = 1; if (bars == 0) bars = Bars; for (var_124 = bars + 30; var_124 >= 0; var_124--) { var_lenars_8 = arr_lenars_0[var_124]; if (var_484 < 61) { var_484 = var_484 + 1; arr_global_504[var_484] = var_lenars_8; } if (var_484 > 30) { if (var_468 != 0) { var_468 = 0; var_212 = 0; for (var_208 = 1; var_208 < 30; var_208++) { if (arr_global_504[var_208 + 1] != arr_global_504[var_208]) var_212 = 1; } var_472 = var_212 * 30; if (var_472 == 0) var_308 = var_lenars_8; else var_308 = arr_global_504[1]; var_276 = var_308; if (var_472 > 29) var_472 = 29; } else { var_472 = 0; } for (var_208 = var_472; var_208 >= 0; var_208--) { if (var_208 == 0) var_260 = var_lenars_8; else var_260 = arr_global_504[31 - var_208]; var_292 = var_260 - var_276; var_324 = var_260 - var_308; if (MathAbs(var_292) > MathAbs(var_324)) var_152 = MathAbs(var_292); else var_152 = MathAbs(var_324); var_412 = var_152; var_136 = var_412 + 0.0000000001; if (var_236 <= 1) var_236 = 127; else var_236--; if (var_240 <= 1) var_240 = 10; else var_240--; if (var_256 < 128) var_256++; var_176 = var_176 + var_136 - arr_global_500[var_240]; arr_global_500[var_240] = var_136; if (var_256 > 10) var_200 = var_176 * 0.1; else var_200 = var_176 / var_256; if (var_256 == 30) var_516 = 0; if (var_256 > 127) { var_184 = arr_global_496[var_236]; arr_global_496[var_236] = var_200; var_252 = 64; var_244 = var_252; var_512 = var_244; while (var_252 > 1) { if (arr_global_492[var_244] < var_184) { var_252 = var_252 / 2; var_244 = var_244 + var_252; var_512 = var_244; } else { if (arr_global_492[var_244] <= var_184) { var_252 = 1; } else { var_252 = var_252 / 2; var_244 = var_244 - var_252; var_512 = var_244; } } } } else { arr_global_496[var_236] = var_200; if (var_220 + var_224 > 127) { var_224--; var_244 = var_224; var_512 = var_244; } else { var_220++; var_244 = var_220; var_512 = var_244; } if (var_220 > 96) var_228 = 96; else var_228 = var_220; if (var_224 < 32) var_232 = 32; else var_232 = var_224; } var_252 = 64; var_248 = var_252; while (var_252 > 1) { if (arr_global_492[var_248] >= var_200) { if (arr_global_492[var_248 - 1] <= var_200) { var_252 = 1; } else { var_252 = var_252 / 2; var_248 = var_248 - var_252; } } else { var_252 = var_252 / 2; var_248 = var_248 + var_252; } if ((var_248 == 127) && (var_200 > arr_global_492[127])) var_248 = 128; } if (var_256 > 127) { if (var_244 >= var_248) { if ((var_228 + 1 > var_248) && (var_232 - 1 < var_248)) { var_192 = var_192 + var_200; } else { if ((var_232 > var_248) && (var_232 - 1 < var_244)) { var_192 = var_192 + arr_global_492[var_232 - 1]; } } } else { if (var_232 >= var_248) { if ((var_228 + 1 < var_248) && (var_228 + 1 > var_244)) { var_192 = var_192 + arr_global_492[var_228 + 1]; } } else { if (var_228 + 2 > var_248) { var_192 = var_192 + var_200; } else { if ((var_228 + 1 < var_248) && (var_228 + 1 > var_244)) { var_192 = var_192 + arr_global_492[var_228 + 1]; } } } } if (var_244 > var_248) { if ((var_232 - 1 < var_244) && (var_228 + 1 > var_244)) { var_192 = var_192 - arr_global_492[var_244]; } else { if ((var_228 < var_244) && (var_228 + 1 > var_248)) { var_192 = var_192 - arr_global_492[var_228]; } } } else { if ((var_228 + 1 > var_244) && (var_232 - 1 < var_244)) { var_192 = var_192 - arr_global_492[var_244]; } else { if ((var_232 > var_244) && (var_232 < var_248)) { var_192 = var_192 - arr_global_492[var_232]; } } } } if (var_244 <= var_248) { if (var_244 >= var_248) { arr_global_492[var_248] = var_200; } else { for (var_516 = var_244 + 1; var_516 < var_248; var_516++) arr_global_492[var_516 - 1] = arr_global_492[var_516]; arr_global_492[var_248 - 1] = var_200; } } else { for (var_520 = var_244 - 1; var_520 >= var_248; var_520--) arr_global_492[var_520 + 1] = arr_global_492[var_520]; arr_global_492[var_248] = var_200; } if (var_256 <= 127) { var_192 = 0; for (var_528 = var_232; var_528 < var_228 + 1; var_528++) var_192 = var_192 + arr_global_492[var_528]; } var_348 = var_192 / (var_228 - var_232 + 1); if (var_488 + 1 > 31) var_488 = 31; else var_488++; if (var_488 <= 30) { if (var_292 > 0.0) var_276 = var_260; else var_276 = var_260 - var_292 * var_396; if (var_324 < 0.0) var_308 = var_260; else var_308 = var_260 - var_324 * var_396; var_436 = var_lenars_8; if (var_488 != 30) continue; var_444 = var_lenars_8; if (MathCeil(var_372) >= 1.0) var_168 = MathCeil(var_372); else var_168 = 1; var_480 = var_168; if (MathFloor(var_372) >= 1.0) var_152 = MathFloor(var_372); else var_152 = 1; var_476 = var_152; if (var_480 == var_476) { var_356 = 1; } else { var_168 = var_480 - var_476; var_356 = (var_372 - var_476) / var_168; } if (var_476 <= 29) var_212 = var_476; else var_212 = 29; if (var_480 <= 29) var_216 = var_480; else var_216 = 29; var_420 = (var_lenars_8 - arr_global_504[var_484 - var_212]) * (1 - var_356) / var_476 + (var_lenars_8 - arr_global_504[var_484 - var_216]) * var_356 / var_480; } else { if (var_404 >= MathPow(MathAbs(var_412 / var_348),var_388)) var_144 = MathPow(MathAbs(var_412 / var_348),var_388); else var_144 = var_404; if (var_144 < 1.0) { var_152 = 1.0; } else { if (var_404 >= MathPow(MathAbs(var_412 / var_348),var_388)) var_160 = MathPow(MathAbs(var_412 / var_348),var_388); else var_160 = var_404; var_152 = var_160; } var_340 = var_152; var_364 = MathPow(var_396,MathSqrt(var_340)); if (var_292 > 0.0) var_276 = var_260; else var_276 = var_260 - var_292 * var_364; if (var_324 < 0.0) var_308 = var_260; else var_308 = var_260 - var_324 * var_364; } } if (var_488 > 30) { var_300 = MathPow(var_332,var_340); var_444 = (1 - var_300) * var_lenars_8 + var_300 * var_444; var_452 = (var_lenars_8 - var_444) * (1 - var_332) + var_332 * var_452; var_460 = var_268 * var_452 + var_444; var_284 = var_300 * (-2.0); var_316 = var_300 * var_300; var_428 = var_284 + var_316 + 1.0; var_420 = (var_460 - var_436) * var_428 + var_316 * var_420; var_436 = var_436 + var_420; } } var_128 = var_436; if (inp_lenars_4 == 1) arr_global_76[var_124] = var_128; else arr_global_556[var_124] = var_128; } return; }
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Series array that contains open prices of each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Custom Indicators Used:
UT_FAST
Order Management characteristics:
Other Features: