老师。
你好,能帮忙把这段程序改为我们的金字塔程序吗?谢谢
//参数: K1 15 K2 10
SHORT:=12;
LONG:=26;
M:=9;
MA1:=MA(C,10);
MA2:=MA(C,20);
DIFF :=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA :=EMA(DIFF,M);//DIFF的M个周期指数平滑移动平均
MACD:=2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
SJ:=TIME>=0900 AND TIME<=1500;
CROSS(MA1,MA2) AND CROSS(MACD,0) AND SJ ,BPK;
CROSS(MA2,MA1) AND CROSSDOWN(MACD,0) AND SJ ,SPK;
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
HH:=REF(HHV(H,NN),NN);
//昨日最高
HC:=REF(HHV(C,NN),NN);
//昨日最高收盘
LL:=REF(LLV(L,NN),NN);
//昨日最低
LC:=REF(LLV(C,NN),NN);
//昨日最低收盘
RANGER:=IFELSE((HH - LC) >= (HC - LL),HH - LC,HC - LL);
//取最高减去最第收盘。 与 最高收盘减去最低价格, 两者中大的那个
BUYTRIG:=K1/10*RANGER;
SELLTRIG:=K2/10*RANGER;
BUYPOSITION:=REF(OPEN,NN-1)+BUYTRIG;
//今日开盘+一定幅度
SELLPOSITION:=REF(OPEN,NN-1)-SELLTRIG;
//今日开盘-一定幅度
H>BUYPOSITION && NOT(REF(EXIST(H>BUYPOSITION,NN),1)) && COUNT(H>BUYPOSITION && NOT(REF(EXIST(H>BUYPOSITION,NN),1)),NN)<2 AND SJ ,BPK;
L<SELLPOSITION && NOT(REF(EXIST(L<SELLPOSITION,NN),1)) && COUNT(L<SELLPOSITION && NOT(REF(EXIST(L<SELLPOSITION,NN),1)),NN)<2 AND SJ ,SPK;
C<=(BKPRICE-BKPRICE*0.015) ,SP;
C>=(SKPRICE+SKPRICE*0.015),BP;
SETSIGPRICETYPE(BPK,LIMIT_ORDER);//市价下单
SETSIGPRICETYPE(SPK,LIMIT_ORDER);
SETSIGPRICETYPE(BK,LIMIT_ORDER);
SETSIGPRICETYPE(SK,LIMIT_ORDER);
SETSIGPRICETYPE(BP,LIMIT_ORDER);
SETSIGPRICETYPE(SP,LIMIT_ORDER);
CLOSEKLINE(1,10);//收盘前最后1根K线提前10秒走完
AUTOFILTER;
SHORT:=12;
LONG:=26;
M:=9;
MA1:=MA(C,10);
MA2:=MA(C,20);
DIFF :=EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA :=EMA(DIFF,M);//DIFF的M个周期指数平滑移动平均
MACD:=2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
SJ:=TIME>=090000 AND TIME<=150000;
if CROSS(MA1,MA2) AND CROSS(MACD,0) AND SJ then begin
sellshort(1,0,marketr);
buy(holding=0,1,marketr);
end
if CROSS(MA2,MA1) AND CROSS(0,macd) AND SJ then begin
sell(1,0,marketr);
buyshort(holding=0,1,marketr);
end
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
HH:=REF(HHV(H,NN),NN);
//昨日最高
HC:=REF(HHV(C,NN),NN);
//昨日最高收盘
LL:=REF(LLV(L,NN),NN);
//昨日最低
LC:=REF(LLV(C,NN),NN);
//昨日最低收盘
RANGER:=IFELSE((HH - LC) >= (HC - LL),HH - LC,HC - LL);
//取最高减去最第收盘。 与 最高收盘减去最低价格, 两者中大的那个
BUYTRIG:=K1/10*RANGER;
SELLTRIG:=K2/10*RANGER;
BUYPOSITION:=REF(OPEN,NN-1)+BUYTRIG;
//今日开盘+一定幅度
SELLPOSITION:=REF(OPEN,NN-1)-SELLTRIG;
//今日开盘-一定幅度
if H>BUYPOSITION && NOT(REF(EXIST(H>BUYPOSITION,NN),1)) && COUNT(H>BUYPOSITION && NOT(REF(EXIST(H>BUYPOSITION,NN),1)),NN)<2 AND SJ then begin
sellshort(1,0,marketr);
buy(holding=0,1,marketr);
end
if L<SELLPOSITION && NOT(REF(EXIST(L<SELLPOSITION,NN),1)) && COUNT(L<SELLPOSITION && NOT(REF(EXIST(L<SELLPOSITION,NN),1)),NN)<2 AND SJ then begin
sell(1,0,marketr);
buyshort(holding=0,1,marketr);
end
if C<=(enterprice-enterprice*0.015) and holding>0 then sell(1,0,marketr);
if C>=(enterprice+enterprice*0.015) and holding<0 then sellshort(1,0,marketr);