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

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    StochD_StochK Single.afl
  4. //  Author/Uploader: Willem Jan 
  5. //  E-mail:          w.j.a.struyck@worldonline.nl
  6. //  Date/Time Added: 2002-02-24 02:13:08
  7. //  Origin:          
  8. //  Keywords:        
  9. //  Level:           medium
  10. //  Flags:           system,exploration,indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=161
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=161
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Based on Stochastics this formula delivers quite promising, reliable and
  17. //  consistent results in terms of net profit. For optimisation my setting are
  18. //  range 120 days.
  19. //
  20. //  For testing etc. my settings are: commission 0.5%, long only (althouhg long
  21. //  short can be used withour problems), buy and sell on opening next day, max
  22. //  stop loss 3%, and for reporting trade list plus prices.
  23. //
  24. //  Optimisation requires 729 optimisation steps so be patient if your computer
  25. //  is not the fastest.
  26. //
  27. //  I optimise every week for selected tickers.
  28. //
  29. //------------------------------------------------------------------------------
  30. /*StochK/StochD Crossover for A single ticker.
  31. Enters long on stochastic indicator when EMA StochD line crosses the EMA StochK line. Exit on reversing signals only.
  32. Sequence: To run optimisation remove // in front of lines with optimization instructions (the 3 lines in the praragraph below) and place // in front of line with specific STK, STD and pds per ticker (3 lines in 2nd paragraph below). Set range, click apply to current stock and run optimisation.
  33. Insert the optimized figures in ( STK=, STD= and pds=) statement of 2nd paragraph below. 
  34. Once completed replace // in front of optimization instruction lines (1st paragraph below), remove // in front of line with specific STK, STD and pds (2nd paragraph below), save file and click on scan, explore or backtest. These formulas can also be used as indicator.
  35. Each optimisation requires 729 optimisation steps.*/
  36. /*1st paragraph.*/
  37. STK=Optimize ("StK" , 14, 2, 18, 2); //*Remove // before STK for optimization, replace for scan, exploration & backtesting.
  38. STD=Optimize ("StD" ,14, 2, 18, 2); //*Remove // before STD for optimization, replace for scan, exploration & backtesting.
  39. pds = Optimize("pds", 9,2,18,2); //*Remove // before pds for optimization, replace for scan, exploration & backtesting.
  40. /*2nd paragraph.*/
  41. //STK= 14; //*Place // in front of STK before optimization, remove for scan, exploration & backtesting.*//
  42. //STD= 14; //*Place // in front of STD before optimization, remove for scan, exploration & backtesting.*//
  43. //pds= 14; //*Place // in front of pds before optimization, remove for scan, exploration & backtesting.*//
  44. STK=LastValue(STK);
  45. STD=LastValue(STD);
  46. pds = LastValue(pds);
  47. Sell= Cross (EMA (StochD (STD),pds),EMA( StochK (STK),pds));
  48. Buy= Cross (EMA(StochK (STK),pds),EMA( StochD (STD),pds));
  49. Cover = Cross (EMA(StochK (STK),pds),EMA( StochD (STD),pds));
  50. Short = Cross (EMA (StochD (STD),pds),EMA( StochK (STK),pds));
  51. Filter=Buy OR Sell OR Short OR Cover;
  52. Buy=ExRem(Buy,Sell); Sell=ExRem(Sell,Buy); Short=ExRem(Short,Cover); Cover=ExRem(Cover,Short);
  53. NumColumns = 2;
  54. Column0 = EMA( StochK (STK),pds);
  55. Column1 = EMA (StochD (STD),pds);
  56. AddColumn(Buy,"Buy"); AddColumn(Sell,"sell"); AddColumn(Short,"short"); AddColumn(Cover,"cover");
  57. Graph0 = EMA( StochK (STK),pds);
  58. Graph1 = EMA (StochD (STD),pds);
  59. Graph2 = (EMA( StochK (STK),pds) - EMA (StochD (STD),pds))*2;
  60. Graph2Style = 2;
  61. Graph2Color =1;
  62. Title=Name()+"    " +"StD% Cross StK%" + "   " +"%K="+WriteVal(Graph0,FORMAT=1.1)+", %D="+
  63. WriteVal(Graph1,FORMAT=1.1)+
  64. WriteIf(Graph0>Graph1,"    LONG position"," ")+
  65. WriteIf(Graph1>Graph0,"   SHORT position","")+"; "+ "  Delta" + " "+WriteVal((Graph2/2),FORMAT=1.1)+"%";