我试安装过php trader插件https://secure.php.net/manual/zh/ref.trader.php是用ta-lib写的,这个函数计算RSI MACD都没有问题但是计算STOCHRSI KDJ就会与平台不一样(虚拟货币 币安)现在想找一个这样的插件函数,不知道应该去哪里找?感谢,有用的话微信红包打赏,感谢

解决方案 »

  1.   

    求一个PHP程序的STOCHRSI公式或插件,都可以
    主要是用于虚拟货币的
    对标币安的STOCHRSI指标
    谢谢有效的将微信打偿红包:88.88元,感谢
    我尝试过:
    安装php trader插件,这个插件是用ta-lib写的,通过php trader插件trader_rsi函数可以计算出RSI与平台的数据一致
    但是如果直接用php trader插件的函数trader_stochrsi计算stochrsi的数据就与平台不一样然后我上网查找公式
    LC := REF(CLOSE,1); //REF(C,1) 上一周期的收盘价
                            RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100;
                            %K:     MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100;  LLV(l,60)表示:检索60天内的最低价,可适应于检索任何股票
                            %D:MA(%K,P2);                        LC := REF(CLOSE,1);
                            RSI:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1) *100;
                            STOCHRSI:MA(RSI-LLV(RSI,M),P1)/MA(HHV(RSI,M)-LLV(RSI,M),P1)*100;
    通过插件计算出与平台数据一样的RSI
    再套入上面的公式计算stochrsi
    结果与平台数据不一样,不追求与平台数据100%一致,至少金叉死叉时间点要一致 我的PHP代码如下
    StochRSI($arr['close'],14,9,3,3);RSI 14
    stoch 9
    K 3
    D 3取得9个RSI,计算最大最小分别存为数组3组计算的值用来计算一次K值 
    3个K值 再计算一个D值 
    public function StochRSI(p1 = 14,n = 3,$m = 3) {
                            //计算RSI
                            $rsi =  array();
                            if (count(p1) {
                                    data,$p1);
                            }
                            
                            rsi);//重新以0为递增索引
                            //print_r($rsi);
                            //%K:        MA(RSI-LLV(RSI,14),3)/MA(HHV(RSI,14)-LLV(RSI,14),3) * 100
                            //%D:        MA(%K,3)
                            //print_r($rsi);
                            //循环计算stochrsi
                            
                            rsi);
                            if (p2 + $n + 1)) {                                rsi_count - (n +1)
                                    for (icount; rsi_count; $i++) { 
                                            rsi[$i];
                                            if (count(p2) {
                                                    tmp);
                                                    tmp);
                                                    rsi[min;//i] = last rsi
                                                    max - $min;
                                                    if (count(n) {
                                                            ma1,$n));
                                                            ma2,$n));
                                                            ma3 / $ma4 *100,6);
                                                            k;
                                                            //echo "K:".$k."\n";
                                                            //print_r($stochrsi);
                                                            array_shift($ma1);//保持相应的记录数量
                                                            array_shift($ma2);//保持相应的记录数量
                                                            if (count(m) {
                                                                    stochrsi,$m));
                                                                    //echo "D:".$d."\n";
                                                                    return [d];
                                                            }
                                                    }
                                                    array_shift($tmp);//保持相应的记录数量
                                            }
                                    }
                            }
                                            }感谢:
    1、最低需求:计算STOCHRSI的函数插件
    2、最高需求:有K线指标的各种计算插件
    谢谢