以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  怎么样能控制当第5单收盘价大于白线时不开单?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173061)

--  作者:qq代人发帖
--  发布时间:2019/11/12 15:06:39
--  怎么样能控制当第5单收盘价大于白线时不开单?

请教:怎么样能控制当第5单收盘价大于白线时不开单(条件是C5>白线),且平掉前面开的4单,语句描述。如下图,谢谢

也就是讲这个变量关掉,另一个变量打开。谢谢


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

--  作者:FireScript
--  发布时间:2019/11/12 15:40:33
--  
用全局变量控制吧。每次加仓时候 全局变量递增,当第五次满足加仓条件的时候 判断下是否C5>白线  如果是那么全平即可。

具体实现大概类似这样的过程

VARIABLE:ct:=0;

if 加仓条件 and holding>0 and ct<=4 then
begin
if ct=4 and C5>白线 then //第五次时候判断下 是否满足C5>白线
begin
sell(holding>0,holding,market);     
end

buy(holding>0,1,market);//这里holding>0是必须加上的,以防止第五次平仓后又开仓
ct:=ct+1;

if holding=0 then ct:=0;    //如果平仓了那么重置全局变量
end

注意:其他地方的平仓条件触发的平仓也需要做一次全局变量的重置。


--  作者:陈明
--  发布时间:2019/11/12 16:00:32
--  
谢谢,我导入测试一下。
--  作者:陈明
--  发布时间:2019/11/12 16:01:25
--  
谢谢老师
--  作者:FireScript
--  发布时间:2019/11/12 16:03:13
--  
 别直接导入进去,我这个不是也不能写成模块直接用的。都是需要理解思路之后修改自己代码才行的。