Williams Alligator system.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:5k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Williams Alligator system
  4. //  Author/Uploader: Steve Wiser 
  5. //  E-mail:          slwiserr@erols.com
  6. //  Date/Time Added: 2001-08-13 19:53:30
  7. //  Origin:          
  8. //  Keywords:        
  9. //  Level:           semi-advanced
  10. //  Flags:           system,indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=100
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=100
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  This code attempts to do most of the Williams Alligator sytem
  17. //
  18. //  where the terms fractal up and fractal down are used. Along
  19. //
  20. //  with terms like Alligators month, lips, etc.
  21. //
  22. //  To get a real picture of this go to the web site
  23. //
  24. //  www.profitunity.com and download the demo software
  25. //
  26. //  Investors Dream and see how this code compares.
  27. //
  28. //  You really need to read the book to get a picture of
  29. //
  30. //  what is going on. This is a good read. You can
  31. //
  32. //  get the Williams books on his web site as will. You
  33. //
  34. //  only need the latest one.
  35. //
  36. //------------------------------------------------------------------------------
  37. /* The first set of lines are to set up the color coding for
  38. the price bars */
  39. outsidebar = outside();
  40. insidebar = H <= Ref(H,-1) and L >= Ref(L,-1);
  41. upbar = H > ref(H,-1) and L >= ref(L, -1);
  42. downbar = L < ref(L,-1) and H <= ref(H,-1);
  43. barcolor=iif(outsidebar, 1, iif(downbar, 4, iif(upbar,5, 6) ) );
  44. /*The following builds the alligator lines*/
  45. maxGraph=12;
  46. AlligatorBlue=Ref(Wilders(A,13),-8);
  47. Graph0=AlligatorBlue;
  48. AlligatorRed=Ref(Wilders(A,8),-5);
  49. Graph1=AlligatorRed;
  50. AlligatorGreen=Ref(Wilders(A,5),-3);
  51. Graph2=AlligatorGreen;
  52. Graph0Style=Graph1Style=Graph2Style=1+4;
  53. Graph3=C;  
  54. Graph3Style=64; 
  55. /*Red:* modified for Amibroker*/
  56. /*
  57. Graph3Color=22;  22 is the number for dark green
  58. */
  59. Graph3barcolor=barcolor;
  60. Graph2Color=27; /* 6 is green */
  61. Graph1Color=5;  /* 5 is red color */
  62. Graph0color=7;  /* 7 is dark blue */
  63. /*The following builds Fractal Up*/
  64. var1=ValueWhen(
  65.   (Ref(H,-2) > Ref(H, -4)) AND
  66.   (Ref(H,-2) > Ref(H, -3)) AND
  67.   (Ref(H,-2) > Ref(H, -1)) AND
  68.   (Ref(H,-2) > H), Ref(H,-2),1); 
  69. FractalUp=HighestSince(var1>0,var1,1);
  70. Graph4=FractalUp;
  71. Graph4Color=3;  /* 6 is green */
  72. Graph4Style=9;
  73. /*The following builds Fractal Down*/
  74. var2= 
  75. (Ref(L,-2) <= Ref(L, -1)) AND
  76. (Ref(L,-2) <= Ref(L, 0)) AND
  77. (Ref(L,-2) <= Ref(L, -3)) AND
  78. (Ref(L,-2) <= Ref(L, -4));
  79. FractalDown=ValueWhen( var2,Ref(L,-2),1);
  80. Graph5=FractalDown;
  81. Graph5Style=1;
  82. Graph5Color=8;  /* red is 5 blue is 7 */
  83. Graph5Style=9;
  84. /*
  85. Graph6=ma(c,17);
  86. graph7=ma(c,50);
  87. graph8=ma(c,200);
  88. graph6Style=Graph7Style=graph8Style=12;
  89. */
  90. /* Below are the buy sell signals for testing */
  91. buy = cross(H,FractalUp+0.065)  
  92.             and  (C > AlligatorRed)                ;  
  93. Sell= A < AlligatorGreen 
  94.         or    (ref(C,-2) < FractalUp 
  95.         and (ref(C,-1)<ref(C,-2) )        )             ;
  96. /* The following is Guru commentary coding  */
  97. /* Guru Commentary */
  98. WriteIF(Hold(Buy==1,10),
  99.     "Buy signal bars ago  " +   WriteIF(Hold(Buy==1,10),
  100.     WriteVal(BarsSince(Buy==1)),""),
  101.     "No Buy Signal")  + "n" +
  102. WriteIF(Hold(Sell==1,10),
  103.     "Sell signal bars ago  " +   WriteIF(Hold(Sell==1,10),
  104.     WriteVal(BarsSince(Sell==1)),""),
  105.     "No Sell Signal")  ; 
  106. /* End of commentary code */
  107. /* The following lines of code set up a sell on the last day if in an open position*/
  108. barnumber = cum( 1 );
  109. lastbar = barnumber == lastvalue( barnumber );
  110. sell = SELL or LASTBAR;
  111. filter = cross(H,FractalUp+0.065)  or Cross(L,FractalDown-0.065) ;  
  112. numcolumns = 5;
  113. column0 = IIF(buy==1,1,-1);
  114. column0format = 1.2;
  115. column0name = "Buy+1,Sell-1";WriteIF(Buy==1,"  Buy","  Sell" );
  116. column1 = FractalUp;
  117. column1name = "FractalUp";column1 = FractalUp; WriteVal(FractalUp);
  118. column1format = 1.2;
  119. column2 = FractalDown;
  120. column2name = "Fractal Down";
  121. column2format = 1.2;
  122. column3 = MA(V,3)/EMA(V,17);
  123. column3name = "MAV(3/17)";
  124. column3format=1.2;
  125. column4 = C;
  126. column4name = "Today's Close "; 
  127. column4format=1.2;
  128. /* removes redundant buy and sell signals */
  129. Buy=ExRem(Buy,Sell);
  130. Sell=ExRem(Sell,Buy);
  131. first=1;  
  132. /* First is the number of days for each ROC interval for reviewing performance */
  133. /* To use this filter always make the current day at least 3*first days before the current date
  134.     for meaningful results */
  135. /*
  136. numcolumns = 7;
  137. column0 = C;
  138. column0format = 1.2;
  139. column0name = "Close";
  140. column1 = ref(C, 1+first);
  141. column1name = "Close+i ";
  142. column1format = 1.2;
  143. column2 = ref(C,1+first*2);
  144. column2name = "Close+i*2   ";
  145. column2format = 1.2;
  146. column3 =  ref(C,1+first*3);
  147. column3name = "Close+i*3 ";
  148. column3format = 1.2;
  149. column4= ref(C,first*1+1)  -  C;
  150. column4name="ROC+i";
  151. column4format = 1.2;
  152. column5=  ref(C,first*2+1)  -  C;
  153. column5name="ROC+2i";
  154. column5format = 1.2;
  155. column6=  ref(C,first*3+1)  -  C;
  156. column6name="ROC+3i";
  157. column6format = 1.2;
  158. */
  159. /*  End of Exploration Code. */