Jump to content

RSI für Bitcoins auf Kraken Berechnen?


Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.