以文本方式查看主题

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

--  作者:一代天骄
--  发布时间:2019/5/9 13:31:44
--  盈利到一定幅度主动止盈一半,
我的问题是有盈利到一定幅度先止盈一半,剩下的一半仓位由其他平仓条件来止盈,我家在在图标上,就显示我有一定盈利后止盈,另外一半仓位在怎么在主动止盈后第二跟k线也止盈了?
CURRENTPROFIT_D:=(CLOSE-AvGENTERPRICE)/AvGENTERPRICE;
CURRENTPROFIT_K:=(AvGENTERPRICE-CLOSE)/AvGENTERPRICE;
CD2:=CURRENTPROFIT_D>=0.01*Z1 AND HOLDING>0;
CD5:=CURRENTPROFIT_K>=0.01*Z1 AND HOLDING<0;
//一致性盈利
IF CD2=1 THEN 
   BEGIN
   SELL(1,HOLDING/2,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE;
   DRAWTEXT( 1,LOW ,"平多" );
END
IF CD5=1 THEN 
   BEGIN
   SELLSHORT(1,HOLDING/2,LIMIT,CLOSE+3*MINDIFF),IGNORECHECKPRICE;
   DRAWTEXT( 1,LOW ,"平空" );   
END

图片点击可在新窗口打开查看此主题相关图片如下:j$o3u(i}802xnn@0xzj(p.png
图片点击可在新窗口打开查看



--  作者:wenarm
--  发布时间:2019/5/9 13:43:08
--  

用全局变量标记记录。相当于做一个锁,第一次止盈后,将其置为1,启动第二部分仓位处理代码开空。下面是多头部分的处理。空头部分请参考后自行完成。

注:全局变量开关,多空必须分开否者容易造成条件紊乱。下面已经定义好了。

 

VARIABLE:sellflag=0,sellshortflag=0;
CURRENTPROFIT_D:=(CLOSE-AvGENTERPRICE)/AvGENTERPRICE;
CURRENTPROFIT_K:=(AvGENTERPRICE-CLOSE)/AvGENTERPRICE;
CD2:=CURRENTPROFIT_D>=0.01*Z1 AND HOLDING>0;
CD5:=CURRENTPROFIT_K>=0.01*Z1 AND HOLDING<0;
//一致性盈利
IF CD2=1 and sellflag=0 THEN
   BEGIN
   SELL(1,HOLDING/2,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE;
   DRAWTEXT( 1,LOW ,"平多" );
   sellflag:=1;
END

if ref(CD2,1)=1 and sellflag=1 THEN BEGIN
 sell(1,HOLDING,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE;
 sellflag:=0;//平仓完成后恢复初始值,供下次使用。
  
end


--  作者:一代天骄
--  发布时间:2019/5/9 13:55:51
--  
if ref(CD2,1)=1 and sellflag=1 THEN BEGIN
 sell(1,HOLDING,LIMIT,CLOSE-3*MINDIFF),IGNORECHECKPRICE;
 sellflag:=0;//平仓完成后恢复初始值,供下次使用。
  
end
这段代码是什么意思么有看懂,ref(CD2,1)=1 ?

--  作者:wenarm
--  发布时间:2019/5/9 13:59:41
--  

外一半仓位在怎么在主动止盈后第二跟k线也止盈.

你这个条件就是在第一个止盈触发后,下跟k上执行另一半的平仓吗?ref(cd2,1)不就是判断上根k是不是满足第一个止盈的条件。

另外,这个条件是你自己决定的,可以替换成任意一个平仓条件。只要保留sellflag开关就行。

 

当第一次止盈完成后,sellflag=1,停止第一部分指定的代码执行,防止再次触发。开始启用第二部止盈代码。就是红色部分的。

if  第二部分平仓条件  and sellflag=1 then begin

平仓语句;

sellflag:=0;

 

end

 

[此贴子已经被作者于2019/5/9 14:02:12编辑过]

--  作者:一代天骄
--  发布时间:2019/5/9 14:03:46
--  
你理解错了我的意思了,我的意思是一半仓位主动止盈,比如盈利2%止盈,另外一半仓位要利润奔跑,比如跌破20均线才止盈,不是要一半盈利2%止盈,另外一半在止盈后第二个k线止盈
--  作者:wenarm
--  发布时间:2019/5/9 14:10:12
--  
 第二部分条件请您自行尝试编写。这种条件判断没有难度。

套这个结构就行。

if  你自己要实现的条件  and sellflag=1 then begin

平仓语句;

sellflag:=0;

 

end