End Of Year Trading.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    End Of Year Trading
  4. //  Author/Uploader: cemays 
  5. //  E-mail:          
  6. //  Date/Time Added: 2006-07-09 13:29:46
  7. //  Origin:          Winning with the Dow's Losers by Charles B. Carlson.
  8. //  Keywords:        
  9. //  Level:           basic
  10. //  Flags:           system
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=634
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=634
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Trade only Dow Industrial Stocks at the end of year and only buy those
  17. //  stocks that have lost the most the previous year. Doing backtest over from
  18. //  Jan 1, 1995 to Dec 31, 2005 shows a 3 stock portfolio would do the be with
  19. //  a 25% annual gain but had a system drawdown of 38%.
  20. //
  21. //------------------------------------------------------------------------------
  22. //Set the amount of open positions
  23. PosQty = Param ( "PosQty", 5, 1, 10, 1); // You can define here how many open positions you want
  24. SetOption("MaxOpenPositions", PosQty );
  25. //Divide your total amount of equity across your number of positions.
  26. PositionSize = -100/PosQty; // invest 100% of portfolio equity divided by max. position count
  27. //Buy on the first day of the year
  28. Buy = IIf(DayOfYear() < Ref(DayOfYear(), -1), 1, 0);
  29. //Sell On the Last Day Of the Year (this is only used for backtesting since you will always close your positions
  30. // on the last day of the year.
  31. Sell = IIf(DayOfYear() > Ref(DayOfYear(), 1), 1, 0);
  32. //Determine which of the 30 dow stocks you are going to buy or sell based upon 
  33. //the ones that have went down the most over the past Year
  34. YearRoc = ROC(Close, 252);
  35. // The position score allows you to pick the one that has decreased by the most.  By taking the negative of that 
  36. // you get the one that you want to buy.   You could use PositionScore = YearRoc; if you were  
  37. // looking to Short stocks
  38. PositionScore = -YearRoc;
  39. // This just lets you explore at the end of the year which stocks you would want to buy.
  40. AddColumn(YearRoc, "YearRoc");
  41. Filter = Status("lastbarinrange");