以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  未达到平仓条件自动平仓的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=82078)

--  作者:gzcoolfire
--  发布时间:2015/8/5 23:26:08
--  未达到平仓条件自动平仓的问题
我在止盈、止损的平仓条件中都加入了LOG语句:
DEBUGFILE(\'D:\\NI.TXT\',\'持\'&numtostr(HOLDING,0)&\'手多仓,成本为:\'&numtostr(ENTERPRICE,0)&\',等待平仓时机。MAXPROFIT=\'&numtostr(MAXPROFIT,0)&\', 盈亏WIN1=\'&numtostr(WIN1,0)&\', 回落WIN2=\'&numtostr(WIN2,0)&\', SELLPRICE=\'&numtostr(SELLPRICE,0),0);
    
//多头初始浮亏 P1 止损
     IF WIN1<-P1 THEN
     BEGIN
         SELL(1,HOLDING,MARKET);
         DEBUGFILE(\'D:\\NI.TXT\',\'平多仓,原因1:亏损额\'&numtostr(WIN1,0)&\' < \'&numtostr(-P1,2)&\',OPENPROFIT=\'&numtostr(OPENPROFIT,0)&\',挂平仓价 \'&numtostr(CLOSE,0),0);
     END   

     //多头利润大于 P2 止盈
     IF WIN1>P2 THEN
     BEGIN
         SELL(1,HOLDING,MARKET);
         DEBUGFILE(\'D:\\NI.TXT\',\'平多仓,原因2:盈利额\'&numtostr(WIN1,0)&\' > \'&numtostr(P2,2)&\',OPENPROFIT=\'&numtostr(OPENPROFIT,0)&\'挂平仓价 \'&numtostr(CLOSE,0),0);
     END   
   
     //多头获利后回撤 P3 止盈
     IF CLOSE>ENTERPRICE+(P2/2) AND CLOSE<SELLPRICE THEN
     BEGIN
         SELL(1,HOLDING,MARKET);
         DEBUGFILE(\'D:\\NI.TXT\',\'平多仓,原因3:回撤比例超过\'&numtostr(P3,0)&\'%,超过预设回撤止盈价\'&numtostr(SELLPRICE,1)&\',OPENPROFIT=\'&numtostr(OPENPROFIT,2)&\',挂平仓价 \'&numtostr(CLOSE,2),0);
     END 

2015-08-05 23:17:21.570    持1手多仓,成本为:81030,等待平仓时机。MAXPROFIT=30, 盈亏WIN1=30, 回落WIN2=0, SELLPRICE=81024
2015-08-05 23:17:22.880    持1手多仓,成本为:81030,等待平仓时机。MAXPROFIT=30, 盈亏WIN1=30, 回落WIN2=0, SELLPRICE=81024
2015-08-05 23:17:23.161    持1手多仓,成本为:81030,等待平仓时机。MAXPROFIT=30, 盈亏WIN1=30, 回落WIN2=0, SELLPRICE=81024
2015-08-05 23:17:23.660    持1手多仓,成本为:81030,等待平仓时机。MAXPROFIT=50, 盈亏WIN1=50, 回落WIN2=0, SELLPRICE=81021
2015-08-05 23:17:24.128    没有持仓,等待开仓时机。1分钟DIFF:-25.01,1分钟DEA:-29.84,OPEN:81080.0,CLOSE:81080.0
2015-08-05 23:17:24.659    没有持仓,等待开仓时机。1分钟DIFF:-23.42,1分钟DEA:-29.52,OPEN:81080.0,CLOSE:81050.0

在实盘模拟交易时,看到开多后就直接平仓了,查看LOG就是以上记录,完全没有平仓理由,持仓就这样没有了。这个如何追查?会是什么原因?


--  作者:gzcoolfire
--  发布时间:2015/8/6 0:16:15
--  
2015-08-06 00:14:09.613    持1手空仓,成本为:80820.00,等待平仓时机。MAXPROFIT=40.00, 盈亏WIN1=10.00, 回落WIN2=30, SELLPRICE=80828
2015-08-06 00:14:12.094    持1手空仓,成本为:80820.00,等待平仓时机。MAXPROFIT=40.00, 盈亏WIN1=0.00, 回落WIN2=40, SELLPRICE=80828
2015-08-06 00:14:13.047    持1手空仓,成本为:80820.00,等待平仓时机。MAXPROFIT=40.00, 盈亏WIN1=0.00, 回落WIN2=40, SELLPRICE=80828
2015-08-06 00:14:13.663    持1手空仓,成本为:80820.00,等待平仓时机。MAXPROFIT=40.00, 盈亏WIN1=-10.00, 回落WIN2=50, SELLPRICE=80828
2015-08-06 00:14:14.591    持1手空仓,成本为:80820.00,等待平仓时机。MAXPROFIT=40.00, 盈亏WIN1=-10.00, 回落WIN2=50, SELLPRICE=80828
2015-08-06 00:14:15.303    没有持仓,等待开仓时机。1分钟DIFF:-10.70,1分钟DEA:-10.89,OPEN=80820.0,MA20=80833.5,CLOSE:80830.0
2015-08-06 00:14:15.720    没有持仓,等待开仓时机。1分钟DIFF:-9.90,1分钟DEA:-10.73,OPEN=80820.0,MA20=80834.0,CLOSE:80840.0
2015-08-06 00:14:16.262    没有持仓,等待开仓时机。1分钟DIFF:-9.90,1分钟DEA:-10.73,OPEN=80820.0,MA20=80834.0,CLOSE:80850.0
2015-08-06 00:14:18.293    没有持仓,等待开仓时机。1分钟DIFF:-9.90,1分钟DEA:-10.73,OPEN=80820.0,MA20=80834.0,CLOSE:80850.0
2015-08-06 00:14:18.686    没有持仓,等待开仓时机。1分钟DIFF:-10.70,1分钟DEA:-10.89,OPEN=80820.0,MA20=80833.5,CLOSE:80850.0
2015-08-06 00:14:19.276    没有持仓,等待开仓时机。1分钟DIFF:-10.70,1分钟DEA:-10.89,OPEN=80820.0,MA20=80833.5,CLOSE:80840.0

今晚多次出现,还没到止盈止损的条件卖出,持仓就没有了,不知原因。

--  作者:jinzhe
--  发布时间:2015/8/6 8:45:46
--  
看下单日志
--  作者:gzcoolfire
--  发布时间:2015/8/6 9:42:38
--  
原来是持仓同步自动帮我平的,这是为啥?
--  作者:gzcoolfire
--  发布时间:2015/8/6 9:44:28
--  
下单日志是有触发买入的:
2015-08-06 09:35:23.215    2015.08.06 09:35:18【图表】框架:Technic 触发下单 BUY 品种 IF09 下单K线 2015.08.06 09:35:01 公式:IF1509逼仓 窗格ID:0 代码行:40
2015-08-06 09:35:23.262    【图表】模型下单 1
2015-08-06 09:35:23.262    【图表】下单系数调整后 手数:1
2015-08-06 09:35:24.962    【图表】直接下单
2015-08-06 09:35:25.040    【图表】IF09 运行完毕
2015-08-06 09:35:25.040    【图表】IF09 运行完毕
2015-08-06 09:35:25.040    【图表】IF09 运行完毕
2015-08-06 09:35:25.040    【图表】IF09 运行完毕
2015-08-06 09:35:25.040    【图表】IF09 运行完毕
2015-08-06 09:35:25.040    【下单】IF09 价0.000000 量1 买卖0 类型1 开平0 账户603489 Formula 1
2015-08-06 09:35:36.491    【图表】IF09 运行完毕
2015-08-06 09:35:36.491    【指令】收到回报指令 ID = 1218130841
2015-08-06 09:35:36.506    【图表】IF09 运行完毕
2015-08-06 09:35:36.506    【图表】IF09 运行完毕
2015-08-06 09:35:36.506    【图表】IF09 运行完毕
2015-08-06 09:35:36.506    【图表】IF09 运行完毕
2015-08-06 09:35:36.522    【图表】IF09 运行完毕
2015-08-06 09:35:42.941    【图表】IF09 运行完毕
2015-08-06 09:35:42.941    【回报】603489 : IF1509 - 已报单 1 价格:0.0 开 买
2015-08-06 09:35:44.595    【图表】IF09 运行完毕
2015-08-06 09:35:44.595    【图表】IF09 运行完毕
2015-08-06 09:35:44.595    【图表】IF09 运行完毕
2015-08-06 09:35:44.595    【图表】IF09 运行完毕
2015-08-06 09:35:44.595    【图表】IF09 运行完毕
2015-08-06 09:35:44.595    【指令】收到回报指令 ID = 1218130841
2015-08-06 09:35:44.611    【指令】收到回报指令 ID = 1218130841

但看自己设置的log记录,程序目前又认为没有持仓,这个怎么解决?
2015-08-06 09:37:32.929    没有持仓,等待开仓时机。1分钟DIFF:-17.98,1分钟DEA:-24.78,OPEN:3623.6,CLOSE:3623.8
2015-08-06 09:37:34.879    没有持仓,等待开仓时机。1分钟DIFF:-18.01,1分钟DEA:-24.79,OPEN:3623.4,CLOSE:3623.4
2015-08-06 09:37:36.845    没有持仓,等待开仓时机。1分钟DIFF:-18.01,1分钟DEA:-24.79,OPEN:3623.4,CLOSE:3623.4
2015-08-06 09:37:38.803    没有持仓,等待开仓时机。1分钟DIFF:-17.98,1分钟DEA:-24.78,OPEN:3623.4,CLOSE:3623.8
2015-08-06 09:37:39.271    没有持仓,等待开仓时机。1分钟DIFF:-17.80,1分钟DEA:-24.75,OPEN:3624.4,CLOSE:3626.0

--  作者:jinzhe
--  发布时间:2015/8/6 9:46:49
--  

1.自动持仓是系统的设置,说明你选择了自动持仓同步

2.你代码调试出的结果是没有持仓,但是系统开仓,说明系统的持仓和你调试的持仓不一样,你用什么函数调试持仓的?


--  作者:gzcoolfire
--  发布时间:2015/8/6 9:48:09
--  
if holding=0 then 判断开仓条件,及开仓操作

if holding>0 then 多头平仓判断及操作

if holding<0 then 空头平仓判断及操作

--  作者:gzcoolfire
--  发布时间:2015/8/6 9:48:36
--  
这个对吗?还是应该用另外的函数进行判断?
--  作者:jinzhe
--  发布时间:2015/8/6 9:58:02
--  

我说的是调试,你调试用什么持仓函数的?


--  作者:gzcoolfire
--  发布时间:2015/8/6 10:02:36
--  
if HOLDING=0 THEN
DEBUGFILE(\'D:\\IF1509.TXT\',\'没有持仓,等待开仓时机。1分钟DIFF:\'&numtostr(DIFF,2)&\',1分钟DEA:\'&numtostr(DEA,2)&\',OPEN:\'&numtostr(OPEN,1)&\',CLOSE:\'&numtostr(CLOSE,1),0);
     
就是这样记录下来的。