金字塔MA交易系统策略
-
相关简介:金字塔公式 金字塔模型策略源码:runmode:0; input:period(70,5,90,5); input:initialstop(2,0,3,1),coststop(2,1,3,1),trailingstop(3,1,6,1); input:money(0,0,10,1); input:slippage(1,0,1,1); input:debug(1,0,1,1); variable:myasset=500000; variable:costprice=0,stopline=0; be
-
文章来源:公式网 发布时间:2015-10-25浏览次数:
金字塔公式 金字塔模型策略源码:runmode:0;
input:period(70,5,90,5);
input:initialstop(2,0,3,1),coststop(2,1,3,1),trailingstop(3,1,6,1);
input:money(0,0,10,1);
input:slippage(1,0,1,1);
input:debug(1,0,1,1);
variable:myasset=500000;
variable:costprice=0,stopline=0;
begin
if stricmp(marketlabel,\'sh\')=0 then begin
commission:=0.001;
stamptax:=0.001;
transferfee:=0.001;
end
if stricmp(marketlabel,\'sz\')=0 then begin
commission:=0.001;
stamptax:=0.001;
transferfee:=0;
end
ma1:ma(close,60);
buycond:=ref(cross(close,ma1),1);
topband:=ref(hhv(high,period),1)+mindiff;
atr:=ref(ma(tr,10),1);
initialstopnum:=trimprice(initialstop*atr);
coststopnum:=trimprice(coststop*atr);
trailingstopnum:=trimprice(trailingstop*atr);
slippagenum:=slippage*mindiff;
end
if holding=0 then begin
price:=0;
lots:=0;
if barpos>=period and buycond then
price:=close+slippagenum;
if price>0 then begin
mycash:=cash(0);
lots1:=intpart(mycash/(price*volunit))*volunit;
if money=0 then begin
lots:=lots1;
end else begin
lots2:=intpart(mycash*0.01*money/(initialstopnum*volunit))*volunit;
lots:=min(lots1,lots2);
end
end
if lots>=1 then begin
buy(1,lots,limitr,price);
if workmode=1 then
tbuy(1,lots,limitr,price);
end
end
if holding>0 then begin
price:=0;
lots:=holding;
if initialstop>0 then begin
if stopline>0 and low<=stopline then
price:=close-slippagenum;
if stopline=0 then begin
costprice:=trimprice((enterprice*(1+commission)+2*transferfee)/(1-commission-stamptax))+mindiff;
stopline:=costprice-initialstopnum;
end
if stopline
stopline:=costprice;
if stopline>=costprice and high-trailingstopnum>stopline then
stopline:=high-trailingstopnum;
end
if price>0 then begin
sell(1,lots,limitr,price);
costprice:=0;
stopline:=0;
myasset:=asset;
if workmode=1 then
tsell(1,lots,limitr,price);
end
end
partline(debug=1 and holding=0,topband,colorred,1);
if initialstop>0 then begin
if holding>0 then begin
drawicon(stopline
drawicon(stopline>costprice,stopline,10);
end
end
if debug=1 then begin
盈亏:myasset,noaxis,colormagenta;
收益:(myasset-500000)/500000,linethick0;
次数:totaltrade,linethick0;
胜率:percentwin,linethick0;
连亏:maxseqloss,linethick0;
连赢:maxseqwin,linethick0;
end
复制上述代码粘贴到到公式管理器
输出RUNMODE:0
输出INPUT:周期
输出INPUT:INITIALSTOP(2,0,3,1),COSTSTOP(2,1,3,1),TRAILINGSTOP(3,1,6,1)
输出INPUT:MONEY(0,0,10,1)
输出INPUT:SLIPPAGE(1,0,1,1)
输出INPUT:DEBUG(1,0,1,1)
输出VARIABLE:MYASSET=500000
输出VARIABLE:COSTPRICE=0,STOPLINE=0
COMMISSION赋值:0.001
STAMPTAX赋值:0.001
TRANSFERFEE赋值:0.001
COMMISSION赋值:0.001
STAMPTAX赋值:0.001
TRANSFERFEE赋值:0
输出 END MA1:收盘价的60日简单移动平均
BUYCOND赋值:昨日收


现在就去充值积分
加入VIP可下载100以下的所有资源