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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → [求助]TB的R-Breaker策略请改为金字塔

   

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


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

主题:[求助]TB的R-Breaker策略请改为金字塔

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


加好友 发短信
等级:新手上路 帖子:80 积分:277 威望:0 精华:0 注册:2011/2/14 21:50:41
[求助]TB的R-Breaker策略请改为金字塔  发帖心情 Post By:2011/11/10 21:52:32 [只看该作者]

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

[此贴子已经被作者于2011-11-10 22:21:37编辑过]

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


加好友 发短信
等级:新手上路 帖子:80 积分:277 威望:0 精华:0 注册:2011/2/14 21:50:41
  发帖心情 Post By:2011/11/10 22:18:47 [只看该作者]

//------------------------------------------------------------------------
// 简称: R_Breaker

Params
Numeric notbef(9.00);
Numeric notaft(14.55);
Numeric f1(0.35);
Numeric f2(0.07);
Numeric f3(0.25);
Numeric reverse(1.00);
Numeric rangemin(0.2);
Numeric xdiv(3);

Vars
NumericSeries ssetup(0);
NumericSeries bsetup(0);
NumericSeries senter(0);
NumericSeries benter(0);
NumericSeries bbreak(0);
NumericSeries sbreak(0);
NumericSeries ltoday(0);
NumericSeries hitoday(9999);
NumericSeries startnow(0);
NumericSeries div(0);
BoolSeries rfilter(false);
Numeric i_reverse;
Numeric i_rangemin;
Numeric i_vB;
Numeric i_vS;

Begin
i_reverse = reverse*(OpenD(0)/100);
i_rangemin = rangemin*(OpenD(0)/100);
if(BarStatus==0)
{
        startnow=0;
        div=max(xdiv,1);
}

if(Date != Date[1])
{
        SetGlobalVar(0,0);
        SetGlobalVar(1,0);
        startnow=startnow+1;
        ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);
        senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];
        benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];
        bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);
        bbreak=ssetup+f3*(ssetup-bsetup);
        sbreak=bsetup-f3*(ssetup-bsetup);

        hitoday=High;
        ltoday=Low;

        rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;
}

if(High>hitoday)
{
        hitoday=High;
}
if(Low<ltoday)
{
        ltoday=Low;
}
if(Time*100>=notbef and Time*100<notaft and startnow>=2 and rfilter)
{

        if(Time != GetGlobalVar(1) and GetGlobalVar(1) != 0)
        {
                SetGlobalVar(1,10000);
        }
        if(hitoday>=ssetup and marketposition>-1 and GetGlobalVar(1)<1)
        {
                If(Low<=(senter+(hitoday-ssetup)/div))
                {
                        SellShort(1,senter+(hitoday-ssetup)/div);
                        SetGlobalVar(1,Time);
                        Return;
                }
        }
        if(ltoday<=bsetup and marketposition<1  and GetGlobalVar(1)<1)
        {
                If(High>=(benter-(bsetup-ltoday)/div))
                {
                        Buy(1,benter-(bsetup-ltoday)/div);
                        SetGlobalVar(1,Time);
                        Return;
                }
        }

        if(marketposition==-1)
        {
                SetGlobalVar(0,1);
                if(High-EntryPrice>=i_reverse)
                {
                        BuyToCover(1,entryprice+i_reverse);
                        Return;
                }
        }
        if(marketposition==1)
        {
                SetGlobalVar(0,1);
                if(EntryPrice-Low>=i_reverse)
                {
                        Sell(1,entryprice-i_reverse);
                        Return;
                }
        }

        if(marketposition==0)
        {
                if(High>=bbreak and GetGlobalVar(0) == 0)
                {
                        Buy(1,bbreak);
                        Return;
                }
        }
        if(marketposition==0)
        {
                if(low<=sbreak  and GetGlobalVar(0) == 0)
                {
                        SellShort(1,sbreak);
                        Return;
                }
        }

}

if(Time*100>=notaft and Time<0.1600)
{

        if(marketposition==-1)
        {
                BuyToCover(1,Open);
        }
        if(marketposition==1)
        {
                Sell(1,Open);
        }

}
End

 


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


加好友 发短信
等级:新手上路 帖子:80 积分:277 威望:0 精华:0 注册:2011/2/14 21:50:41
  发帖心情 Post By:2011/11/10 22:23:36 [只看该作者]

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/11/11 9:14:16 [只看该作者]

请楼主把该代码写成语言描述一下,便于工作人员帮您改写.



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信 量化投资
等级:论坛游民 帖子:148 积分:653 威望:0 精华:0 注册:2010/9/27 16:08:27
  发帖心情 Post By:2011/11/11 10:34:45 [只看该作者]

帮忙翻译一下, 大致应该是我理解的这样。

 

中轨上顶部区间:ssetup:=昨日最高+0.35*(昨天收盘-昨天最低);

中轨上区间:senter:=((1+0.07)/2*(昨最高+昨最低)-0.07*昨天最低;

中轨下区间:benter:=((1+0.07)/2*(昨最高+昨最低)-0.07*昨天最高;

中轨下顶部区间:bsetup:=昨最低-0.35*(昨最高-昨收盘);

上轨:bbreak:=(ssetup+0.25*(ssetup-bsetup);

下轨:sbreak:=bsetup-0.25*(ssetup-bsetup);

 

当价格直接突破上轨,开多。 否则, 当今日最高价大于中轨上区间,并且小于上轨运行,价格如果下穿中轨上区间后,开空。

 

当价格直接突破下轨,开空。 否则, 当今日最低价小于中轨下区间,并且大于下轨运行,价格如果上穿中轨下区间后,开多。


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


加好友 发短信 量化投资
等级:论坛游民 帖子:148 积分:653 威望:0 精华:0 注册:2010/9/27 16:08:27
  发帖心情 Post By:2011/11/11 11:06:34 [只看该作者]

重新改了下,对于tb具体开仓手法记录的描述我不太明白。

 

中轨上顶部区间:ssetup:=昨日最高+0.35*(昨天收盘-昨天最低);

中轨上区间:senter+(昨最高-中轨上顶部区间)/3  //  senter:=((1+0.07)/2*(昨最高+昨最低)-0.07*昨天最低;

中轨下区间:benter-(中轨下顶部区间-昨最低)/3   // benter:=((1+0.07)/2*(昨最高+昨最低)-0.07*昨天最高;

中轨下顶部区间:bsetup:=昨最低-0.35*(昨最高-昨收盘);

上轨:bbreak:=(ssetup+0.25*(ssetup-bsetup);

下轨:sbreak:=bsetup-0.25*(ssetup-bsetup);

 

当价格直接突破上轨,开多。 否则, 当今日最高价大于中轨上区间,并且小于上轨运行,价格如果下穿中轨上区间后,开空。

 

当价格直接突破下轨,开空。 否则, 当今日最低价小于中轨下区间,并且大于下轨运行,价格如果上穿中轨下区间后,开多。

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

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/11/11 11:07:46 [只看该作者]

感谢楼上TONYBIG,如果思路是这样,请楼主确认一下


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:80 积分:277 威望:0 精华:0 注册:2011/2/14 21:50:41
  发帖心情 Post By:2011/11/11 12:32:31 [只看该作者]

 

R-Breaker交易策略

根据盘中价格走势,同时采取趋势追踪和反转策略。图中有颜色背景的区域可以视为观察区,当盘中日内最高价>Ssetup AND H<Bbreak 后出现回落,且跌破参考Senter的阻力线,采取反转策略,即在S1点开仓做空;如果盘中价格一路突破Bbreak的阻力线时,则采取趋势追踪策略,即在B2点开仓做多。类似地,B1点反转做多,S2点顺势做空。

[此贴子已经被作者于2011-11-11 12:46:57编辑过]

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


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2011/11/11 14:21:29 [只看该作者]

请确认以下几个关键数值是什么?可参考6楼解释的

        ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);
        senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];
        benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];
        bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);
        bbreak=ssetup+f3*(ssetup-bsetup);
        sbreak=bsetup-f3*(ssetup-bsetup);

 

如果能象6楼那样的格式,把本代码的一一逻辑解释确认了,就更好了.

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


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2011/11/11 15:18:37 [只看该作者]

n:=barslast(date<>ref(date,1));
zg:valuewhen(date<>ref(date,1),ref(hhv(h,n+1),1));//昨高
zd:valuewhen(date<>ref(date,1),ref(llv(l,n+1),1));//昨低
zs:valuewhen(date<>ref(date,1),ref(c,1));//昨收
jg:hhv(h,n+1);//今高
jd:llv(l,n+1);//今低
ssetup:=zg+0.35*(zs-zd);//中轨上顶部区间
senter:=(1.07/2)*(zg+zd)-0.07*zd;
benter:=(1.07/2)*(zg+zd)-0.07*zg;

zgsqj:=senter+(zg-ssetup)/3;//中轨上区间
zgxqj:=benter-(ssetup-zd)/3;//中轨下区间

bsetup:=zd-0.35*(zg-zs);
bbreak:=(ssetup+0.25*(ssetup-bsetup));//上轨
sbreak:=bsetup-0.25*(ssetup-bsetup);//下轨

if cross( c,bbreak ) then buy(holding=0,1,thisclose);

if jg>zgsqj and jg<bbreak and cross(zgsqj,c) then begin
 sell(holding>0,0,thisclose);
 buyshort(holding=0,1,thisclose);
end

if cross(c,sbreak) then buyshort(holding=0,1,thisclose);


if jd<zgxqj and c>sbreak and cross(c,zgxqj) then begin
 sellshort(holding<0,0,thisclose);
 buy(holding=0,1,thisclose);
end

 

按照6楼的意思大致写了下

[此贴子已经被作者于2011-11-11 15:18:57编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
总数 13 1 2 下一页