以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
谢谢!我试试。