等级: 免费版
- 注册:
- 2021-5-20
- 曾用名:
|

楼主 |
发表于 2022-7-15 16:03
|
显示全部楼层
麻烦老师
1、帮忙核对开平仓对锁程序:
Lots:=5;//开平仓数量
mhold:=STKNAME()&'Zhold';//《某一股票开多仓信号标识》
mswitch0:=STKNAME()&'Zswitch0';//《某一股票开仓开关状态标识》
TbuyHY:=TBUYHOLDINGEX('','',1)-TBUYHOLDINGEX('','',0) 老多仓
TbuyHT:=TBUYHOLDINGEX('','',0);//今多仓
TSellHY:=TBUYHOLDINGEX('','',1)-TBUYHOLDINGEX('','',0) 老空仓
TSellHT:=TBUYHOLDINGEX('','',0);//今空仓
hold0=EXTGBDATA(mhold);//获取《某一股票开多仓信号标识》的持仓数量
switch0=EXTGBDATA(mswitch0);//获取《某一股票开多仓信号标识》的开仓开关状态(0,只可平;1,只可开)
//------------------------------------------平多:优先平老仓后/老仓不足则平今仓转为开空仓对锁下单程序-------------------------------------------------
if hold0=0&&switch0=0 then begin//hold0=0获取《某一股票开多仓信号标识》的持仓数量=0——平仓;switch0=0——开关状态为《只可平》状态
if TbuyHY>=Lots then BEGIN//老仓数量>=可平数量————优先平老多仓
tsell(1,Lots,mkt);
end
if TbuyHY<Lots&&TbuyHY>0 then BEGIN//老多仓数量<可平数量————优先平老多仓,不足补开空对锁
tsell(1,TbuyHY,mkt);//优先平老多仓
tbuyshort(1,Lots-TbuyHY,mkt);//不足补开空对锁
end
if TbuyHY=0 then BEGIN//没有老多仓————直接开空仓对锁今多仓
tbuyshort(1,Lots,mkt);
end
EXTGBDATASET(mswitch0,1);//将《某一股票开仓开关状态标识》《只可平》开关状态转为《只可开》状态
end
//------------------------------------------开多:优先平老空仓对锁下单程序/老空仓不足则开多仓-------------------------------------------------
if hold0>0&&switch0=1 then begin//hold0=1获取《某一股票开多仓信号标识》的持仓数量=1——开仓;switch0=0——开关状态为《只可开》状态
if TSellHY>=Lots then BEGIN//老空仓数量>=可平数量————优先平老空仓
tsellshort(1,Lots,mkt);
end
if TSellHY<Lots&&TSellHY>0 then BEGIN//老空仓数量<可平数量————优先平老空仓
tsell(1,TSellHY,mkt);//优先平老空仓
tbuy(1,Lots-TSellHY,mkt);//不足补开多
end
if TSellHY=0 then BEGIN//没有老多仓————直接开多仓
tbuy(1,Lots,mkt);
end
EXTGBDATASET(mswitch0,0);//将《某一股票开仓开关状态标识》开关状态《只可开》转为《只可平》状态
end
2、请老师告知期货那几个市场默认优先平老仓。强烈老师把公司老仓标识函数开发给用户 |
|