MultiCycle 1.0.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    MultiCycle 1.0
  4. //  Author/Uploader: Brian Richard 
  5. //  E-mail:          brianrichard99@hotmail.com
  6. //  Date/Time Added: 2004-07-30 00:42:57
  7. //  Origin:          
  8. //  Keywords:        MultiCycle,TDREI,REI,DSS,IFT,VFI
  9. //  Level:           semi-advanced
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=369
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=369
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  This looks at four different cyclic indicators together at one time. When
  17. //  three oscillators synchronize, this signals a strong buy or sell.
  18. //
  19. //  The white dotted line is the Volume Flow Indicator, or VFI. If the VFI is
  20. //  above the zero line, look for synchronized oscillators rising out of an
  21. //  oversold condition -- this is a good buy signal. If VFI is below zero, look
  22. //  for overbought conditions and short, instead.
  23. //
  24. //  The REI is Tom DeMark's Range Expansion Index. This is the most leading
  25. //  indicator included here. The DSS is a double-smoothed stochastic, good for
  26. //  timing and exact buy or sell point. And the IFT is the Inverse Fisher
  27. //  Transform function.
  28. //
  29. //  This indicator works well for any time frame. All it takes is a little
  30. //  getting used to before you become intuitive with it.
  31. //
  32. //  I named it the MultiCycle for lack of a better name.
  33. //
  34. //------------------------------------------------------------------------------
  35. /* 
  36. MULTICYCLE 1.0
  37. By Brian Richard
  38. */
  39. /* Volume Flow Indicator */
  40. Period = Param("VFI Period",26,26,1300,1);
  41. Coef=0.2;
  42. VCoef=Param("Max. vol. cutoff",2.5,2.5,50,1);
  43. inter = log(Avg)-log(Ref(Avg,-1));
  44. Vinter = StDev(inter,30);
  45. Cutoff=Coef*Vinter*Close;
  46. Vave=Ref(MA(V,Period),-1);
  47. Vmax=Vave*Vcoef;
  48. Vc=Min(V,VMax);
  49. MF=Avg-Ref(Avg,-1);
  50. VCP=IIf(MF>Cutoff,VC,IIf(MF<-Cutoff,-VC,0));
  51. VFI1=Sum(VCP,Period)/Vave;
  52. VFI=EMA(VFI1,3);
  53. /* Double Smoothed Stochastic - DSS */
  54. Slw = 4;  Pds = 4;
  55. A = EMA((Close-LLV(Low,Pds))/(HHV(H,pds)-LLV(L,Pds)),Slw)*100;
  56. DSS = EMA((A-LLV(A,pds))/(HHV(A,Pds)-LLV(A,Pds)),Slw)*100;
  57. /* Tom DeMark's Range Expansion Index  */
  58. HighMom = H - Ref( H, -2 );
  59. LowMom = L - Ref( L, -2 );
  60. Cond1 = ( H >= Ref( L,-5) OR H >= Ref( L, -6 ) ); 
  61. Cond2 = ( Ref( H, -2 ) >= Ref( C, -7 ) OR Ref( H, -2 ) >= Ref( C, -8 ) ); 
  62. Cond3 = ( L <= Ref( H, -5 ) OR L <= Ref( H, -6) ); 
  63. Cond4 = ( Ref( L, -2 ) <= Ref( C, -7 ) OR Ref( L, -2 ) <= Ref( C, -8 ) );
  64. Cond = ( Cond1 OR Cond2 ) AND ( Cond3 OR Cond4 );
  65. Num = IIf( Cond, HighMom + LowMom, 0 );
  66. Den = abs(  HighMom ) + abs( LowMom );
  67. TDREI = 100 * Sum( Num, 5 )/Sum( Den, 5 ) ;
  68. // General - purpose Inverse Fisher Transform function
  69. function InvFisherTfm1( array1 )
  70. {
  71.   e2y1 = exp( 2 * array1 );
  72.   return ( e2y1 - 1 )/( e2y1 + 1 );
  73. }
  74. function InvFisherTfm2( array2 )
  75. {
  76.   e2y2 = exp( 2 * array2 );
  77.   return ( e2y2 - 1 )/( e2y2 + 1 );
  78. }
  79. function InvFisherTfm3( array3 )
  80. {
  81.   e2y3 = exp( 2 * array3 );
  82.   return ( e2y3 - 1 )/( e2y3 + 1 );
  83. }
  84. function InvFisherTfm4( array4 )
  85. {
  86.   e2y4 = exp( 2 * array4 );
  87.   return ( e2y4 - 1 )/( e2y4 + 1 );
  88. }
  89. Value1 = 0.1 * (DSS-55);
  90. Value2 = WMA( Value1, 5 );
  91. Value3 = 0.1 * ( RSI( 5 ) - 50 );
  92. Value4 = WMA( Value3, 10 );
  93. Value5 = 0.03 * (TDREI);
  94. Value6 = WMA( Value5, 10 );
  95. Value10 = VFI;
  96. Value11 = EMA(VFI,10);
  97. Plot( InvFisherTfm1( Value2 ), "DSS", colorDarkGreen, styleThick );
  98. Plot( InvFisherTfm2( Value4 ), "RSI", colorBlue, styleThick );
  99. Plot( InvFisherTfm3( Value6 ), "REI", colorRed, styleThick );
  100. Plot( InvFisherTfm4( Value11 ), "VFI", colorWhite, styleDots );
  101. Plot(0,"",colorDarkBlue,styleDots);
  102. PlotGrid( 0.5 );
  103. PlotGrid(-0.5 );