以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  策略编写求助区  (http://weistock.com/bbs/list.asp?boardid=11)
----  分批止盈策略求助  (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=9053)

--  作者:miluse
--  发布时间:2011/11/20 20:01:37
--  分批止盈策略求助

 用于3分钟周期

开多条件:9点30之后,14点30之前,收盘价>前30分钟最高价,开多3手

开空条件:9点30之后,14点30之前,收盘价<前30分钟最低价,开空3手

 

多头止损:开仓价-10,平仓3手;

空头止损:开仓价+10,平仓3手;

 

多头止盈:1、开仓价+20后,平仓1手。同时启动移动止盈,当开仓后的最高价回撤20点平仓2手

              2、如果没有碰到移动止盈位,价格继续上行,在开仓价+40后,再平仓1手,移动止盈位还是开仓后最高价回撤20点平仓

              3、当价格达到开仓价+60后,平掉最后1手

              4、14点50分后平掉所有仓位

 

空头止盈:1、开仓价-20后,平仓1手。同时启动移动止盈,当开仓后的最低价回撤20点后平仓2手

              2、如果没有碰到移动止盈位,价格继续下行,在开仓价-40后,再平仓1手,移动止盈位还是开仓后最低价回撤20点平仓

              3、当价格达到开仓价-60后,平掉最后1手

              4、14点50分后平掉所有仓位

分批止盈的不太会编,请帮我写下,谢谢

[此贴子已经被作者于2011-11-20 20:02:40编辑过]

--  作者:阿火
--  发布时间:2011/11/20 21:17:10
--  
开仓后,盈利60个点止盈了。之后呢?如果依然是突破30周期高点做多,那么,基本上平仓后K线走完又会满足开仓条件了
--  作者:miluse
--  发布时间:2011/11/20 21:19:06
--  

刚刚没写清楚,只有第一次满足条件的时候才开仓

一天只开一次仓

 

[此贴子已经被作者于2011-11-20 21:21:06编辑过]

--  作者:阿火
--  发布时间:2011/11/21 10:35:33
--  

variable:hl=0,kcj=0,nums=0;
entertime:=time>93000 and time<143000;
exittime:=time>=145000;
hi30:=ref(hhv(h,30),1);
lo30:=ref(llv(l,30),1);

if exittime then begin
 sell(1,0,limitr,o);
 sellshort(1,0,limitr,o);
 nums:=0;
end

if holding=0 and nums=0 and ref(c>hi30,1) then begin
 buy(1,3,limitr,o);
 kcj:=o;
 zs:=o-10;
 hl:=h;//记录开多后的最高点
 nums:=1;
end

if holding=0 and nums=0 and ref(c<lo30,1) then begin
 buyshort(1,3,limitr,o);
 kcj:=o;
 zs:=o+10;
 hl:=l;//记录开空后的最低点
 nums:=1;
end

if holding>0 and l<zs then sell(1,0,limitr,zs-2*mindiff); 
if holding<0 and h>zs then sellshort(1,0,limitr,zs+2*mindiff);

if holding>0 and h>=hl then begin
 hl:=h;
 if hl>kcj+20 then begin
  zs:=hl-20;
  sell(holding=3,1,limitr,kcj+20);
  sell(holding=2 and hl>kcj+40,1,limitr,kcj+40);
  sell(holding=1 and hl>kcj+60,1,limitr,kcj+60);
 end
end

if holding<0 and l<=hl then begin
 hl:=l;
 if hl<kcj-20 then begin
  zs:=hl+20;
  sellshort(holding=-3,1,limitr,kcj-20);
  sellshort(holding=-2 and hl<kcj-40,1,limitr,kcj-40);
  sellshort(holding=-1 and hl<kcj-60,1,limitr,kcj-60);
 end
end


--  作者:miluse
--  发布时间:2011/11/21 10:52:47
--  

谢谢火哥。。。

原先一直在考虑全局变量来做分批止盈的

原来还可以用这个思路

给力啊!!


--  作者:小兵过河
--  发布时间:2011/12/12 16:13:44
--  

火哥。。。

 

if holding=0 and nums=0 and ref(c<lo30,1) then begin
 buyshort(1,3,limitr,o);
 kcj:=o;
 zs:=o+10;
 hl:=l;//记录开空后的最低点
 nums:=1;
end

这一段中的 

kcj:=o;
zs:=o+10;是记录开仓价和止损价吗?

好像o不是一个固定价

可不可以用ENTERPRICE,请指点!


--  作者:阿火
--  发布时间:2011/12/13 14:28:17
--  
也可以了,enterprice  运行速度慢
--  作者:蔡宛宏
--  发布时间:2011/12/19 16:34:54
--  
谢谢各位 学习了很多
--  作者:zyglys
--  发布时间:2013/6/14 0:03:58
--  
火哥nums=0;是吗意思啊

--  作者:gordon83
--  发布时间:2013/7/20 19:26:05
--  
学习了,谢谢