Husker Geschrieben 24. Juli 2019 Teilen Geschrieben 24. Juli 2019 Hallo zusammen, seit fast einer Woche versuche ich nun den RSI Indikator für Bitcoins auf Kraken zu berechnen und bekomme es einfach nicht hin. Da ich hier leider keine Bilder einfügen kann, wird die Erklärung etwas schwer, aber ich hoffe ich bekomme es hin .. Also die Ausgangssituation ist: RSI(14) bei einer Auflösung von 1 min. # id, time_stamp, date_time, close, close_balance, gain, loss, AG, AL, RS, RSI '150189', '1563962160', '2019-07-24 11:56:00', '8775.60', '5.7000', '5.7000', '0.0000', '1.457142857', '0.178571428', '8.160', '89.083' '150187', '1563962100', '2019-07-24 11:55:00', '8769.90', '8.5000', '8.5000', '0.0000', '1.050000000', '0.192857142', '5.444', '84.482' '150185', '1563962040', '2019-07-24 11:54:00', '8761.40', '0.1000', '0.1000', '0.0000', '0.442857142', '0.221428571', '2.000', '66.667' '150183', '1563961980', '2019-07-24 11:53:00', '8761.30', '0.1000', '0.1000', '0.0000', '0.450000000', '0.221428571', '2.032', '67.018' '150181', '1563961920', '2019-07-24 11:52:00', '8761.20', '-0.5000', '0.0000', '0.5000', '0.492857142', '0.221428571', '2.226', '69.002' '150179', '1563961860', '2019-07-24 11:51:00', '8761.70', '1.2000', '1.2000', '0.0000', '0.492857142', '0.242857142', '2.029', '66.986' '150177', '1563961800', '2019-07-24 11:50:00', '8760.50', '0.1000', '0.1000', '0.0000', '0.407142857', '0.721428571', '0.564', '36.061' '150175', '1563961740', '2019-07-24 11:49:00', '8760.40', '4.5000', '4.5000', '0.0000', '0.400000000', '1.078571428', '0.371', '27.061' '150173', '1563961680', '2019-07-24 11:48:00', '8755.90', '0.0000', '0.0000', '0.0000', '0.078571428', '1.092857142', '0.072', '6.716' '150171', '1563961620', '2019-07-24 11:47:00', '8755.90', '-0.1000', '0.0000', '0.1000', '0.078571428', '1.092857142', '0.072', '6.716' '150169', '1563961560', '2019-07-24 11:46:00', '8756.00', '0.2000', '0.2000', '0.0000', '0.392857142', '1.085714285', '0.362', '26.579' '150167', '1563961500', '2019-07-24 11:45:00', '8755.80', '-0.1000', '0.0000', '0.1000', '0.378571428', '1.100000000', '0.344', '25.595' '150165', '1563961440', '2019-07-24 11:44:00', '8755.90', '-0.1000', '0.0000', '0.1000', '0.378571428', '1.100000000', '0.344', '25.595' '150163', '1563961380', '2019-07-24 11:43:00', '8756.00', '-1.7000', '0.0000', '1.7000', '0.671428571', '1.092857142', '0.614', '38.042' '150161', '1563961320', '2019-07-24 11:42:00', '8757.70', '-0.2000', '0.0000', '0.2000', '1.442857142', '0.971428571', '1.485', '59.759' '150159', '1563961260', '2019-07-24 11:41:00', '8757.90', '-0.4000', '0.0000', '0.4000', '1.485714285', '0.957142857', '1.552', '60.815' '150157', '1563961200', '2019-07-24 11:40:00', '8758.30', '0.2000', '0.2000', '0.0000', '1.621428571', '0.928571428', '1.746', '63.583' '150155', '1563961140', '2019-07-24 11:39:00', '8758.10', '0.7000', '0.7000', '0.0000', '1.607142857', '1.414285714', '1.136', '53.184' '150154', '1563961080', '2019-07-24 11:38:00', '8757.40', '-0.8000', '0.0000', '0.8000', '1.557142857', '1.492857142', '1.043', '51.052' "Close" bekomme ich von der Kraken API, also behaupte ich mal die Daten Stimmen. gain, loss, AG, AL, RS und RSI sind meine Berechnungen Kraken hat für 11:56 einen RSI Wert von 70,82 Berechnet in diesem beispiel nutze ich also die 14 werte id = 150189 -> 150161 Was und wie habe ich gerechnet Die Differenz zwischen 2 Closewerten überprüfe ich auf <> 0 ist der wert Positive kommt er zu gain, andernfalls zu loss, der jeweils andere wert ist 0 jetzt summiere ich gain und loss auf, und teil es durch 14 das ergebnis kommt in AG und AL also: AG = SUM(gain) / 14 AL = SUM(loss) / 14 RS = AG / AL RSI = (100 - (100 / (1+RS))) Wie ihr sehen könnt komme ich auf 89,083 und nicht 70,82 also was zur Hölle mache ich Falsch. Ich habe jetzt schon wirklich alles versucht, verschiedene Formeln usw. aber ich komme nicht mal annähernd auf ein richtiges Ergebnis. Könnt ihr mir vielleicht einen Tipp geben wo mein Fehler liegt ? Tekkies unter euch: MySQL Code zu meinen Berechnungen: SELECT id, time_stamp, date_time, close, close_balance, gain, loss, @AG:=( SELECT IF((SUM(gain) / intervall) IS NULL, 0, (SUM(gain) / intervall)) FROM ohlc_data WHERE id <= oclc.id AND TIMESTAMPDIFF(MINUTE, date_time, oclc.date_time) < intervall ORDER BY date_time DESC ) as AG, @AL:=( SELECT IF((SUM(loss) / intervall) IS NULL, 0, (SUM(loss) / intervall) ) FROM ohlc_data WHERE id <= oclc.id AND TIMESTAMPDIFF(MINUTE, date_time, oclc.date_time) < intervall ORDER BY date_time DESC ) as AL, @RS:=ROUND((@AG / @AL),3) as RS, ROUND((100-(100 / (1 + @RS))), 3) as RSI FROM ohlc_data as oclc ORDER BY date_time DESC; Über ein wenig Unterstützung würde ich mich sehr freuen Grüße Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 28. Juli 2019 Teilen Geschrieben 28. Juli 2019 On 7/24/2019 at 12:12 PM, Husker said: RS = AG / AL RSI = (100 - (100 / (1+RS))) Das könntest du auf jeden Fall vereinfachen zu RSI = 100*(AG/(AG+AL)) Löst aber leider dein Problem mit den unterschiedlichen Werten nicht. Ich habe es jetzt mal manuell nachgerechnet, deine 89,083 für 11:56 sind richtig, insofern scheint dein SQL-Statement auch richtig zu sein. Der Fehler muss wohl an anderer Stelle liegen. Bloss was? Kann es sein, dass dir die Kraken-Oberfläche MESZ anzeigt, die Kraken-API dir aber die Zeiten in UTC angibt? Sprich, du berechnest den RSI von 11:56 UTC und vergleichst den mit dem Kraken-RSI von 11:56 MESZ? Oder umgekehrt? Der Timestamp 1563962160 deiner obersten Zeile ist 9:56h UTC und somit 11:56 MESZ. Vielleicht zeigt dir die Kraken-Oberfläche UTC-Uhrzeiten an? Sorry, hätte dir gerne besser geholfen ... Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden