⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monthly bar chart.afl

📁 一个更精度的平滑涵数, 可用于股票交易系统.用于Amibroker 平台
💻 AFL
字号:
//------------------------------------------------------------------------------
//
//  Formula Name:    Monthly bar chart
//  Author/Uploader: Graham Kavanagh 
//  E-mail:          gkavanag@bigpond.net.au
//  Date/Time Added: 2003-01-01 22:47:12
//  Origin:          
//  Keywords:        monthly
//  Level:           medium
//  Flags:           indicator
//  Formula URL:     http://www.amibroker.com/library/formula.php?id=249
//  Details URL:     http://www.amibroker.com/library/detail.php?id=249
//
//------------------------------------------------------------------------------
//
//  Weekly chart to be shown in indicator window. This is for fixed months
//  starting at first trading day of each month.
//
//------------------------------------------------------------------------------

//Monthly candlestick chart
//by Graham Kavanagh 26 Dec 2002

firstmonth = ValueWhen(Cum(1)==1,Month());
numyear = Year()-ValueWhen(Cum(1)==1,Year());
numbars = LastValue(numyear)*12 - (12-LastValue(Month())) + (12-firstmonth+1);
nummonth = numyear*12 - (12-Month()) + (12-firstmonth+1);
Monthbars = 
IIf(nummonth==1 AND nummonth!=Ref(nummonth,1),Cum(1), 
IIf(nummonth==numbars AND Cum(1)==LastValue(Cum(1)), 
LastValue(Cum(1)) - ValueWhen( Ref(nummonth,-1)==numbars-1,Cum(1) )+1, 
ValueWhen(nummonth<Ref(nummonth,1),Cum(1) )-ValueWhen(nummonth>Ref(nummonth,-1),Cum(1))+1 ));
MonthBar = Monthbars;
mO = IIf( nummonth==1 , Ref(O,-Cum(1)+1), ValueWhen(nummonth>Ref(nummonth,-1),O ) );
mH = HHV(H,Monthbars);
mL = LLV(L,Monthbars);
mC = C;
thismonth = Month();
thisyear = Year();
SetBarsRequired(100000,100000);

EnableScript("jscript");
<%
mo = VBArray( AFL( "mO" ) ).toArray();
mh = VBArray( AFL( "mH" ) ).toArray();
ml = VBArray( AFL( "mL" ) ).toArray();
mc = VBArray( AFL( "mC" ) ).toArray();
Monthbars = VBArray( AFL( "Monthbars" ) ).toArray();
Close = VBArray( AFL( "Close" ) ).toArray();
thismonth = VBArray( AFL( "thismonth" ) ).toArray();
thisyear = VBArray( AFL( "thisyear" ) ).toArray();

Mtho = new Array();
Mthh = new Array();
Mthl = new Array();
Mthc = new Array();
mymonth = new Array();
myyear = new Array();

// initialize first element
j = 0;
Mtho[0] = mo[0];
Mthh[0] = mh[0];
Mthl[0] = ml[0];
Mthc[0] = mc[0];
mymonth[0] = thismonth[0];
myyear[0] = thisyear[0];

// perform the loop 
for( i = 1; i < Close.length; i++ )
{
 if(Monthbars[i] > 0 )
 {
  Mtho[j] = mo[i] ;
  Mthh[j] = mh[i] ;
  Mthl[j] = ml[i] ;
  Mthc[j] = mc[i] ;
  mymonth[j] = thismonth[i];
  myyear[j] = thisyear[i];
  j++;
 }
}

delta = Close.length - j-1;
AFL.Var("delta") = delta;
AFL.Var("Mtho") = Mtho;
AFL.Var("Mthh") = Mthh;
AFL.Var("Mthl") = Mthl;
AFL.Var("Mthc") = Mthc;
AFL.Var("mymonth") = mymonth;
AFL.Var("myyear") = myyear;
%>

Montho =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mtho,-delta-1));
Monthh =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mthh,-delta-1));
Monthl =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mthl,-delta-1));
Monthc =IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(mthc,-delta-1));
MonthDate = IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(Mymonth,-delta-1));
YearDate = IIf(Cum(1)<delta-LastValue(Cum(1)),0, Ref(myyear,-delta-1));

GraphXSpace=5;
PlotOHLC(monthO,monthH,monthL,monthC,"weekly",colorBlack,styleCandle);

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);


Filter=1;
AddColumn(O,"  O    ",1.1);
AddColumn(H,"  H    ",1.1);
AddColumn(L,"  L    ",1.1);
AddColumn(C,"  C    ",1.1);
AddColumn(nummonth ,"nummth",1.0);
AddColumn(Monthbar ,"mthbars",1.0);
AddColumn(monthO,"mtho",1.1);
AddColumn(Monthh,"mthh",1.1);
AddColumn(monthL,"mthl",1.1);
AddColumn(Monthc,"mthc",1.1);
AddColumn(YearDate+Monthdate/100,"monthDate");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -