CAMSLIM Cup and Handle Pattern AFL.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:4k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    CAMSLIM Cup and Handle Pattern AFL
  4. //  Author/Uploader: Jerry Tyliczka 
  5. //  E-mail:          admin@wallstreettape.com
  6. //  Date/Time Added: 2003-11-15 14:57:03
  7. //  Origin:          
  8. //  Keywords:        cup handle
  9. //  Level:           medium
  10. //  Flags:           exploration
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=306
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=306
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  CAMSLIM cup and handle pattern emploration. Code is based on the following
  17. //  article: http://www.haikulabs.com/mh.htm
  18. //
  19. //------------------------------------------------------------------------------
  20. // Cup and Handle exploration written by Jerry Tyliczka
  21. // visit us at: http://portals.wallstreettape.com
  22. //
  23. // This code written per specifications found at
  24. // http://www.haikulabs.com/mh.htm
  25. // Version 1.0
  26. //
  27. // This code calculates the Alpha, Delta, Beta and Gamma values
  28. // but they are not used in the filter criteria as specified
  29. // by the article which this code was based on.
  30. //
  31. // Look for additional changes as I tweak the below code. 
  32. // I will also include Scan feature and Backtesting in future release. 
  33. //
  34. // Comments, please write to admin@wallstreettape.com
  35. MinPrice=20;
  36. MinVolume=100000;
  37. //Left side of Handle formation can occur anywhere from 2-25days - look at the last 25 bars and get the number of bars since condition met.
  38. LH=HHV(Close,25); // Highest close past 25 days.
  39. BLH=HHVBars(Close,25); // Tells us # of bars that have past since high reached. Used to determine lowest bar.
  40. BH=LLV(Close,BLH); //  Lowest close since the highest value was reached/
  41. BBH=LLVBars(Close,BLH); // number of bars that have past since lowest value.
  42. NBLH=BLH-BBH; // this is the number of bars in the formation of the left side handle. NBLH must be atleast 2 to be a valid handle formation.
  43. // Now lets get the cup formation. Cup formation can occur anywhere from 23 to 145 days. The left side of the cup can be from 20-120 days and the right side can be anywhere from 3-25 days.
  44. // get the right side of the cup(low).
  45. BC=LLV(Close,BLH+25); // look at 25 bars since the left side of handle.
  46. BBC=LLVBars(Close,BLH+25);
  47. // get the left side of the cup.
  48. LC=Ref(HHV(Close,120),BBC*-1);
  49. BLC=Ref(HHVBars(Close,120),BBC*-1);
  50. // Get highest value before left side of cup started to form.
  51. KC=Ref(HHV(Close,30),BLC*-1);
  52. BKC=Ref(HHVBars(Close,120),BLC*-1);
  53. Delta= LC/KC;
  54. //Calculate the up/down relative price value during time frame RC (Right Cup Formation)
  55. URPV=DRPV=0;
  56. i=EndValue(BLH);
  57. j=EndValue(BBC);
  58. do
  59.  {
  60.    URPV = IIf(Ref(Close,i*-1)>Ref(Close,(i+1)*-1),Ref(Volume,(i*-1))*Ref(Close,(i*-1))-Ref(Close,(i+1)*-1),URPV);
  61.    DRPV = IIf(Ref(Close,i*-1)<Ref(Close,(i+1)*-1),Ref(Volume,(i*-1))*Ref(Close,(i+1)*-1)-Ref(Close,(i*-1)),DRPV);
  62.    i++;
  63.  } while (i<j);
  64. Alpha = URPV/DRPV; // Should be >1
  65. // Calculate Beta
  66. DRPV=0;
  67. i=EndValue(BBH);
  68. j=EndValue(BLH);
  69. do
  70.  {
  71.    DRPV = IIf(Ref(Close,i*-1)<Ref(Close,(i+1)*-1),Ref(Volume,(i*-1))*Ref(Close,(i+1)*-1)-Ref(Close,(i*-1)),DRPV);
  72.    i++;
  73.  } while (i<j);
  74. Beta = URPV/DRPV;
  75. Gamma = log(Alpha) + log(Beta) + delta;
  76. AddColumn(LH,"Left Handle");
  77. AddColumn(BH,"Bottom Handle");
  78. AddColumn(BC,"Bottom Cup");
  79. AddColumn(LC,"Left Cup");
  80. AddColumn(ALPHA,"Alpha");
  81. AddColumn(DELTA,"Delta");
  82. AddColumn(BETA,"BETA");
  83. AddColumn(GAMMA,"Gamma");
  84. // Filter Criteria as follows:
  85. // 1. Right side of handle must be at least 2 bars. NBHL>2
  86. // 2. Bottom of the cup must be lower than the left top of the cup.
  87. // 3. Left handle must be lower than or equal to the lect cup formation.
  88. // 4. Bottom of the cup must be less than the left handle.
  89. // 5. Bottom of the handle must be > 80% of the left handle + 20% of the bottom cup.
  90. // 6. Start of cup/handle formation must be greater than precedding chart value. LC>LC
  91. // 7. Minimum price and volume you can set any way you like.
  92. Filter= NBLH>2 AND Close>BH AND BC<LC AND LH<=LC AND BC<LH AND BH<LH AND BH>.8*LH+.2*BC AND KC<LC AND Close>MinPrice AND MA(Volume,30)>MinVolume;