input:man(26,2,200);
ma1:=ma(close,man);
ccm:=cross(close,ma1);
cmc:=cross(ma1,close);
资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
if ccm then
begin
//平空开多
sellshort(holding<0 and ccm,0);
buy(holding<=0,1);
end
if cmc then
begin
//平多开空
sell(holding>0 and cmc,0);
buyshort(holding>=0,1);
end
金字塔的老师这么晚了还给我回复,真是感动。辛苦了,非常感谢。
逻辑上先平仓再开仓,不锁仓
我的意思是多品种交易的时候很可能持仓是有多有空的,或者是多周期交易的时候也会出现这样的情况。MA1:=MA(C,5);
MA2:=MA(C,10);
MA1>MA2&&C>MA1,BPK;//买平开
CROSS(MA2,MA1),SP;//卖平
MA1<MA2&&C<MA1,SPK;//卖平开
CROSS(MA1,MA2),BP;//买平
这个是我在文华里面的,很简单的表述就实现了这个功能。金字塔里面我应该怎么处理
对于这种情况,就不使用HOLDING了
可以这样
资产:=ASSET,LINETHICK0;
每手单位:=VOLUNIT;
N1:=INTPART(10%*资产/(C*每手单位));
//平空
SELLSHORT(BP,N1);
//开多
BUY(BK,N1);
//平多
SELL(SP,N1);
//开空
BUYSHORT(SK,N1);
//平空开多
SELLSHORT(BP,N1);
BUY(BK,N1);
//平多开空
SELL(SP,N1);
BUYSHORT(SK,N1);
input:man(26,2,200);
ma1:=ma(close,man);
ccm:=cross(close,ma1);
cmc:=cross(ma1,close);
资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
if ccm then
begin
//平空开多
sellshort(holding<0 and ccm,0);
buy(holding<=0,1);
end
if cmc then
begin
//平多开空
sell(holding>0 and cmc,0);
buyshort(holding>=0,1);
end