等级: 标准版
- 注册:
- 2021-5-20
- 曾用名:
|
楼主 |
发表于 2021-12-2 11:15
|
显示全部楼层
//定义参数
input:ss(1,1,100,1),sloss(2,1,10,1),M(2,1,10,1),N(300,1,300,1),NC(50,1,100,1);
//中间变量
VJQ:=EMA(V*(C-REF(C,NC)),N);//定义成交量加权指数为VJQ
B:=VJQ>0;//定义多头势
S:=VJQ<0;//定义空头势
{
//交易条件
手数:=ss;
BuyPK:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
SellPK:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
BuyP:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
SellP:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);
//入场
if BuyPK then begin
sellshort(holding<0,0,market); //买平
买平开:Buy(holding=0,手数,market); //买开
end
if SellPK then begin
sell(holding>0,0,market); //卖平
卖平开:buyShort(holding=0,手数,MARKET);//卖开
end
//出场
if SellP then begin
卖平:SELL(1,0,MARKET);
end
if buyP then begin
买平:SELLSHORT(1,0,market);
end
}
//我添加的交易系统 不知道是对是错 作为判断使用
//交易条件
开多条件:=BARPOS>N AND holding<=0 AND B AND H>=HHV(H,N);
开空条件:=BARPOS>N AND holding>=0 AND S AND L<=LLV(L,N);
平空条件:= holding<0 AND B AND C<ENTERPRICE*M*(1-SLOSS*0.01);
平多条件:=holding>0 AND S AND C>ENTERPRICE*M*(1+SLOSS*0.01);
手数:=ss;
//交易系统
if 开多条件 then begin
平空:sellshort(holding<0,0,MARKET);
开多:buy(holding=0,手数,MARKET);
end
if 开空条件 then BEGIN
平多:sell(holding>0,0,MARKET);
开空:buyshort(holding=0,手数,MARKET);
end
if 平空条件 then begin
sellshort(holding<0,0,market);
END
if 平多条件 then begin
sell(holding>0,0,MARKET);
end
//止损
if holding>0 and C<ENTERPRICE*(1-SLoss*0.01) then begin
多单止损:sellshort(1,0,market); //多单卖平止损
end
if holding<0 and C>ENTERPRICE*(1+SLoss*0.01)then BEGIN
空单止损:sell(1,0,market); //多单卖平止损
end
补充内容 (2021-12-2 11:16):
上面的是原版, 下面部分是我的更改 |
|