以文本方式查看主题

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

--  作者:GUAN666
--  发布时间:2018/6/30 21:31:23
--  交易问题
请问老师,同一个账号两个以上模型运行有个别模型有多次下单功能(模型每次默认下单一手)。多次下单的模型出现平仓信号是否有代码可以做到只平仓该模型下的所有单,平仓语手数不用0代替。避免把其他模型的持仓单也平了。
--  作者:wenarm
--  发布时间:2018/7/1 14:03:29
--  
用HOLIDNG作为手数,其返回值是当前图表中的虚拟持仓数量
--  作者:GUAN666
--  发布时间:2018/7/2 14:29:35
--  
修改没有变化,麻烦老师看看,帮忙修改一下
//中间变量
TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),M);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
PDM:= SUM(IF(HD>0 AND HD>LD,HD,0),M);
MDM:= SUM(IF(LD>0 AND LD>HD,LD,0),M);
PDI:= PDM*100/TR1;
MDI:= MDM*100/TR1;
HOLIDNG:=ss;

//交易条件
开多平空条件:=CROSS(PDI,MDI);//开多平空条件
开空平多条件:=CROSS(MDI,PDI);//开空平多条件

//交易系统
平空:SELLSHORT(开多平空条件,HOLIDNG,MARKET);
平多:SELL(开空平多条件,HOLIDNG,MARKET);
开多:BUY(开多平空条件,1,MARKET);
开空:BUYSHORT(开空平多条件,1,MARKET);

资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;

--  作者:FireScript
--  发布时间:2018/7/2 14:38:20
--  
 代码是没有问题的。
使用holding之后这个模型平仓会按照虚拟持仓量去平仓。你可以结合交易日志中的记录再观察一下。

--  作者:GUAN666
--  发布时间:2018/7/2 14:42:20
--  
我看了一下,图表上显示的持仓两手,出现平仓信号后实际平仓一手,还有一手没有平仓,
--  作者:FireScript
--  发布时间:2018/7/2 14:54:05
--  
 这个要看下日志怎么记录的了。 虚拟持仓要平2手,但是实际账号上未必有足够仓位,然后可能就平1手了。一般这种日志上会有详细记录的。如果这部分日志还在你最好贴一下,给你分析下。

--  作者:wenarm
--  发布时间:2018/7/2 14:54:35
--  

1.检查你图表中的holding是不是闪了?

2.贴出你的交易日志,并指出具体的时间点。看交易日志中委托时多少手

 


--  作者:GUAN666
--  发布时间:2018/7/2 14:56:45
--  
好的
--  作者:GUAN666
--  发布时间:2018/7/2 22:32:38
--  
2018-07-02 22:27:51.436    【图表】框架:C 触发下单 SELLSHORT 品种 NI00 下单K线 2018.07.03 02:28:00 公式:FDMI 窗格ID:Window3 代码行:21
2018-07-02 22:27:51.436    【图表】模型下单 1
2018-07-02 22:27:51.452    【图表】下单系数调整后 手数:1
2018-07-02 22:27:51.452    【图表】实际持仓 -3
2018-07-02 22:27:51.467    【图表】直接下单
2018-07-02 22:27:51.467    【图表】NI00 运行完毕
2018-07-02 22:27:51.467    【下单】NI09 价0.000000 量1 买卖0 类型1 开平1 账户621644 Formula 1
2018-07-02 22:27:51.483    【下单】已提交,订单ID :-984338043
2018-07-02 22:27:51.514    【指令】收到回报指令 ID = -984338043
2018-07-02 22:27:51.530    【回报】621644 : NI09 - 已报单 1 价格:115510 平 买
2018-07-02 22:27:51.530    【指令】收到回报指令 ID = -984338043
2018-07-02 22:27:51.530    【指令】收到Order回报指令 ID = -984338043 Status = 3
2018-07-02 22:27:51.530    【指令】收到回报指令 ID = -984338043
2018-07-02 22:27:51.545    【指令】收到成交回报指令 ORDERID = -984338043
2018-07-02 22:27:51.545    【指令】平仓计量 EBuy:0 ESell:0
2018-07-02 22:27:51.545    【回报】621644 : ni1809 - 已成交 1 价格:115480 平 买
2018-07-02 22:27:51.545    【回报】621644 : ni1809 - 全部成交 1
2018-07-02 22:28:51.427    【图表】RB00 运行完毕
2018-07-02 22:28:51.427    【图表】NI00 运行完毕

模型有三手空单, 平仓信号出现只平仓了一手

--  作者:wenarm
--  发布时间:2018/7/3 7:35:44
--  
你当前的图表holding的值就是1手,平仓只平当前图表的手数,自然就只有1手,你所说的3手是实际账户的。图表机制是所有的计算都是根据历史k线信号计算得到。