以文本方式查看主题

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

--  作者:jzt666
--  发布时间:2019/3/27 9:52:32
--  限制交易次数
5均线 10均线 20均线多头排列,做多,盈利100条止盈平仓,多头排列继续成立,但是不二次开仓,
满足一个条件只开一次仓,只有多头排列走完(5均线,20均线死叉)再次多头排列继续上面的动作
请老师写写

--  作者:FireScript
--  发布时间:2019/3/27 9:59:15
--  
需要明确以下几点:
 1.你的多头排列如何定义的? ma5>ma10 and ma10>ma20 是这样吗?
2.平仓条件是不再符合多头排列就平仓对吧。
3.不加仓,平仓之后符合多头排列重新开仓。

--  作者:jzt666
--  发布时间:2019/3/27 10:24:31
--  
MA5>MA10 AND MA10>MA20多头排列

平仓是主动止盈(OPENPROFIT>=100*MINDIFF)平仓

盈利100点止盈,多头排列趋势还在,不再次开仓

--  作者:FireScript
--  发布时间:2019/3/27 10:31:58
--  
 “多头排列趋势还在,不再次开仓” 后面补的这句我没能理解这个是怎样的一个逻辑。
比如说你现在符合条件止盈平仓了,如果后续又满足了多头排列的条件,就不再开仓了?如果这样的话,你这个策略岂不是只能开一次仓了吗?

--  作者:jzt666
--  发布时间:2019/3/27 11:19:38
--  
道指15分钟K线图,多头排列趋势,会经常出现
--  作者:FireScript
--  发布时间:2019/3/27 11:24:33
--  
所以你的意思是这样的,止盈的时候可能条件上还是满足多头排列的,但是这时候止盈平仓之后不再开仓,等到多头排列结束下次再次满足多头排列的时候再开仓是吧。
--  作者:jzt666
--  发布时间:2019/3/27 11:28:34
--  
是这个意思


--  作者:FireScript
--  发布时间:2019/3/27 14:08:37
--  
 VARIABLE:lt:=0;
ma5:ma(c,5);
ma10:ma(c,10);
ma20:ma(c,20);

cd:ma5>ma10 and ma10>ma20;

if cd and lt=0  then buy(holding=0,1,market);//满足开仓条件,且lt是初始值0

if c-ENTERPRICE>=100*MINDIFF and holding>0 then
begin
lt:=if(cd,1,0);   //如果平仓时候依然满足条件cd lt赋值为1,用以标记当时的状态。
sell(holding>0,holding,market);
end

lt:=if(lt=1 and cd,1,0);//平仓后如果cd不满足了,lt重置为初始状态


用全局变量控制下就行了。我测试了下,是可以的。你看下是否满足你的需求。