Как правильно высчитать индикатор RSI?

Доброго времени суток. Я пытаюсь высчитать показательно Относительной силы в Трейдинге. Используя формулу из википедии. Получаю значение, сравниваю его в Trading View и данные разнятся, не могу понять по какой причине.

Делаю так:
<?
function SendPost ($url) {
    
    $ch = curl_init();
    $useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36";

    $arrSetHeaders = array(
        "User-Agent: $useragent",
        'Content-Type: application/json',
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language: en-US,en;q=0.5',
        'Accept-Encoding: deflate, br',
        'Connection: keep-alive',
        'cache-control: max-age=0',
    );        
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, $arrSetHeaders);    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 45);

    $result = curl_exec($ch);
    curl_close($ch);        
    
    return $result;
}

$gain = []; $loss = [];
$sum_gain = 0; $sum_loss = 0;
  
    $qr = "https://api.binance.com/api/v1/klines?symbol=ADAUSDT&interval=1h&limit=366";
    $zapros = SendPost($qr);
    $zapros = json_decode($zapros, true);
           
        for ($i = 0; $i < count($zapros)-1; $i++) {
            if ($zapros[$i][4] > $zapros[$i+1][4]) {
                $loss[] = $zapros[$i][4] - $zapros[$i+1][4] . "<br>";
            } else {
                $gain[] = $zapros[$i+1][4] - $zapros[$i][4] . "<br>";
            }
        }
        
        $sum_gain = array_sum($gain) / 14;
        $sum_loss = array_sum($loss) / 14;
        $rs = $sum_gain / $sum_loss;
        
        echo $rsi = round(100 - (100 / (1 + $rs)),2);
?>
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 1
toxa82
@toxa82
У вас расчеты вообще не похожи на те формулы на какие вы ссылаетесь, нужно использовать скользящие средние, указывать период расчета. В итоге у вас должно быть 366-14 расчетных результатов, а не одно что вы насчитали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы