以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  老师帮忙实现一个平仓思路  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=169611)

--  作者:2457146251
--  发布时间:2019/4/28 0:59:47
--  老师帮忙实现一个平仓思路

  ma1(close,30) , ma2 ( close, 60 )

 ma1 下穿 ma2 的时候,做空, 现在持 10 手 空仓, 当利润大于100点 的时候,, 平 5 手 出来,  剩下 5 手,需要等到 ma1 上穿 ma2 的时候再平出来!

怎么可以实现这个思路


 思路2 :  进场 条件同上,   利润大于100点,平仓 5 手出来, 剩下 5 手, 增加一个按利润回撤 50 % 作为平仓的触发 信号, 也就是说,利润回撤 50 %    或 出现 ma1 上穿 ma2 的时候, 就平 最后 5 手出来


麻烦老师帮忙编写一下,谢谢

--  作者:wenarm
--  发布时间:2019/4/28 9:16:25
--  

ma1:ma(close,30);
ma2:ma(close,60);

if CROSS(ma2,ma1) then begin
 BUYSHORT(1,10,MARKET); 
end

IF AvGENTERPRICE-C>100*MINDIFF THEN BEGIN
 SELLSHORT(1,HOLDING/2,MARKET);
END

KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.5;

if CROSS(ma1,ma2)  or KTYDZS=1 then  begin
 SELLSHORT(KTYDZS,HOLDING,MARKET);  
end

 

[此贴子已经被作者于2019/4/28 9:16:37编辑过]

--  作者:2457146251
--  发布时间:2019/4/28 21:24:26
--  
老师,,可以严谨一些么,这个代码,平完第一次之后,下个K接着继续平掉第二次,,,等不到 第二步了

我之前试过也是这个问题,才发帖问能不能有好的办法

--  作者:wenarm
--  发布时间:2019/4/28 22:49:43
--  
用全局变量把两个条件的之间做一个互斥处理。
VARIABLE:flag=0;
ma1:ma(close,30);
ma2:ma(close,60);
if CROSS(ma2,ma1) then begin
 BUYSHORT(1,10,MARKET);
end
IF AvGENTERPRICE-C>100*MINDIFF and flag=0 THEN BEGIN
 SELLSHORT(1,HOLDING/2,MARKET);
 flag:=1;
END
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.5 ;
if (CROSS(ma1,ma2)  or KTYDZS=1) and flag=1 then  begin
 SELLSHORT(KTYDZS,HOLDING,MARKET); 
 flag:=0;
end