开拓者期货期权程序化系统交易论坛

标题: 求助!自己改了个RSI指数代码,画的图几乎是水平的线?? [打印本页]

作者: taobao94    时间: 2018-12-1 17:40:33     标题: 求助!自己改了个RSI指数代码,画的图几乎是水平的线??

Params    // 常规变量定值
        Numeric Length1(14) ;                                                    //  长期RSI周期为14天 1为长期
        Numeric Length2(9);                                                      //  短期RSI周期为9天  2为短期
        Numeric OverBought(70) ;                                                 //  超买

Vars      //  序列变量可变
        NumericSeries NetChgAvg1( 0 );                                         
        NumericSeries TotChgAvg1( 0 );
        Numeric SF1( 0 );
        NumericSeries Change( 0 );       
        NumericSeries ChgRatio1( 0 ) ;
        NumericSeries ma;
        NumericSeries RSIValue1;
       
        NumericSeries NetChgAvg2( 0 );
        NumericSeries TotChgAvg2( 0 );
        Numeric SF2( 0 );
        NumericSeries ChgRatio2( 0 ) ;
        NumericSeries RSIValue2;
       
Begin
//计算RSIValue1的值  
//公式 RSI=100×n天内收盘价上涨数之和的平均值÷(n天内收盘价上涨数之和的平均值+n天内收盘价下跌数之和的平均值)=100×n天内收盘价上涨数之和的平均值÷(n天内 每日收盘价与前一天的变化的绝对值 的平均值)
        If(CurrentBar <= Length1 - 1)        //当所索引的K线数值位(第n根)小于周期14-1时
        {
                NetChgAvg1 = Average(Summation(IIF(Close - Close[1]>0 , Close - Close[1], 0), Length1),Length1);//分子: 14天内 满足收盘价较前一天收盘价上涨的值加总后 的平均值
                TotChgAvg1 = Average( Abs( Close - Close[1] ), Length1) ;                                      //分母:14天内 每日收盘价与前一天的变化的绝对值 的平均值
        }
       
        Else                               //当所索引的K线数值位大于周期14-1时
        {
                SF1 = 1/Length1;                                                    //  *SF1相当于除以周期14
                Change = Close - Close[1] ;                                         //计算14天内 每日收盘价与较前一天的变化

                NetChgAvg1 = NetChgAvg1[1] + SF1 * ( Change - NetChgAvg1[1]);       //分子:
            //NetChgAvg1初始值为0,赋值 NetChgAvg1 = 前一天的NetChgAvg1 + [(两日中收盘价的变化 与 前一天的NetChgAvg1 的差)除以周期]
               
                TotChgAvg1 = TotChgAvg1[1] + SF1* ( Abs( Change ) - TotChgAvg1[1]);        //分母:
            //TotChgAvg1初始值为0,赋值 TotChgAvg1 = 前一天的TotChgAvg1 + [(两日中收盘价的变化 与 前一天的TotChgAvg1 的差)除以周期]
        }
       
        If( TotChgAvg1 <> 0 )                                                //14天内收盘价变化的绝对值的均值不为零,即分母不为零
        {
                ChgRatio1 = NetChgAvg1 / TotChgAvg1;                           
        }
        Else
        {
                ChgRatio1 = 0 ;
        }       
        RSIValue1 = 100* ChgRatio1;                                         //计算长期RSI的值
        PlotNumeric("RSI1",RSIValue1);
       
作者: taobao94    时间: 2018-12-1 18:17:25

哭了 有老师可以教教我吗??稍微一点点也OK)谢谢谢谢
作者: zr1624357    时间: 2018-12-1 21:33:27

是不是没放在子图
作者: taobao94    时间: 2018-12-1 23:17:44

zr1624357 发表于 2018-12-1 21:33
是不是没放在子图

设置了耶  RSI还出现了负值???是不是我逻辑错了
作者: taobao94    时间: 2018-12-1 23:19:07

[attach]37344[/attach]
作者: zhoutao2270    时间: 2018-12-1 23:26:17

我想知道t5怎么帮助文档打开里面什么都没有的,忽悠人的
作者: taobao94    时间: 2018-12-1 23:43:01

zhoutao2270 发表于 2018-12-1 23:26
我想知道t5怎么帮助文档打开里面什么都没有的,忽悠人的

啥 什么是t5
作者: zhoutao2270    时间: 2018-12-1 23:51:52

TB  V5的啊 打错字母的了

作者: zhoutao2270    时间: 2018-12-1 23:57:41

找到解决方法的了  
作者: taobao94    时间: 2018-12-2 00:01:36

zhoutao2270 发表于 2018-12-1 23:57
找到解决方法的了

恭喜你鸭 我再挣扎会儿
作者: zhoutao2270    时间: 2018-12-2 00:37:47

今天周末的 估计你的问题要等到 周一才能解决的了,我也刚学TB的,帮不上忙的  。你是师兄的
作者: zr1624357    时间: 2018-12-2 21:23:21

NetChgAvg1 = Average(Summation(IIF(Close - Close[1]>0 , Close - Close[1], 0), Length1),Length1);
感觉这句话有毛病
作者: zr1624357    时间: 2018-12-2 21:27:23

好像不需要summation
也不知我理解的对不对




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2