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

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Dave Landry Pullbacks
  4. //  Author/Uploader: Daniel Ervi 
  5. //  E-mail:          
  6. //  Date/Time Added: 2001-11-06 22:05:47
  7. //  Origin:          "Dave Landry on Swing Trading", by Dave Landry.  Available through M. Gordon Publishing.
  8. //  Keywords:        Landry pullback adx trend
  9. //  Level:           medium
  10. //  Flags:           exploration
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=132
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=132
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  A rough implementation of the setup criteria that Dave Landry uses to
  17. //  trades pullbacks in an established trend. A buy (sell) stop is placed above
  18. //  (below) todays high (low) to enter the position. A trailing stop is then
  19. //  used to capture any gains. He recommends placing your stop loss below the
  20. //  nearest low pivot point (or high pivot for a short signal).
  21. //
  22. //------------------------------------------------------------------------------
  23. // Dave Landry Pullback Scan.
  24. // For further explanation, refer to "Dave Landry on Swing Trading"
  25. // from MGordon Publishing. Coded by Daniel Ervi
  26. NumColumns = 5;
  27. Period = 14;
  28. // Determines trend direction using DMI indicators
  29. PDIFilter = PDI(period) > MDI(period);
  30. MDIFilter = MDI(period) > PDI(period);
  31. // Returns TRUE if 3 to 7 day pullback in up or down trend
  32. UPB3 = H <= Ref(H,-1) AND Ref(H,-1) <= Ref(H,-2) AND Ref(H,-2) <= Ref(H, -3);
  33. UPB4 = UPB3 AND Ref(H,-3) <= Ref(H,-4);
  34. UPB5 = UPB4 AND Ref(H,-4) <= Ref(H,-5);
  35. UPB6 = UPB5 AND Ref(H,-5) <= Ref(H,-6);
  36. UPB7 = UPB6 AND Ref(H,-6) <= Ref(H,-7);
  37. DPB3 = L >= Ref(L,-1) AND Ref(L,-1) >= Ref(L,-2) AND Ref(L,-2) >= Ref(L, -3);
  38. DPB4 = DPB3 AND Ref(L,-3) >= Ref(L,-4);
  39. DPB5 = DPB4 AND Ref(L,-4) >= Ref(L,-5);
  40. DPB6 = DPB5 AND Ref(L,-5) >= Ref(L,-6);
  41. DPB7 = DPB6 AND Ref(L,-6) >= Ref(L,-7);
  42. // New 2 month low has occurred in the last 5 days?
  43. NewHighs   = IIf(HHV(H,5) >= HHV(H,40), 1, 0);
  44. NewLows    = LLV(L,5) <= LLV(L,40);
  45. // Are moving averages lined up correctly?
  46. BullishMAs = IIf(MA(C,10) >= EMA(C,20) AND EMA(C,20) >= EMA(C,30), 1, 0);
  47. BearishMAs = IIf(MA(C,10) <= EMA(C,20) AND EMA(C,20) <= EMA(C,30), 1, 0);
  48. Column0     = ADX(period);
  49. Column0Name = "ADX";
  50. Column1     = IIf(PDIFilter AND (UPB3 OR UPB4 OR UPB5 OR UPB6 OR UPB7) AND NewHighs AND BullishMAs, 1, 0);
  51. Column1Name = "Buy Signal";
  52. Column2     = IIf(Column1 == 1, H + .125, 0);
  53. Column2Name = "Buy Stop";
  54. Column3     = IIf(MDIFilter AND (DPB3 OR DPB4 OR DPB5 OR DPB6 OR DPB7) AND NewLows AND BearishMAs, 1, 0);
  55. Column3Name = "Sell Signal";
  56. Column4     = IIf(Column3 == 1, L - .125, 0);
  57. Column4Name = "Sell Stop";
  58. // Filter based on ADX > 30 (trending) and if buy or sell has triggered
  59. Filter = ADX(period) >= 30 AND (Column1 OR Column3);
  60. Buy  = ADX(period) >=30 AND Column1;
  61. Sell = ADX(period) >=30 AND Column3;