以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=185042)

--  作者:弗兰克尔
--  发布时间:2021/4/6 10:52:50
--  [求助]请问如何实现平空后立即开多,平多后立即开空
目前交易这一段的代码是这样的。

TC是固定的交易手数;QD是开多条件;QK是开空条件。

TC:=4;
BUY(QD AND abs(holding)<1,tc,thisclose),ignorecheckprice;
SELL(QK,0,thisclose),ignorecheckprice;
BUYSHORT(QK AND abs(holding)<1,tc,thisclose),ignorecheckprice;
SELLSHORT(QD,0,thisclose),ignorecheckprice;

大部分时候能成功,但是有些时候要隔几个K线,不知道怎么回事。
例如下图:

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20210406105407.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2021/4/6 10:54:35编辑过]

--  作者:FireScript
--  发布时间:2021/4/6 11:02:44
--  
BUY(QD AND abs(holding)<1,tc,thisclose),ignorecheckprice;
SELL(QK,0,thisclose),ignorecheckprice;
BUYSHORT(QK AND abs(holding)<1,tc,thisclose),ignorecheckprice;
SELLSHORT(QD,0,thisclose),ignorecheckprice;
代码顺序问题。如果你当前是空仓,但是QD满足。那么这个buy当前是肯定不会触发的。它要等后面平空了。才会执行开多。

如下调下代码顺序

SELLSHORT(QD,0,thisclose),ignorecheckprice;
BUY(QD AND abs(holding)<1,tc,thisclose),ignorecheckprice;
SELL(QK,0,thisclose),ignorecheckprice;
BUYSHORT(QK AND abs(holding)<1,tc,thisclose),ignorecheckprice;


--  作者:弗兰克尔
--  发布时间:2021/4/6 11:09:11
--  
 明白了,谢谢版主