以文本方式查看主题

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

--  作者:Yangygzy
--  发布时间:2018/4/13 13:31:55
--  如何编程实现oco条件单
你好,我想实现要么突破5日高点买,或者回调到RSI<40转向的时候买,一个指令执行后取消另外一个,这个该怎么写呢?
--  作者:FireScript
--  发布时间:2018/4/13 13:38:14
--  
 “突破5日高点买,或者回调到RSI<40转向” 你意思是这2个条件只执行其中一个? 不是很清楚你说的一个指令执行后取消另一个是要具体如何操作。

--  作者:Yangygzy
--  发布时间:2018/4/13 13:43:22
--  回复:(FireScript)?“突破5日高点买,或者回调...
这么讲吧,5日高点2000,如果再没有触发回踩买入条件的情况下突破2000,我买入,然后不再回调买,如果在突破2000前先打到回调买条件,我直接回调买,然后取消突破买的条件,这种逻辑该怎么写呢?
[此贴子已经被作者于2018/4/13 13:43:43编辑过]

--  作者:FireScript
--  发布时间:2018/4/13 14:05:45
--  
 你这种其实用holding=0限制下就行了呗。

buycond:a or b;
if buycond then buy(holding=0,1,market);

这样A或者B任意一个触发下单,另一个就无法再次重新触发。

--  作者:Yangygzy
--  发布时间:2018/4/13 14:15:07
--  
谢谢啊,触发后我想追踪是哪种情况触发,以便采用不同的处理方式,这个该怎么弄呢?
以下是引用FireScript在2018/4/13 14:05:45的发言:
 你这种其实用holding=0限制下就行了呗。

buycond:a or b;
if buycond then buy(holding=0,1,market);

这样A或者B任意一个触发下单,另一个就无法再次重新触发。


--  作者:FireScript
--  发布时间:2018/4/13 14:39:21
--  
 VARIABLE:m:=0;
buycond:a or b;

if buycond then
begin
m:=if(a,1,2);//是a返回1 是b返回2
buy(holding=0,1,market);
end
//根据m值判断最近一次开仓是a还是b
//后面如果平仓m需要重置为0