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

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Moving Averages NoX
  4. //  Author/Uploader: Thomas Heyen 
  5. //  E-mail:          
  6. //  Date/Time Added: 2006-06-07 17:14:52
  7. //  Origin:          This Model is a result of different tests. The ER2 Future is very volatile due to high program trading. This model tries to find short term trends.
  8. //  Keywords:        System Moving Average Reversal Trend
  9. //  Level:           medium
  10. //  Flags:           system
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=624
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=624
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Instead of using Crossover of Moving Averages, this model will follow
  17. //  reversals of a short term Moving Average.
  18. //
  19. //  A long term Moving Average is used for general trend determination.
  20. //
  21. //------------------------------------------------------------------------------
  22. /* -----------------------------------
  23. Author: Thomas Heyen
  24. Mechanical Trading Model ER2 - Emini Russel 2000
  25. Curve Fit June 2006
  26. Base Time Frame: 15 seconds
  27. ----------------------------------- */
  28. PositionSize = MarginDeposit = 1;
  29. MarketHours = TimeNum()>=154000 AND TimeNum()<=214000; 
  30. MarketClose= TimeNum()>=214444 AND TimeNum()<=240000;
  31. perl = 24;//Optimize("smoothing periods long",24,10,60,2);
  32. perl2 = 72;//Optimize("smoothing periods long slow",72,60,100,4);
  33. per = 54;//Optimize("smoothing periods",54,20,80,2); //DEMA = 24 long & DEMA=48 short
  34. per2 = 72;//Optimize("smoothing periods slow",90,60,100,4); //DEMA=74 long & DEMA=90 short - around 80 will do
  35. //per=Param("periods",3,3,89,1);
  36. up= (DEMA(C,perl)>Ref(DEMA(C,perl),-1)) AND (Ref(DEMA(C,perl),-2)>Ref(DEMA(C,perl),-1));
  37. down= (DEMA(C,per)<Ref(DEMA(C,per),-1)) AND (Ref(DEMA(C,per),-2)<Ref(DEMA(C,per),-1));
  38. Buy = up AND (DEMA(C,per)>DEMA(C,perl2));
  39. Cover = up;
  40. Short = down AND (DEMA(C,per)<DEMA(C,per2));
  41. Sell = down;
  42. PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen);
  43. PlotShapes(IIf(Short,shapeDownArrow,shapeNone),colorRed);
  44. Lang = BarsSince(Buy) < BarsSince(Sell);
  45. kurz = BarsSince(Short) < BarsSince(Cover);
  46. //Plot Trading Ribbon
  47. Color = IIf( Lang, colorGreen, IIf( kurz, colorRed, colorWhite ));
  48. Plot( 1, "", Color, styleArea | styleOwnScale | styleNoLabel, 0, 15 );
  49. /*
  50. ibc = GetTradingInterface("IB");
  51. if( ibc.IsConnected() ) // check if connection to IB was successfull
  52. {
  53. if( LastValue( Buy ) )
  54. {
  55.      if( ibc.GetPositionSize( Name() ) <1)
  56.      {
  57.         // transmit order
  58.         ibc.PlaceOrder( Name(), "Buy", 1, "MKT", 0, 0, "Day", True );
  59. }
  60. }
  61. if( LastValue( Sell ) )
  62. {
  63.      if( ibc.GetPositionSize( Name() ) > 0)
  64.      {
  65.         // transmit order
  66.         ibc.PlaceOrder( Name(), "Sell", 1, "MKT", 0, 0, "Day", True );
  67. }
  68. }
  69. if( LastValue( Short ) )
  70. {
  71.      if( ibc.GetPositionSize( Name() ) > -1)
  72.      {
  73.         // transmit order
  74.         ibc.PlaceOrder( Name(), "SShort", 1, "MKT", 0, 0, "Day", True );
  75. }
  76. }
  77. if( LastValue( Cover ) )
  78. {
  79.      if( ibc.GetPositionSize( Name() ) <0)
  80.      {
  81.         // transmit order
  82.         ibc.PlaceOrder( Name(), "Buy", 1, "MKT", 0, 0, "Day", True );
  83. }
  84. }
  85. }
  86. */