以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请教老师一个问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=163216) |
-- 作者:jmufhr -- 发布时间:2018/5/4 21:40:38 -- 请教老师一个问题 我思考的模型平仓的条件是:当开仓后一旦出现某一信号(比如开仓后出现一阳加三阴)后以限价平仓。在写的过程中用ref函数只能实现一阳加三阴信号出现时发出委托单。但实际情况存在因为限价的原因无法成交的情况,但后面行情可能不会再出现一阳加三阴的信号,导致无法继续发出委托指令, 问:有没有办法让一阳加三阴的信号在开仓后一旦出现,在平仓之前一直有效,从而可以持续发出委托?
|
-- 作者:wenarm -- 发布时间:2018/5/7 8:22:11 -- 1.你说的连续平仓,指的是每根k上都平仓一次,还是只在一根k上持续委托。 |
-- 作者:jmufhr -- 发布时间:2018/5/7 12:17:29 -- 就是今天平仓不成功 明天继续发出委托 |
-- 作者:FireScript -- 发布时间:2018/5/7 13:39:24 -- 你是做后台程序化还是图表程序化。在图表上是做不到的。后台上可以尝试下,但是如果有加仓或者多个平仓语句的话,处理起来可能比较麻烦。 |
-- 作者:jmufhr -- 发布时间:2018/5/7 13:56:24 -- 图表的 ,我觉得如果上述不可行,我可以通过统计信号出现的数量开实现, 具体代码是 n1:=5;//5周期均线 n2:=30;//30周期均线 ma5:ma(c,n1); ma30:ma(c,n2); sz:=ref(c,2)<ref(ma5,2) and all(c>=ma5,2); al2:=ref(all(c<ma5,2),1); NN:=COUNT(本次开空单到今天(平仓之前)sz的个数) if ma30>ma5 and al2 and holding=0 then begin 开空:buyshort(1,7, limitr,ma5-15); end if NN>=1 and holding<0 then begin 平空: sellshort(1,holding, limitr,ma5+15); End NN:=COUNT(本次开空单到今天(平仓之前)sz的个数)里面的要怎么写呢 |
-- 作者:FireScript -- 发布时间:2018/5/7 14:14:03 -- 图表上的问题在于,你不知道图表信号触发的下单到底成交了没。 这是图表的机制问题。因为我尽管知道历史上有信号A的出现,但是我却不知道信号A触发的下单成交了没。所以用统计的话也是无法实现的。 后台的思路是在收盘前判断为未成交委托单数量,然后可以用全局变量记录下来。明日开盘后,选择合适的时间重新入场。 |