Advertisement
Guest User

Jurik_RSX

a guest
Apr 15th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.73 KB | None | 0 0
  1. //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
  2. //|                                                         JRSX.mq4 |
  3. //|          JRSX: Copyright © 2005,            Weld, Jurik Research |
  4. //|                                          http://weld.torguem.net |
  5. //|          MQL4: Copyright © 2005,                Nikolay Kositsin |
  6. //|                                   Khabarovsk, violet@mail.kht.ru |  
  7. //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
  8. #property copyright "Weld"
  9. #property link "http://weld.torguem.net"
  10. #property indicator_separate_window
  11. #property indicator_buffers 1
  12. #property indicator_color1 Magenta
  13. #property indicator_level1 80
  14. #property indicator_level2 20
  15. #property indicator_level3 50
  16. #property indicator_maximum 100
  17. #property indicator_minimum 0
  18. //---- input parameters
  19. extern int       Lengh=14;
  20. //---- buffers
  21. double JRSX_Bufer[];
  22. //----
  23. int    shift,r,w,k,Tnew,counted_bars,T0,T1;
  24. //----
  25. double v4,v8,v10,v14,v18,v20,v0C,v1C,v8A;  
  26. double F28,F30,F38,F40,F48,F50,F58,F60,F68,F70,F78,F80;
  27. double f0,f28,f30,f38,f40,f48,f50,f58,f60,f68,f70,f78,f80,Kg,Hg;
  28. //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
  29. //| Custom indicator initialization function                         |
  30. //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
  31. int init()
  32.   {
  33. //---- indicators
  34.  
  35.    SetIndexStyle(0,DRAW_LINE);
  36.    SetIndexBuffer(0,JRSX_Bufer);
  37.    IndicatorShortName("RSX("+Lengh+")");
  38.    SetIndexEmptyValue(0,50.0);
  39. //----
  40. return(0);
  41.   }
  42. //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
  43. //| Custor indicator deinitialization function                       |
  44. //+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
  45. int start()
  46. {
  47. counted_bars=IndicatorCounted()-1;
  48. if(counted_bars < 0) counted_bars = 0;
  49.  
  50. if (counted_bars>Lengh) shift=Bars-counted_bars-1;
  51. else shift=Bars-Lengh-1;
  52.  
  53. Tnew=Time[shift+1];
  54.  
  55. //+--- âînnnríîâëlícl dldlelííuo +=====================+
  56. if((Tnew!=T0)&&(shift<Bars-Lengh-1))
  57. {
  58. if (Tnew==T1)
  59. {
  60. f28=F28; f30=F30; f38=F38; f40=F40; f48=F48; f50=F50;
  61. f58=F58; f60=F60; f68=F68; f70=F70; f78=F78; f80=F80;
  62. }
  63. else return(-1);
  64. }
  65. //+--- +===============================================+
  66.  
  67. if (Lengh-1>=5)w=Lengh-1;else w=5; Kg=3/(Lengh+2.0); Hg=1.0-Kg;
  68.  
  69. while (shift >= 0)
  70. {//+-------------------+
  71. if (r==0)
  72. {//...
  73. r = 1; k = 0;
  74. }//...
  75. else
  76. {//++++++++++++++++++++
  77. if (r>=w) r=w+1; else r=r+1;
  78.  
  79. v8 = Close[shift]-Close[shift+1]; v8A=MathAbs(v8);
  80.  
  81. //---- âu÷cnëlícl V14 ------
  82. f28 = Hg  * f28 + Kg  *  v8;
  83. f30 = Kg  * f28 + Hg  * f30;
  84. v0C = 1.5 * f28 - 0.5 * f30;
  85. f38 = Hg  * f38 + Kg  * v0C;
  86. f40 = Kg  * f38 + Hg  * f40;
  87. v10 = 1.5 * f38 - 0.5 * f40;
  88. f48 = Hg  * f48 + Kg  * v10;
  89. f50 = Kg  * f48 + Hg  * f50;
  90. v14 = 1.5 * f48 - 0.5 * f50;
  91. //---- âu÷cnëlícl V20 ------
  92. f58 = Hg  * f58 + Kg  * v8A;
  93. f60 = Kg  * f58 + Hg  * f60;
  94. v18 = 1.5 * f58 - 0.5 * f60;
  95. f68 = Hg  * f68 + Kg  * v18;
  96. f70 = Kg  * f68 + Hg  * f70;
  97. v1C = 1.5 * f68 - 0.5 * f70;
  98. f78 = Hg  * f78 + Kg  * v1C;
  99. f80 = Kg  * f78 + Hg  * f80;
  100. v20 = 1.5 * f78 - 0.5 * f80;
  101.  
  102. if ((r <= w) && (v8!= 0)) k = 1;
  103. if ((r == w) && (k == 0)) r = 0;
  104. }//++++++++++++++++++++
  105. if ((r >  w) &&(v20 > 0.0000000001 )) ///0.0000000001=={1.0e-10};
  106. {//...
  107. v4 = (v14/v20+1.0)*50.0; if(v4>100.0)v4=100.0; if(v4<0.0)v4=0.0;
  108. }//...
  109. else  v4 = 50.0;
  110. JRSX_Bufer[shift]=v4;
  111.  
  112. //+--- Nîodrílícl dldlelííuo +========================+  
  113. if (shift==1)
  114. {
  115. T1=Time[1];T0=Time[0];
  116. F28=f28; F30=f30; F38=f38; F40=f40; F48=f48; F50=f50;
  117. F58=f58; F60=f60; F68=f68; F70=f70; F78=f78; F80=f80;
  118. }
  119. //+---+===============================================+
  120.  
  121. shift--;
  122. }
  123. //+-------------------+
  124. return(0);
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement