以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  为什么总是有这样的信号,应平多,不平  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=180580)

--  作者:haizxj
--  发布时间:2020/6/15 9:50:44
--  为什么总是有这样的信号,应平多,不平
2020-06-15 09:44:59.423    【后台】AL07 运行结束
2020-06-15 09:45:00.502    【后台】AL07 TSellShort 第 57 行 策略:<al611> 出现信号
2020-06-15 09:45:00.515    【后台】AL07 TSellShort 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:AL07
2020-06-15 09:45:00.528    【后台】实际账户持仓 0
2020-06-15 09:45:00.563    【后台】AL07 TSell 第 58 行 策略:<al611> 出现信号
2020-06-15 09:45:00.575    【后台】AL08 TSell 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:AL08
2020-06-15 09:45:00.588    【后台】实际账户持仓 0
2020-06-15 09:45:00.600    【后台】AL07 运行结束



[此贴子已经被作者于2020/6/15 9:51:04编辑过]

--  作者:haizxj
--  发布时间:2020/6/15 9:55:36
--  
stock1:=\'AL07\';
stock2:=\'AL08\';
d1:STKINDI(stock1,\'bsprice.sellprice\',0,0);
d2:STKINDI(stock2,\'bsprice.buyprice\',0,0);
d3:STKINDI(stock2,\'bsprice.sellprice\',0,0);
d4:STKINDI(stock1,\'bsprice.buyprice\',0,0);
jc1:=D1-D2;
jc2:=d4-d3;
JC:"eg09$CLOSE"-"eg01$CLOSE";

//ZL:=\'EG09\'; //主力合约
//CZL:=\'EG01\';//次主力合约
S:=1;


AH:=260;
AL:=-250;
BH:=-240;
BL:=-230;

cond10:TISREMAINEX(0,\'\',\'\')=0;
//平空
COND3:=JC2<=AL;
IF  COND3   AND THOLDING<>0 THEN
//TSELLSHORT(COND3 AND THOLDING<>0,s,MKT);
BEGIN
Tsellshort(1,S,MKT,0,0,\'\',stock1);
Tsell(1,s,MKT,0,0,\'\',stock2);
end

//开空
COND2:=JC2>=AH;
IF  COND2 and cond10 AND THOLDING=0 THEN
//TBUYSHORT( COND2 and cond10 AND THOLDING=0,S,MKT);
BEGIN
TBUYshort(1,S,MKT,0,0,\'\',stock1);
TBUY(1,s,MKT,0,0,\'\',stock2);
end
//平多
COND5:=jc1>=BH;
//TSELL(COND5 AND THOLDING<>0,s,MKT);
IF  COND5 AND THOLDING<>0 THEN
BEGIN
Tsell(1,S,MKT,0,0,\'\',stock1);
TsellSHORT(1,s,MKT,0,0,\'\',stock2);
end

//开多

COND7:=JC1<=BL;
//Tbuy(COND5 AND THOLDING<>0,s,MKT);
IF  COND7 and cond10 AND THOLDING=0 THEN
BEGIN
TBUY(1,S,MKT,0,0,\'\',stock1);
TBUYSHORT(1,s,MKT,0,0,\'\',stock2);
end
[此贴子已经被作者于2020/6/15 9:56:05编辑过]

--  作者:FireScript
--  发布时间:2020/6/15 10:10:10
--  
没有仓位啊。日志里面写的很清楚啊。

2020-06-15 09:45:00.528    【后台】实际账户持仓 0

--  作者:haizxj
--  发布时间:2020/6/15 10:11:21
--  
没有仓位就不应当平仓,而且下面多头有仓位,应当平,却不平

这个仓位是不是这样THOLDING<>0
[此贴子已经被作者于2020/6/15 10:11:59编辑过]

--  作者:FireScript
--  发布时间:2020/6/15 10:14:52
--  
你多空都没有仓位啊。 你平多的位置下面也有日志记录的啊。

这样吧。你加个仓位判断。

TBUYHOLDINGEX  多头
TSELLHOLDINGEX 空头

没有可用仓位直接不发平仓信号。

--  作者:haizxj
--  发布时间:2020/6/15 10:21:06
--  
Tsellshort(tholding<0,S,MKT,0,0,\'\',stock1);
Tsell(tholding>0,s,MKT,0,0,\'\',stock2);

这样不知行不行,
本来就是软件后台的功能,
非要搞成客户自己去搞这些
[此贴子已经被作者于2020/6/15 10:21:39编辑过]

--  作者:haizxj
--  发布时间:2020/6/15 10:22:26
--  
以下是引用FireScript在2020/6/15 10:14:52的发言:
你多空都没有仓位啊。 你平多的位置下面也有日志记录的啊。

这样吧。你加个仓位判断。

TBUYHOLDINGEX  多头
TSELLHOLDINGEX 空头

没有可用仓位直接不发平仓信号。

对于买持卖持,但是套利总有一个是买持,一个卖持
怎么办


--  作者:FireScript
--  发布时间:2020/6/15 10:30:48
--  
1.按照下面方式
Tsellshort(TSELLHOLDINGEX(\'\',\'\',1)>0,S,MKT,0,0,\'\',stock1);
Tsell(TBUYHOLDINGEX(\'\',\'\',1)>0,s,MKT,0,0,\'\',stock2);
2.
软件不可能默认没有仓位就不出信号的,必须自行判断。下单都是先有信号再下单,仓位可能还会有其他来源的操作导致变动,出了信号,到下单时候发现仓位被手工平了,这种情况是有可能的。这时候总不能把前面发的信号收回去吧。

--  作者:haizxj
--  发布时间:2020/6/15 10:40:47
--  
但是我已大于250了,为什么还没有平仓
--  作者:FireScript
--  发布时间:2020/6/15 10:51:33
--  
250是指仓位还是变量啊。是变量AL的话,你最好加个DEBUGFILE输出到文本里面去。你肉眼看到的值和程序里面计算的不一定能是同步,而且还有考虑到轮询情况下信号持续时间短,可能捕捉不到的情况。