欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → 求编写一策略

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有8023人关注过本帖树形打印复制链接

主题:求编写一策略

帅哥哟,离线,有人找我吗?
pepsi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
求编写一策略  发帖心情 Post By:2011/9/14 8:58:40 [显示全部帖子]

用到指标:boll
开多条件:
最新价格向上穿越前一根K线的boll上轨;
平多条件:
1.最新价格向下穿越前一根K线的boll中轨;
2.从开仓的那根K线开始算起,所到过最高点往下跌幅超过N1(将N1设置为一个变量)。
3.当浮动盈利点数最大达到N3个点,启动保本止损策略,价格回到开仓成本价既平仓。
开空条件:
最新价格向下穿越前一根K线的boll下轨;
平空条件:
1.最新价格向上穿越前一根K线的boll中轨;
2.从开仓的那根K线开始算起,所到过最低点往上涨幅超过N2(将N2设置为一个变量)。
3.当浮动盈利点数最大达到N3个点,启动保本止损策略,价格回到开仓成本价既平仓。

 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/14 10:22:48 [显示全部帖子]

非常感谢您的及时回复。

但是此策略在测试的时候不正常,所有开仓单,在开仓以后马上平仓了,结果是永远亏了手续费。

我认为您在这一点写的不对:

//2.从开仓的那根K线开始算起,所到过最高点往下跌幅超过N1(将N1设置为一个变量)。
if hhv(c,BARPOS-kcp)-c>N1 then
begin
sell(holding>0,holding,market);
kcp:=DRAWNULL;
end
“BARPOS”是指在从有K线数据以来到当前K线的周期数,而我们要的是从开仓的那根K线算起,到当前K线的周期数。

我认为该这么写:

exl1=:(hhv(h,enterbars)-enterprice)>n1;  //从开仓的那根K线开始算起,所到过最高点往下跌幅超过N1(将N1设置为一个变量)。


 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/14 11:14:12 [显示全部帖子]

恩。
[此贴子已经被作者于2011-9-14 11:14:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/14 11:35:39 [显示全部帖子]

我自己也写了个,未达到效果,帮忙看看啊,谢谢!

 

input:m(26,5,200,1),n(2,0.1,10,0.1),n1(50,0,100,1);
MID :=MA(CLOSE,M);
UPPER:=MID + N*STD(CLOSE,M);
LOWER:=MID - N*STD(CLOSE,M);
enlong:=cross(c,ref(upper,1));
//开多条件,最新价上穿前一根K线的BOLL上轨
exlong1:=cross(ref(mid,1),c);
//平多条件1,最新价下穿前一根K线的BOLL中轨
enshort:=cross(ref(lower,1),c);
//开空条件,最新价下穿前一根K线的boll下轨
exshort:=cross(c,ref(mid,1));
//平空条件1,最新价上穿前一根K线的BOLL中轨
exlong2:=(hhv(h,enterbars)-enterprice)>n1 and cross(enterprice,c);
//平多条件2,最大浮动盈利达N1点,并且价格回到开仓价位
exshort2:=(enterprice-llv(l,enterbars))>n1 and cross(c,enterprice);
//平空条件2,最大浮动盈利达N1点,并且价格回到开仓价位
exl2:(hhv(h,enterbars)-enterprice)>n1 and cross(enterprice,c),linethick0;
exs2:(enterprice-llv(l,enterbars))>n1 and cross(c,enterprice),linethick0;
if exlong1 or exlong2 then
sell(holding=1,0,market);

if exshort or exshort2 then
sellshort(holding=-1,0,market);

if enlong then
buy(holding=0,1,market);

if enshort then
buyshort(holding=0,1,market);

[此贴子已经被作者于2011-9-14 11:38:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/14 12:16:39 [显示全部帖子]

图片点击可在新窗口打开查看

从图中可以看出,十字光标所在的位置是将空单平仓的操作,实际上此处并不满足我们的平仓条件,从左上角看出是exs2的值为1。

不理解在此位置exs2的条件怎么会成立呢?求解

 


 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/16 10:58:02 [显示全部帖子]

exs2:(enterprice-llv(l,enterbars))>n1 and cross(c,enterprice),linethick0;

是两个条件语句用and连接起来的,要两个条件同时满足exs2的返回值才是一,所以,exs2是不是不能再分解了。

我认为and连接的不能分解,OR连接的可以分解,对吗


 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/16 14:06:22 [显示全部帖子]

A:CON1 and CON2;----//CON1和CON2两个都为1,结果才为1.

那么这个A中包含的CON1和CON2就没有必要拆分了,这两个条件已经成为一个整体。


 回到顶部
帅哥哟,离线,有人找我吗?
pepsi
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:96 积分:489 威望:0 精华:0 注册:2011/9/5 19:34:19
  发帖心情 Post By:2011/9/16 22:36:03 [显示全部帖子]

好的

 回到顶部