设为首页收藏本站

 找回密码
 注册
查看: 2540|回复: 3
打印 上一主题 下一主题

求高手帮助 [复制链接]

Rank: 1

精华
0
UID
222437
积分
23
帖子
18
主题
5
阅读权限
10
注册时间
2015-11-3
最后登录
2016-1-5
跳转到指定楼层
1#
发表于 2015-12-4 11:01:16 |只看该作者 |倒序浏览
想写个15分钟调用日瀑布线和1小时RSI的代码,在跨周期上老是解决不了,求高手帮忙写一个。万分感谢!

期市新手

TB官方客服

Rank: 1

精华
0
UID
223934
积分
18
帖子
18
主题
0
阅读权限
10
注册时间
2015-11-26
最后登录
2016-5-12
2#
发表于 2015-12-4 14:08:21 |只看该作者
你好,针对你需要的两个跨周期指标,我尝试写了一下。如果有什么问题可以跟帖沟通。
日瀑布线采用百度百科的公式,RSI用的是TB的公式。
跨周期方式,跨周期瀑布线使用TB自带的closed函数,跨周期rsi使用论坛追涨杀跌的帖子中mtbar系列函数。瀑布线最大的均线是96天,使用时注意BAR的数据要足够。对于历史数据太少,瀑布线无法计算的情形,没做异常处理。使用者可以自行处理。
源代码如下:
// 简称: mtpbrsi
// 名称:
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
/*rsi的跨周期计算,直接采用TB蔡老师的跨周期函数。
/* 瀑布线计算公式:来自百度百科
1.PBX1=(收盘价的M1日指数移动平均+收盘价的M1*2日简单移动平均+收盘价的M1*4日简单移动平均)/3
2.PBX2=(收盘价的M2日指数移动平均+收盘价的M2*2日简单移动平均+收盘价的M2*4日简单移动平均)/3
3.PBX3=(收盘价的M3日指数移动平均+收盘价的M3*2日简单移动平均+收盘价的M3*4日简单移动平均)/3
4.PBX4=(收盘价的M4日指数移动平均+收盘价的M4*2日简单移动平均+收盘价的M4*4日简单移动平均)/3
5.PBX5=(收盘价的M5日指数移动平均+收盘价的M5*2日简单移动平均+收盘价的M5*4日简单移动平均)/3
6.PBX6=(收盘价的M6日指数移动平均+收盘价的M6*2日简单移动平均+收盘价的M6*4日简单移动平均)/3
7.参数M1=4,M2=6,M3=9,M4=13,M5=18,M6=24
*/
Vars
        Numeric mtrsi_1hour_ref;
        NumericSeries mtrsi_1hour;
        NumericSeries pbx1;
        NumericSeries pbx2;
        NumericSeries pbx3;
        NumericSeries pbx4;
        NumericSeries pbx5;
        NumericSeries pbx6;
        Numeric sum;
        Numeric ma4;
        Numeric ma6;
        Numeric ma9;
        Numeric ma13;
        Numeric ma18;
        Numeric ma24;
        Numeric ma8;
        Numeric ma16;
        Numeric ma12;
        Numeric ma36;
        Numeric ma26;
        Numeric ma52;
        Numeric ma72;
        Numeric ma48;
        Numeric ma96;
        numeric i;
Begin
        //使用蔡老师的跨周期指标直接计算1小时的RSI
        mtrsi(60,1,14,mtrsi_1hour_ref);
        mtrsi_1hour=mtrsi_1hour_ref;
        Commentary("mtrsi_1hour"+Text(mtrsi_1hour));
        //因为夜盘原因,均线计算采用CloseD计算
        //根据瀑布线公式要计算 4 6 9 13 18 24 以及 8 16 12 24 18 36 26 52 36 72 48 96 参数的均线
        //注意:如果图表时间不够96天,是不可能计算出正确的均线,也不可能计算出正确的瀑布线。这里没有给出异常的处理。使用者请根据自己的需求,增加相应的异常处理代码。
        for i=1 to 96
                {
                sum=sum+CloseD(i);
                if(i==4)
                        ma4=sum/4;
                if(i==6)
                        ma6=sum/6;
                if(i==9)
                        ma9=sum/9;
                if(i==13)
                        ma13=sum/13;
                if(i==18)
                        ma18=sum/18;
                if(i==12)
                        ma12=sum/12;
                if(i==24)
                        ma24=sum/24;
                if(i==8)
                        ma8=sum/8;
                if(i==16)
                        ma16=sum/16;
                if(i==36)
                        ma36=sum/36;
                if(i==26)
                        ma26=sum/26;
                if(i==52)
                        ma52=sum/52;
                if(i==72)
                        ma72=sum/72;
                if(i==48)
                        ma48=sum/48;
                if(i==96)
                        ma96=sum/96;
                }
        pbx1=(ma4+ma8+ma16)/3;
        pbx2=(ma6+ma12+ma24)/3;
        pbx3=(ma9+ma18+ma36)/3;
        pbx4=(ma13+ma26+ma52)/3;
        pbx5=(ma18+ma36+ma72)/3;
        pbx6=(ma24+ma48+ma96)/3;
       
        if (CloseD(96)<>InvalidNumeric)
                {
                PlotNumeric("pbx1",pbx1);
                PlotNumeric("pbx2",pbx2);
                PlotNumeric("pbx3",pbx3);
                PlotNumeric("pbx4",pbx4);
                PlotNumeric("pbx5",pbx5);
                PlotNumeric("pbx6",pbx6);
                }
End


//------------------------------------------------------------------------
// 编译版本        GS2010.12.08
// 用户版本        2015/12/04 12:10:39
// 版权所有        xhqh10102076
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

期市新手

TB官方客服

Rank: 1

精华
0
UID
223934
积分
18
帖子
18
主题
0
阅读权限
10
注册时间
2015-11-26
最后登录
2016-5-12
3#
发表于 2015-12-4 14:12:44 |只看该作者
附:瀑布线的TB代码,便于对照跨周期数据的准确性。计算公式采用百度百科的公式。

//------------------------------------------------------------------------
// 简称: pbx
// 名称: 瀑布线
// 类别: 公式应用
// 类型: 用户应用
// 输出:
//------------------------------------------------------------------------
Vars
        NumericSeries pbx1;
        NumericSeries pbx2;
        NumericSeries pbx3;
        NumericSeries pbx4;
        NumericSeries pbx5;
        NumericSeries pbx6;
Begin
        pbx1=(Average(close[1],4)+Average(close[1],8)+Average(close[1],16))/3;
        pbx2=(Average(close[1],6)+Average(close[1],12)+Average(close[1],24))/3;
        pbx3=(Average(close[1],9)+Average(close[1],18)+Average(close[1],36))/3;
        pbx4=(Average(close[1],13)+Average(close[1],26)+Average(close[1],52))/3;
        pbx5=(Average(close[1],18)+Average(close[1],36)+Average(close[1],72))/3;
        pbx6=(Average(close[1],24)+Average(close[1],48)+Average(close[1],96))/3;
       
        PlotNumeric("pbx1",pbx1);
        PlotNumeric("pbx2",pbx2);
        PlotNumeric("pbx3",pbx3);
        PlotNumeric("pbx4",pbx4);
        PlotNumeric("pbx5",pbx5);
        PlotNumeric("pbx6",pbx6);
       
        Commentary("closed96"+Text(CloseD(96)));
end


//------------------------------------------------------------------------
// 编译版本        GS2010.12.08
// 用户版本        2015/12/04 13:35:27
// 版权所有        xhqh10102076
// 更改声明        TradeBlazer Software保留对TradeBlazer平台
//                        每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

使用道具 举报

Rank: 2

精华
0
UID
251844
积分
115
帖子
39
主题
19
阅读权限
30
注册时间
2017-5-31
最后登录
2018-2-7
4#
发表于 2017-10-25 10:15:56 |只看该作者
本帖最后由 marialeng 于 2017-10-25 14:23 编辑
tbheyihao 发表于 2015-12-4 14:12
附:瀑布线的TB代码,便于对照跨周期数据的准确性。计算公式采用百度百科的公式。

//-------------------- ...


纠正一下:应该是
    pbx1=(XAverage(close,4)+Average(close,8)+Average(close,16))/3;
    pbx2=(XAverage(close,6)+Average(close,12)+Average(close,24))/3;
    pbx3=(XAverage(close,9)+Average(close,18)+Average(close,36))/3;
    pbx4=(XAverage(close,13)+Average(close,26)+Average(close,52))/3;
    pbx5=(XAverage(close,18)+Average(close,36)+Average(close,72))/3;
    pbx6=(XAverage(close,24)+Average(close,48)+Average(close,96))/3;

        PlotNumeric("pbx1",pbx1);
        PlotNumeric("pbx2",pbx2);
        PlotNumeric("pbx3",pbx3);
        PlotNumeric("pbx4",pbx4);
        PlotNumeric("pbx5",pbx5);
        PlotNumeric("pbx6",pbx6);

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-24 19:53

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部