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

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    Monthly bar chart
  4. //  Author/Uploader: Graham Kavanagh 
  5. //  E-mail:          gkavanag@bigpond.net.au
  6. //  Date/Time Added: 2003-01-01 22:47:12
  7. //  Origin:          
  8. //  Keywords:        monthly
  9. //  Level:           medium
  10. //  Flags:           indicator
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=249
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=249
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  Weekly chart to be shown in indicator window. This is for fixed months
  17. //  starting at first trading day of each month.
  18. //
  19. //------------------------------------------------------------------------------
  20. //Monthly candlestick chart
  21. //by Graham Kavanagh 26 Dec 2002
  22. firstmonth = ValueWhen(Cum(1)==1,Month());
  23. numyear = Year()-ValueWhen(Cum(1)==1,Year());
  24. numbars = LastValue(numyear)*12 - (12-LastValue(Month())) + (12-firstmonth+1);
  25. nummonth = numyear*12 - (12-Month()) + (12-firstmonth+1);
  26. Monthbars = 
  27. IIf(nummonth==1 AND nummonth!=Ref(nummonth,1),Cum(1), 
  28. IIf(nummonth==numbars AND Cum(1)==LastValue(Cum(1)), 
  29. LastValue(Cum(1)) - ValueWhen( Ref(nummonth,-1)==numbars-1,Cum(1) )+1, 
  30. ValueWhen(nummonth<Ref(nummonth,1),Cum(1) )-ValueWhen(nummonth>Ref(nummonth,-1),Cum(1))+1 ));
  31. MonthBar = Monthbars;
  32. mO = IIf( nummonth==1 , Ref(O,-Cum(1)+1), ValueWhen(nummonth>Ref(nummonth,-1),O ) );
  33. mH = HHV(H,Monthbars);
  34. mL = LLV(L,Monthbars);
  35. mC = C;
  36. thismonth = Month();
  37. thisyear = Year();
  38. SetBarsRequired(100000,100000);
  39. EnableScript("jscript");
  40. <%
  41. mo = VBArray( AFL( "mO" ) ).toArray();
  42. mh = VBArray( AFL( "mH" ) ).toArray();
  43. ml = VBArray( AFL( "mL" ) ).toArray();
  44. mc = VBArray( AFL( "mC" ) ).toArray();
  45. Monthbars = VBArray( AFL( "Monthbars" ) ).toArray();
  46. Close = VBArray( AFL( "Close" ) ).toArray();
  47. thismonth = VBArray( AFL( "thismonth" ) ).toArray();
  48. thisyear = VBArray( AFL( "thisyear" ) ).toArray();
  49. Mtho = new Array();
  50. Mthh = new Array();
  51. Mthl = new Array();
  52. Mthc = new Array();
  53. mymonth = new Array();
  54. myyear = new Array();
  55. // initialize first element
  56. j = 0;
  57. Mtho[0] = mo[0];
  58. Mthh[0] = mh[0];
  59. Mthl[0] = ml[0];
  60. Mthc[0] = mc[0];
  61. mymonth[0] = thismonth[0];
  62. myyear[0] = thisyear[0];
  63. // perform the loop 
  64. for( i = 1; i < Close.length; i++ )
  65. {
  66.  if(Monthbars[i] > 0 )
  67.  {
  68.   Mtho[j] = mo[i] ;
  69.   Mthh[j] = mh[i] ;
  70.   Mthl[j] = ml[i] ;
  71.   Mthc[j] = mc[i] ;
  72.   mymonth[j] = thismonth[i];
  73.   myyear[j] = thisyear[i];
  74.   j++;
  75.  }
  76. }
  77. delta = Close.length - j-1;
  78. AFL.Var("delta") = delta;
  79. AFL.Var("Mtho") = Mtho;
  80. AFL.Var("Mthh") = Mthh;
  81. AFL.Var("Mthl") = Mthl;
  82. AFL.Var("Mthc") = Mthc;
  83. AFL.Var("mymonth") = mymonth;
  84. AFL.Var("myyear") = myyear;
  85. %>
  86. Montho =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mtho,-delta-1));
  87. Monthh =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mthh,-delta-1));
  88. Monthl =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mthl,-delta-1));
  89. Monthc =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mthc,-delta-1));
  90. MonthDate = IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(Mymonth,-delta-1));
  91. YearDate = IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(myyear,-delta-1));
  92. GraphXSpace=5;
  93. PlotOHLC(monthO,monthH,monthL,monthC,"weekly",colorBlack,styleCandle);
  94. Title = "Monthly Chart, O:" + WriteVal(monthO,1.1) + ", H:" + WriteVal(Monthh,1.1) + ", L:" + WriteVal(monthL,1.1) + ", C:" + WriteVal(monthC,1.1) + ", for month: " + WriteVal(MonthDate,1.0) + "-" + WriteVal(YearDate,1.0);
  95. Filter=1;
  96. AddColumn(O,"  O    ",1.1);
  97. AddColumn(H,"  H    ",1.1);
  98. AddColumn(L,"  L    ",1.1);
  99. AddColumn(C,"  C    ",1.1);
  100. AddColumn(nummonth ,"nummth",1.0);
  101. AddColumn(Monthbar ,"mthbars",1.0);
  102. AddColumn(monthO,"mtho",1.1);
  103. AddColumn(Monthh,"mthh",1.1);
  104. AddColumn(monthL,"mthl",1.1);
  105. AddColumn(Monthc,"mthc",1.1);
  106. AddColumn(YearDate+Monthdate/100,"monthDate");