Bot作成準備編 - いなごFlyerをスクレイピングしてVolumeを取得する
いなごFlyerとは
次のサイトのことです。 仮想通貨の各取引所の状況のデータを集計し、可視化してくれる便利なサイトです。
いなごFlyerをスクレイピングするのか?
@akagami_v2 さんのように、売買ボリュームをみて自動売買のBotを作っている方がいます。
最終ツイートがてら、botのコアロジックを公開しておく。いなごFlyerの直近20秒のBuy/SellボリュームをPhantomJSでスクレイピング。BuyVolが強ければロング、SellVolが強ければショート、Buy/Sell反転した時が利確、兼、損切りっていうシンプルロジック。価格は一切見ていない。見ているのはVolだけ。 https://t.co/IgJ0txcN7c
— AKAGAMI 卍 (@akagami_v2) 2017年11月30日
資金を56倍まで増やしたとのことで、一気にBot作成者のいなごが発生したと思います。 手法を公開されていますが、いまの相場状況にあっているかどうかは、ご自身で判断しましょう。
ビットコインを大量に売買する人があらわれた時、価格が大きく変動します。この波に乗って売買をすれば、短期的に利益をあげる手法があり、Botで自動売買している人もいます。
動作環境と使用ライブラリ
Python3.X を使っています。
ツール | 使用 | 備考 |
---|---|---|
OS | Mac OS | |
プログラミング言語 | Python | |
スクレイピング | Selenium | 自動でブラウザを操作 |
ブラウザ | ChromeDriver | Chromeを自動操作するため |
Seleniumをインストールしても、スクレイピングが正常うごかないときは、ChromeDriverを更新してみてください。
MacOSを使用している場合、brew install crhomedriverも必要です。
Pythonのプログラム
いなごFlyerからVolumeを取得するプログラムです。
#!python # -*-coding:utf-8-*- from selenium import webdriver from selenium.webdriver.chrome.options import Options """ テクニカル指標の計算クラス """ class InagoflyerScraping: # BTC BTC = "https://inagoflyer.appspot.com/btcmac" # XPR XRP = "https://inagoflyer.appspot.com/xrpmac" __web_driver = None # コンストラクタ def __init__(self, url): options = Options() # ヘッドレスモードを有効にす。指定しない場合、Chromeの画面が表示される options.add_argument('--headless') # ChromeのWebDriverオブジェクトを作成する。 self.__web_driver = webdriver.Chrome(options=options) self.__web_driver.get(url) # 関数VOLでボリュームをスクレイプ(http://inagoflyer.appspot.com) scraping def get_volume(self): for buyvol in self.__web_driver.find_elements_by_id("sellVolumePerMeasurementTime"): sell = buyvol.text for sellvol in self.__web_driver.find_elements_by_id("buyVolumePerMeasurementTime"): buy = sellvol.text return sell, buy def quit(self): self.__web_driver.quit() # クラスの使用例はここから from time import sleep # スクレイピング初期化 - ビットコインの画面をスクレピング指定 inagoScraping = InagoflyerScraping(InagoflyerScraping.BTC) # Volume取得 vol = inagoScraping.get_volume() while True: print('Volume ' + vol[0] + " vs " + vol[1] + '\n') sleep(1)
動作を簡単に説明すると
いなごFlyerの値取得
- 非表示のChromeブラウザを起動する
- バックグラウンドで、いなごFlyerの画面データを取得
- 定期的に値を参照して、取得する
クラスの使用例の処理です
- いなごFlyerからVolumeの値を取得
- 1行間隔で、値を表示
上記のプログラムをpyファイルにコピペして、実行すれば動くと思います。 いなごFlyerの値取得に関しては、スクレイピングというより、表示されないブラウザを起動して、値を見ているだけです。
処理を終了するときは、chromedriverのquitをしないと、ずっと起動しっぱなしなので、注意しましょう。