Trend exploration with multiple timeframes.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:5k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Trend exploration with multiple timeframes
  4. //  Author/Uploader: Marcus Davidsson 
  5. //  E-mail:          davidsson_marcus@hotmail.com
  6. //  Date/Time Added: 2006-09-30 20:31:21
  7. //  Origin:          
  8. //  Keywords:        exploration, trend, moving average
  9. //  Level:           medium
  10. //  Flags:           exploration
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=724
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=724
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  I started experimenting with Tradestations Radarscreen
  17. //
  18. //  when it struck me that Amibroker have the same function "Exploration" but
  19. //  100000$ much cheaper.
  20. //
  21. //  The formula is quite simple just load it in to Amibroker
  22. //
  23. //  and go to automatic analysis and push explore.
  24. //
  25. //  The formula will scan multiple moving averages and draw conclusions
  26. //  regarding overall trend phase, strenght etc. Enjoy!
  27. //
  28. //------------------------------------------------------------------------------
  29. /*Use daily data! You could use data with
  30. higher time resolution but then you have
  31. to include a timeframe parameters
  32. since 10 periods will become
  33. 10 minutes (if you have one Minute data)*/ 
  34. //////////////////////////////////////////////////////////////
  35. Filter = 1; // all symbols and quotes accepted.
  36. DTL=140; // DTL = Define Trend Long
  37. DTM=60; // DTM = Define Trend Medium
  38. DTS=8;  // DTS = Define Trend Short
  39. //////////////////////////////////////////////////////////////
  40. TL=LinRegSlope(MA(C, DTL),2);  // TL = Trend Long
  41. TM=LinRegSlope(MA(C, DTM),2);  // TM = Trend Medium
  42. TS=LinRegSlope(MA(C, DTS),2);  // TS = Trend Short
  43. TLL=IIf(LinRegSlope(MA(C, DTL),2) > 0,True, False);
  44. TMM=IIf(LinRegSlope(MA(C, DTM),2) > 0,True, False);
  45. TSS=IIf(LinRegSlope(MA(C, DTS),2) > 0,True, False);
  46. TLLL= 
  47. WriteIf(TL>0 AND TL<0.3,"+",
  48. WriteIf(TL>=0.3 AND TL<0.6 ,"+ +", 
  49. WriteIf(TL>=0.6,"+ + +", 
  50. WriteIf(TL<0 AND TL>-0.3,"-",
  51. WriteIf(TL<=-0.3 AND TL>-0.6 ,"- -",
  52. WriteIf(TL<=-0.6,"- - -",""))))));  
  53. TMMM=
  54. WriteIf(TM>0 AND TM<0.3,"+",
  55. WriteIf(TM>=0.3 AND TM<0.6 ,"+ +",
  56. WriteIf(TM>=0.6,"+ + +",
  57. WriteIf(TM<0 AND TM>-0.3,"-",
  58. WriteIf(TM<=-0.3 AND TM>-0.6 ,"- -",
  59. WriteIf(TM<=-0.6,"- - -",""))))));  
  60. TSSS=
  61. WriteIf(TS>0 AND TS<0.3,"+",
  62. WriteIf(TS>=0.3 AND TS<0.6 ,"+ +",
  63. WriteIf(TS>=0.6,"+ + +",
  64. WriteIf(TS<0 AND TS>-0.3,"-",
  65. WriteIf(TS<=-0.3 AND TS>-0.6 ,"- -",
  66. WriteIf(TS<=-0.6,"- - -",""))))));  
  67. //////////////////////////////////////////////////////////////
  68. AddTextColumn( TLLL, "MA"+-DTL, 1 , colorDefault,
  69. IIf( TLL==True, colorGreen, colorRed ),-1 );
  70. AddTextColumn( TMMM, "MA"+-DTM, 1 , colorDefault,
  71. IIf( TMM==True, colorGreen, colorRed ),-1 );
  72. AddTextColumn( TSSS, "MA"+-DTS, 1 , colorDefault,
  73. IIf( TSS==True, colorGreen, colorRed ),-1 );
  74. //////////////////////////////////////////////////////////////
  75. message=
  76. WriteIf(TL>=0.3 AND TM>=0.3 AND
  77. TS>=0.3, "Strong Up Trend",
  78. WriteIf(TL<=-0.3 AND TM<=-0.3 AND
  79. TS<=-0.3, "Strong Down Trend",
  80. WriteIf(TLL==True AND TMM==True AND
  81. TSS==True,"Up Trend",
  82. WriteIf(TLL==False AND TMM==False AND
  83. TSS==False,"Down Trend", "No Trend"))));
  84. AddTextColumn( message, "Overall Trend", 1 , 
  85. colorDefault,IIf(TLL==True AND TMM==True AND
  86. TSS==True, colorGreen, 
  87. IIf(TLL==False AND TMM==False AND
  88. TSS==False, colorRed, colorDefault )),-1 );
  89. //////////////////////////////////////////////////////////////
  90. x = IIf(Cross(LinRegSlope(MA(C, DTL),2),0) OR
  91. Cross(0, LinRegSlope(MA(C, DTL),2) ), True, False); 
  92. y = BarIndex()-ValueWhen(x==True, BarIndex(),1); 
  93. Phase=WriteIf(Y>=400,"Mature",WriteIf(Y>100 AND
  94. Y<400, "Progress", WriteIf(Y<=100, "Initial", "")));
  95. //AddColumn( y, "Trend Phase", 1 , colorDefault,  -1);
  96. AddTextColumn( Phase, "Trend Phase", 1 , colorDefault,  -1);
  97. //////////////////////////////////////////////////////////////
  98. Comments=
  99. WriteIf(Y>=400,"Mature trend with risk of bubble",
  100. WriteIf(y<400 AND TLL==True AND TMM==True AND TSS==True,
  101. "Keep on coming baby $",
  102. WriteIf(y<15 AND TLL==True AND TMM==True AND TSS==True OR
  103. TLL==False AND TMM==False AND TSS==False,
  104. "Are you going to grow up and become a big boy?",
  105. WriteIf(y<400 AND TLL==False AND TMM==False AND TSS==False,
  106. "Keep on coming baby $$",
  107. WriteIf(TLL==True AND TMM==True AND TSS==False OR 
  108. TLL==False AND TMM==False AND TSS==True,
  109. "Risk for short term reversal",
  110. WriteIf(TLL==True AND TMM==False AND TSS==True OR
  111. TLL==False AND TMM==True AND TSS==False,
  112. "trading range-avoid",
  113. "live to trade another day")))))); 
  114. AddTextColumn( Comments, "Comments", 1 ,
  115. colorDefault,colorDefault,-1 );
  116. //////////////////////////////////////////////////////////////