以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=182243) |
-- 作者:我心飞翔 -- 发布时间:2020/9/18 22:53:33 -- 图表程序化如何实现自动止盈? 如题,某个1分钟K线图表程序化,当满足条件A后的每根K线都开仓,可能连开14、5手,想实现每开成功1单后立即挂+2点买出,这个自动止盈程序该如何写? |
-- 作者:FireScript -- 发布时间:2020/9/21 9:05:12 -- 这个思路嘛在图表上应该实现不了的。主要是图表上无法保证在成交后,触发平仓操作。可能你开仓的还没成交,平仓的信号也触发了。 大概只有后台才能实现这个思路。
|
-- 作者:我心飞翔 -- 发布时间:2020/9/21 12:11:52 -- 那后台又该如何写?我有后台版的账号 |
-- 作者:FireScript -- 发布时间:2020/9/21 13:27:10 -- "挂+2点买出" 这个2点是基于什么,成交的价格?还是持仓均价? |
-- 作者:我心飞翔 -- 发布时间:2020/9/21 13:38:03 -- 成交价+2跳 |
-- 作者:我心飞翔 -- 发布时间:2020/9/21 13:48:37 -- 就是成交后马上挂成交价+2跳卖出。 |
-- 作者:FireScript -- 发布时间:2020/9/21 13:54:48 -- 可以使用ORDERQUEUE函数吧。函数说明如下: 所有报单放入队列中,按次序委托下单,成交一个委托下一个. 该控制符适合所有下单指令 例如: SELLSHORT(CROSS(C,MA(C,5),1,MARKET),ORDERQUEUE; BUY(CROSS(C,MA(C,5),1,MARKET),ORDERQUEUE; 若没有加ORDERQUEUE,触发条件的时候会同时发出平多、开空指令。 加上ORDERQUEUE后,可简单的描述为:触发条件时,软件会先发出平仓指令,待收到平仓指令回报后,再发出开多指令。 详细的运行机制为:SELLSHORT、BUY单子形成了下单队列,SELLSHORT在前,BUY在后,当SELLSHORT单碰到有几下情况时,才会执行BUY委托单。(1)收到成交回报;(2)下单失败;(3)撤单(一旦队列下单不成交撤单后,再次委托会将委托追单排到最后)。 但是也有缺陷,如果有长时间的未成交单就不太好处理了。无论是开还是平。如果一直不成交,后面的开平仓单子可能也阻塞了不会发出。 具体代码倒是没那么复杂: if A then begin tBUY(1,1,MKT),ORDERQUEUE; tSELL(1,1,LMT,TENTERPRICE+2*MINDIFF),ORDERQUEUE;//TENTERPRICE取最近一次的成交价 end 你这个思路看着简单其实有很多特殊情况会出现。建议搭配追撤单的功能使用。如果开仓或者平仓不成交,到时间直接撤单,否则会导致后面的开/平都发不出来。
[此贴子已经被作者于2020/9/21 13:55:34编辑过]
|
-- 作者:我心飞翔 -- 发布时间:2020/9/21 22:09:10 -- 谢谢!我试试。 |