Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:后台程序化模型,代码开1手,实际却是两手

1楼
jzt666 发表于:2019/12/4 21:32:34
我写的代码是开一手多,开一手空,实际结果却是两倍,这是什么原因。
//主合约开多时
GLOBALVARIABLE:BBZY=0; //止盈
GLOBALVARIABLE:BBZS=0; //止损
//主合约开空时
GLOBALVARIABLE:SSZY=0; //止盈
GLOBALVARIABLE:SSZS=0; //止损

GLOBALVARIABLE:主合约方向 = 0;

GLOBALVARIABLE:N = 0;
GLOBALVARIABLE:开仓时间 = 094500;
GLOBALVARIABLE:平仓时间 = 114500;
GLOBALVARIABLE:账户 = '';
GLOBALVARIABLE:主合约 = 'HSI00';
GLOBALVARIABLE:副合约 = 'HHI00';

昨收 := CallStock(主合约, VTCLOSE, 6, -1);
//最新 := CallStock(主合约, VTCLOSE);
最新 := dynainfo2(7, 主合约);
涨跌值 := 最新 - 昨收;
//NEWJC := ABS(CallStock(主合约, VTCLOSE, -1, 0) - CallStock(副合约, VTCLOSE, -1, 0));
NEWJC := dynainfo2(7, 主合约)-dynainfo2(7, 副合约);


//CurrentTime()>=开仓时间 and CurrentTime()<=095000) and
if  N=0 then begin
if (涨跌值 > 0) then begin
//MSGOUT(1,'主开多,副开空');
//主开多,副开空
TBUY(1, 1, MKT, 0, 0, 账户, 主合约);
TBUYSHORT(1, 1, MKT, 0, 0, 账户, 副合约);
主合约方向 := 1;
//INJC := ABS(CallStock(主合约, VTCLOSE, -1, 0) - CallStock(副合约, VTCLOSE, -1, 0));
INJC := dynainfo2(7, 主合约)-dynainfo2(7, 副合约);
BBZY := INJC + 10;
BBZS := INJC -10;
N := 1;
DEBUGOUT("主开多信号N:=%.2f", N);
end
else if (涨跌值 < 0) then begin
//主开空,副开多
MSGOUT(1,'主开空,副开多');
TBUYSHORT(1, 1, MKT, 0, 0, 账户, 主合约);
TBUY(1, 1, MKT, 0, 0, 账户, 副合约);
主合约方向 := 0;
//INJC := ABS(CallStock(主合约, VTCLOSE, -1, 0) - CallStock(副合约, VTCLOSE, -1, 0));
INJC := dynainfo2(7, 主合约)-dynainfo2(7, 副合约);
SSZY := INJC - 10;
SSZS := INJC + 10;
N := 1;
DEBUGOUT("主开空信号N:=%.2f", N);
end
end



//===============主开多止盈===============
if 主合约方向=1 and NEWJC>=BBZY then begin
//主平多
TSELL(1, 1, MKT, 0, 0, 账户, 主合约);
TSELLSHORT(1, 1, MKT, 0, 0, 账户, 副合约);
//N := 0;
end

//===============主开多止损===============
if 主合约方向=1 and NEWJC<=BBZS then begin
//主平多
TSELL(1, 1, MKT, 0, 0, 账户, 主合约);
TSELLSHORT(1, 1, MKT, 0, 0, 账户, 副合约);
//N := 0;
end

//===============主开空止盈===============
if 主合约方向=0 and NEWJC<=SSZY then begin
//主平空
TSELLSHORT(1, 1, MKT, 0, 0, 账户, 主合约);
TSELL(1, 1, MKT, 0, 0, 账户, 副合约);
//N := 0;
end

//===============主开空止损===============
if 主合约方向=0 and NEWJC>=SSZS then begin
//主平空
TSELLSHORT(1, 1, MKT, 0, 0, 账户, 主合约);
TSELL(1, 1, MKT, 0, 0, 账户, 副合约);
//N := 0;
end

//================到点全平================
//if CurrentTime()>=平仓时间 then begin
// //到点平仓
// //全部平仓
// if 主合约方向=1 and N=1 then begin
// //主平多
// TSELL(1, 1, MKT, 0, 0, 账户, 主合约);
// TSELLSHORT(1, 1, MKT, 0, 0, 账户, 副合约);
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
// N := 0;
// end
// else if 主合约方向=0 and N=1 then begin
// //主平空
// TSELLSHORT(1, 1, MKT, 0, 0, 账户, 主合约);
// TSELL(1, 1, MKT, 0, 0, 账户, 副合约);
// N := 0;
// end
//end

2楼
FireScript 发表于:2019/12/5 9:05:11
 你监控了2个品种啊。套利这种,你监控一个就行了。价格都是直接用函数调用过来的,你不需要监控2个品种的。
3楼
jzt666 发表于:2019/12/5 10:46:21
谢谢,按你的方法m没错
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.04883 s, 3 queries.