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

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    OptimizationBatch.js
  4. //  Author/Uploader: Rick Charon 
  5. //  E-mail:          rickcharon@yahoo.com
  6. //  Date/Time Added: 2004-08-11 17:47:19
  7. //  Origin:          
  8. //  Keywords:        Optimization, JavaScript
  9. //  Level:           medium
  10. //  Flags:           showemail,function
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=377
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=377
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  This is a JavaScript that batchs up Optimizations on a list of stocks. (You
  17. //  provide the optimization routine in the call to LoadFormula). The
  18. //  optimization will be run on each stock in the watch list and results saved
  19. //  to a csv file.
  20. //
  21. //------------------------------------------------------------------------------
  22. /*      -***-   c:dataScriptsOptimizationBatch.js  -***-
  23.  * * Mon Aug 09 00:19:06 2004 rpc - 
  24.  * This is a JavaScript that batchs up Optimizations on a list of stocks. (You provide the optimization routine
  25.  * in the call to LoadFormula).
  26.  * The optimization will be run on each instrument in the watch list and results saved to a csv file.
  27.  *
  28.  * The following variables need to be set (you'll probably want to set others as well):
  29.  * listNum - The number of the watch list that contains the instruments you want to do all the optimizations on.
  30.  * tempListNum - an empty watch list that will be used by this routine.
  31.  * optimizationRoutine - your optimization routine.
  32.  * exportDirectory - directory to save the exported-from-Amibroker optimization reports.
  33.  * AASettingsFile - path to settings file.
  34.  */
  35. listNum = 0;
  36. tempListNum = 31;
  37. optimizationRoutine = "c:\data\AmiBroker\indicators\PercentChangeRatios1.afl";
  38. exportDirectory = "c:\data\AmiBroker\entryexit\optimized081004\";
  39. AASettingsFile = "c:\data\AmiBroker\entryexit\Optimize1.ABS";
  40. AB = new ActiveXObject("Broker.Application");
  41. AA = AB.Analysis;
  42. AA.LoadFormula(optimizationRoutine);
  43. AA.LoadSettings(AASettingsFile);
  44. AA.ClearFilters(); 
  45. AA.Filter( 0, "watchlist" ) = tempListNum;
  46. AA.ApplyTo = 2; // use filters
  47. AA.RangeMode = 2; // use RangeN last days.
  48. RangeN = 180;  // 180 days.
  49. stocksArray = AB.Stocks.GetTickerList(0).split(",");
  50. nb1 = 0;
  51. nb1 = nb1 |= 1 << listNum;
  52. // Get all the stocks in the watch list 
  53. for(i = 0; i <  AB.Stocks.Count; i++) {
  54.   if(AB.Stocks.Item(stocksArray[i]).WatchListBits & nb1) {
  55.     AB.Stocks.Item(stocksArray[i]).WatchListBits |= 1 << tempListNum;
  56.     AA.Optimize();
  57.     AA.Export(exportDirectory + AB.Stocks.Item(stocksArray[i]).Ticker + ".csv");
  58.     AB.Stocks.Item(stocksArray[i]).WatchListBits ^= 1 << tempListNum;
  59.   }
  60. }