EKEKO SAR-MF.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    EKEKO SAR-MF
  4. //  Author/Uploader: RAFAEL GOMEZ 
  5. //  E-mail:          jq1688n@hotmail.com
  6. //  Date/Time Added: 2006-07-30 23:49:54
  7. //  Origin:          PERU
  8. //  Keywords:        
  9. //  Level:           semi-advanced
  10. //  Flags:           system
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=659
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=659
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  SAR EVENTS WITH SPECIAL PARAMETERS FOR MULTI FRAMES 1 MINUTE, 30 MINUTES
  17. //  (MARKET PROFILE), DAILY, WEEKLY, MOUNTHLY
  18. //
  19. //  SUCESS GUYS
  20. //
  21. //------------------------------------------------------------------------------
  22. //this script detect events with SAR indicators whith special parameters for simulted multi frames times, for this reason is named alineamiento sar
  23. Offset=10;
  24. Filter=1;
  25. NumColumns=4;
  26. Title="Ekeko SAR-MF 1,30,D,W,M";
  27. function MySAR()
  28. {
  29. IAF = Param("sarIAF",0.1,0.01,1,0.01);    // acceleration factor
  30. MaxAF = Param("sarMaxAF",0.25,0.01,1.5,0.01); // max acceleration
  31. ASAR = Param( "ASAR", -1, -50, 1000, 1 );
  32. psar = Close; // initialize
  33. long = 1;        // assume long for initial conditions
  34. af = IAF;         // init acelleration factor
  35. ep = Low[ 0 ];   // init extreme point
  36. hp = High [ 0 ];
  37. lp = Low [ 0 ];
  38. for( i = 2; i < BarCount; i++ )
  39. {
  40. if ( long )
  41. {
  42. psar [ i ] = psar [ i-1 ] + af * ( hp - psar [ i-1 ] );
  43. }
  44. else
  45. {
  46. psar [ i ] = psar [ i-1 ] + af * ( lp - psar [ i-1 ] );
  47. }
  48. reverse =  0;
  49. //check for reversal
  50. if ( long )
  51. {
  52. if ( Low [ i ] < psar [ i ]  )
  53. {
  54. long = 0; reverse = 1; // reverse position to Short
  55. psar [ i ] =  hp;       // SAR is High point in prev trade
  56. lp = Low [ i ];
  57. af = IAF;
  58. }
  59. }
  60. else
  61. {
  62. if ( High [ i ] > psar [ i ]  )
  63. {
  64. long = 1; reverse = 1;        //reverse position to long
  65. psar [ i ] =  lp;
  66. hp = High [ i ];
  67. af = IAF;
  68. }
  69. }
  70. if ( reverse == 0 )
  71. {
  72. if ( long )
  73. {
  74. if ( High [ i ] > hp ) 
  75. {
  76. hp = High [ i ]; 
  77. af = af + IAF; 
  78. if( af > MaxAF ) af = MaxAF; 
  79. }
  80.              
  81. if( Low[ i - 1 ] < psar[ i ] ) psar[ i ] = Low[ i - 1 ];
  82. if( Low[ i - 2 ] < psar[ i ] ) psar[ i ] = Low[ i - 2 ];
  83. }
  84.        else
  85. {
  86. if ( Low [ i ] < lp )  
  87. lp = Low [ i ]; 
  88. af = af + IAF; 
  89. if( af > MaxAF ) af = MaxAF; 
  90. }
  91. if( High[ i - 1 ] > psar[ i ] ) psar[ i ] = High[ i - 1 ];
  92. if( High[ i - 2 ] > psar[ i ] ) psar[ i ] = High[ i - 2 ];
  93. }
  94. }
  95. }
  96.   Plot(0,"Null",colorYellow,styleLine|styleNoLabel);
  97. xxxx=SAR(IAF,MaxAF)>Ref(C,-ASAR);//trabajando con close de candela anterior
  98. yyyy=Ref(C,-ASAR)>SAR(IAF,MaxAF) ;
  99. SAREVENTO2=(IIf(yyyy,1,IIf(xxxx,0,1)));
  100.    return(SAREVENTO2);
  101. }
  102. function DrawSAR(style)
  103. {
  104. Offset=Offset+10;
  105. if(style == 0)
  106.   {
  107.   style=in1Minute;
  108.   }
  109.   TimeFrameSet(style);
  110.   SAREVENTO2=TimeFrameExpand(MySAR(),style);
  111.   PlotShapes( IIf(SAREVENTO2<=1,14,0) ,IIf(SAREVENTO2==0,colorWhite,colorGreen)  ,  0, 1, Offset);
  112.   PlotShapes( IIf(SAREVENTO2==0,13,0) ,IIf(SAREVENTO2==1,colorWhite,colorRed), 0, 1, Offset*-1);
  113.   TimeFrameRestore();  
  114. }
  115. Offset=0;
  116. DrawSAR(in1Minute);
  117. DrawSAR(2*in15Minute);
  118. //DrawSAR(2*in5Minute);
  119. //DrawSAR(inHourly);
  120. DrawSAR(inDaily);
  121. DrawSAR(inWeekly);
  122. DrawSAR(inMonthly);
  123. GraphXSpace = 40;