以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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
|
-- 作者:wenarm -- 发布时间:2019/5/9 13:43:08 -- 用全局变量标记记录。相当于做一个锁,第一次止盈后,将其置为1,启动第二部分仓位处理代码开空。下面是多头部分的处理。空头部分请参考后自行完成。 注:全局变量开关,多空必须分开否者容易造成条件紊乱。下面已经定义好了。
VARIABLE:sellflag=0,sellshortflag=0; if ref(CD2,1)=1 and sellflag=1 THEN BEGIN |
-- 作者:一代天骄 -- 发布时间: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 |