ホーム > 仮想通貨取引所のAPI解説 > 【永久保存】仮想通貨FXでRSI、MACD、ストキャスティクス値を取得するコピペOKのPythonプログラム

【永久保存】仮想通貨FXでRSI、MACD、ストキャスティクス値を取得するコピペOKのPythonプログラム

今回は、仮想通貨FXでRSI、MACD、ストキャスティクス(stochastics)値を取得するPythonサンプルプログラム(ソース)を公開します。 これらの値を取得することで、自動売買プログラムを作る幅が広がります。 これらの値を計算するのに最も便利なのは、「TA-LIB」です。まず、こちらからTa-Libをダウンロードしてください。ダウンロードするファイルは,以下の通りで、私が使用している「TA_Lib-0.4.18-cp37-cp37m-win_amd64.whl」のリンクを貼っておきます。

(例)
Python 3.9,Windows 64bitなら「TA_Lib‑0.4.19‑cp39‑cp39‑win_amd64.whl」
Python 3.9,Windows 32bitなら「TA_Lib‑0.4.19‑cp39‑cp39‑win32.whl」
Python 3.8,Windows 64bitなら「TA_Lib‑0.4.19‑cp38‑cp38‑win_amd64.whl」
Python 3.8,Windows 32bitなら「TA_Lib‑0.4.19‑cp38‑cp38‑win32.whl」

ダウンロードしたら最後に,whlファイルを保存したディレクトリに移動し,以下を実行することでTA-Libをインストールできます。ファイル名はあなたの環境にあったダウンロードしたファイルを指定してください。また、サンプルプログラムでnumpy、requests、jsonを使用しますのでインストールしていない場合はインストールしてください。

pip install TA_Lib-0.4.18-cp37-cp37m-win_amd64.whl
pip install numpy
pip install requests
pip install json
それでは、いよいよ、RSI、MACD、stochastics値を取得するプログラムを書いていきます。仮想通貨のBTC FXで自動売買をする場合、流動性やPythonプログラムに関する情報量の観点から「Binance」が最も適していています。まだ口座を作っていない方は、手数料が安くなる私の紹介コードから「Binanceに登録」してくださいね。自動売買で数をこなすとなると手数料の数パーセントの違いも致命的になります。なお、Pythonで自動ではなく手動で仮想通貨のFXをやるのであれば、「FXGT」がスワップフリーなので最もおススメです。

API KEYさえ設定すれば、そのままコピペで動くはずですので、是非動かしてみてください。初めてデータが取れた時は感動しますよ!!是非Binance FuturesのRSI、MACD、ストキャスティクス値とも比較してみてください。多少異なることもありますが、ほぼ同じ値になっていることを確認済みです。

import talib
import numpy as np
import requests
import json

API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'

headers = {
    'X-MBX-APIKEY': API_KEY
}

#priodには期間を指定します。1m、5m、15m、30m、1h、4hなどを指定します。
priod = "1m"
  
get_cnt = 1500
price_priod = [0] * (get_cnt - 1)
price_priod_high = [0] * (get_cnt - 1)
price_priod_low = [0] * (get_cnt - 1)

url = 'https://fapi.binance.com/fapi/v1/klines'

params = {
           'symbol': 'BTCUSDT',
           'interval': priod,
           'limit': get_cnt
}

r = requests.get(url, headers=headers, params=params)
if r.status_code == 200:
         market_prices_priod = json.loads(r.text)
    
    
ii = 0
for j in range((get_cnt- 1)):
        price_priod[ii] = float(market_prices_priod[j][4])  
        price_priod_high[ii] = float(market_prices_priod[j][2])  
        price_priod_low[ii] = float(market_prices_priod[j][3])      
        #price_priod[0]が現在
        ii = ii + 1
    
price = np.array(price_priod)
high = np.array(price_priod_high)
low = np.array(price_priod_low)
    
##データを確認する
#print(price)
    
# 単純移動平均線を計算する
#ema = talib.EMA(price)
#print(ema)
   
# MACDを計算する
macd, macdsignal, macdhist = talib.MACD(price,fastperiod=12, slowperiod=26, signalperiod=9)
# RSIを計算する
rsi = talib.RSI(price, timeperiod=14)
# stochastics RSI値を計算する
fastk, fastd = talib.STOCHRSI(price, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0)

# 現在のMACD
macd_now = float(str(macd[1498:1499])[1:-1])
# 1つ前のMACD(Priodが5分なら5分前)
macd_now_1 = float(str(macd[1497:1498])[1:-1])
# 2つ前のMACD(Priodが5分なら10分前)
macd_now_2 = float(str(macd[1496:1497])[1:-1])

macdsignal_now = float(str(macdsignal[1498:1499])[1:-1])
macdsignal_now_1 = float(str(macdsignal[1497:1498])[1:-1])
macdsignal_now_2 = float(str(macdsignal[1496:1497])[1:-1])

macdhist_now = float(str(macdhist[1498:1499])[1:-1])
macdhist_now_1 = float(str(macdhist[1497:1498])[1:-1])
macdhist_now_2 = float(str(macdhist[1496:1497])[1:-1])

rsi_now = float(str(rsi[1498:1499])[1:-1])
rsi_now_1 = float(str(rsi[1497:1498])[1:-1])
rsi_now_2 = float(str(rsi[1496:1497])[1:-1])        

fastk_now = float(str(fastk[1498:1499])[1:-1])
fastk_now_1 = float(str(fastk[1497:1498])[1:-1])
fastk_now_2 = float(str(fastk[1496:1497])[1:-1])

fastd_now = float(str(fastd[1498:1499])[1:-1])
fastd_now_1 = float(str(fastd[1497:1498])[1:-1])
fastd_now_2 = float(str(fastd[1496:1497])[1:-1])

print(macd_now)
print(macdsignal_now)
print(macdhist_now)
print(rsi_now)
print(fastk_now)
print(fastd_now)



私の自動売買実績をリアルタイムに公開していますので是非モニターしてみてください(^^


関連コンテンツ