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

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    TRIX
  4. //  Author/Uploader: Charlie Ehm 
  5. //  E-mail:          charliehm@peoplepc.com
  6. //  Date/Time Added: 2002-07-12 19:17:38
  7. //  Origin:          Steve Achelis, "Technical Analysis from A to Z", (2nd ed.), pp 342-4.
  8. //  Keywords:        TRIX, indicator, trading rules
  9. //  Level:           basic
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=204
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=204
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  A home-brew version of Amibroker's built-in TRIX indicator, plus minimal
  17. //  trading rules.
  18. //
  19. //------------------------------------------------------------------------------
  20. /* my TRIX (= the indicator, plus minimal trading rules) */
  21. /* I'm guessing that Amibroker's built-in TRIX indicator uses ema's to calculate the variable I'm calling "change" and then divides that by 1000, not 100 as does Achelis, and then uses a one-period MA of "change" to plot the TRIX line. My plot values end up being slightly different Amibroker's, as you'll see by applying TRIX's both at the same time, but the differences  aren't large enough to create trading signal differences in most cases. Charlie Ehm. 7/12/02. */ 
  22. /*------PART ONE (code for plotting the indicator)------------------------*/
  23. period=9;              //<--this default can be changed 
  24. today= (EMA(EMA(EMA(Close,period),period),period));
  25. yesterday= Ref(today,-1);
  26. change= ((today-yesterday)/today)*1000;
  27. Graph0=MA(Change,1);  
  28. Graph0Style=1;         //<-- an optional specification
  29. Graph0Color=5;         //<-- an optional specification 
  30.          
  31. Title=" "              //<-- creates a leading a space
  32. + Name()               //<-- ticker
  33. + " - TRIX ("          //<-- does more formatting and names the indicator
  34. + WriteVal(period,1.0) //<-- gives the period used for the TRIX line
  35. + ")   ";              //<-- more formatting
  36.                        //<-- I skipped providing the current day's value
  37. /*-----PART TWO (a template for using TRIX in trading rules) ---------- */
  38. period=Optimize("period",9,3,13,2);       //<--step could be dropped to 1                                        
  39. today= (EMA(EMA(EMA(Close,period),period),period));
  40. yesterday= Ref(today,-1);                 //<--this value should be tested
  41. change= ((today-yesterday)/today)*1000;
  42. threshold_in= Optimize("in",0,0,2,0.5);   //<--max & step can be changed
  43. threshold_out=Optimize("out",0,-2,0,0.5); //<--min & step can be changed
  44. Buy= Trix(period) > threshold_in;         
  45. Sell=Trix(period) < threshold_out;        //<--to test for symmetricality
  46. /* 
  47.   NOTES: 
  48.   #1 Optimize "period" and "threshold_ XX" in separate steps, if processing a lot
  49.      of tickers, by commenting out one of them and using its default value a 
  50.      normal variable statement. 
  51.   #2 Short rules needed to be created, etc. Parts ONE and TWO just get the ball
  52.      rolling toward what might become useful tools. 
  53. */