ホーム > 仮想通貨取引所のAPI解説 > 【永久保存】仮想通貨FXで一目均衡表(雲)のデータを抽出するPythonプログラム

【永久保存】仮想通貨FXで一目均衡表(雲)のデータを抽出するPythonプログラム

仮想通貨FXで一目均衡表(雲)のデータを抽出するPythonプログラムについて記載します。コピペOKですのでご活用ください。 サンプルプログラムの前に簡単に一目均衡表(雲)について解説をしておきます。まず下のチャートをご覧ください。



一目雲は上昇雲の時は雲により支えられれば上昇が継続し、最終的には下抜けがセオリーです。下降雲は雲により上昇が抑えられいずれは上に抜けていくのがセオリーです。雲の薄いところやネジレは相場が反転する可能性があるので注意が必要です。 また、一目雲は未来の状況がわかります。下のように未来に雲のネジレがあります。雲のネジレの位置では、そのまま大きくトレンドを継続する場合と、雲のネジレに突っ込んでくることがあります。雲のネジレの位置では相場が大きく動く可能性があることを覚えておきましょう。



それではいよいよ一目均衡表の値を抽出するPythonのサンプルプログラムについて解説をしていきます。サンプルプログラムでpandas、numpy、requests、jsonを使用しますのでインストールしていない場合はインストールしてください。

pip install pandas
pip install numpy
pip install requests
pip install json

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

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

import numpy as np
import requests
import json
import pandas as pd

API_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

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



def ichimoku_new(high,low,close):
    max9 = high.rolling(9).max()
    min9 = low.rolling(9).min()
    max26 = high.rolling(26).max()
    min26 = low.rolling(26).min()
    max52 = high.rolling(52).max()
    min52 = low.rolling(52).min()
    
    kijun = (max26 + min26) / 2
    tenkan = (max9 + min9) / 2
    
    chiko = close.copy()
    chiko_index = np.arange(-26,len(close)-26)
    chiko.index = chiko_index
    
    senko1 = (tenkan + kijun) / 2    
    senko2 = (max52 + min52) / 2
    senko_index = np.arange(26,len(close)+26)
    senko1.index = senko_index
    senko2.index = senko_index
    
    return tenkan,kijun,chiko,senko1,senko2

##ここからmain##################
#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])      
        ii = ii + 1


high_1 = pd.Series(price_priod_high)
low_1 = pd.Series(price_priod_low)
close = pd.Series(price_priod)

#雲
tenkan,kijun,chiko,senko1,senko2 = ichimoku_new(high_1,low_1,close)

ichimoku_senko1 = round(senko1[1499],2)
ichimoku_senko2 = round(senko2[1499],2)
ichimoku_senko1_before = round(senko1[1495],2)
ichimoku_senko2_before = round(senko2[1495],2)    
ichimoku_senko1_future = round(senko1[1504],2)
ichimoku_senko2_future = round(senko2[1504],2)    
ichimoku_senko1_future2 = round(senko1[1514],2)
ichimoku_senko2_future2 = round(senko2[1514],2)    

ichimoku_senko1_1 = round(senko1[1498],2)
ichimoku_senko2_1 = round(senko2[1498],2)
ichimoku_senko1_2 = round(senko1[1497],2)
ichimoku_senko2_2 = round(senko2[1497],2)


#上昇雲
print("ichimoku_senko1:" + str(ichimoku_senko1) + " ichimoku_senko2:" + str(ichimoku_senko2))
if ichimoku_senko1 > ichimoku_senko2:
    print("上昇雲")

#下降雲
if ichimoku_senko1 < ichimoku_senko2:
    print("下降雲")

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


関連コンテンツ