仮想通貨自動売買botを作ろうシリーズ_18---売買ロジックを導入しよう(とりあえずの最終巻!)---

※以降は全て、windows10を前提にお話しています。
※不明な所は、都度ググって確かめる癖をつけておきましょう。
※読んでみて価値が無いと思われた方は、「返金申請」をしてください。

長らく続いた「仮想通貨自動売買botを作ろうシリーズ」も、今回をもって、いったんの完結になります。
今回の最後まで継続購入いただいき「真面目に勉強された」方は、「もれなく全員」botが完成するのではないでしょうか?

次回以降は、より実践的な売買ロジックの実装例の紹介になっていきます。

前号はこちら


<BF-FXではなくBTC現物取引への改造>

現在(2021/03/30時点)のBF-FXは、SFDというクソ中のクソ仕様のため、まともな取引ができません。
また、金商法に関連して、新規ユーザーのBF-FX(レバレッジ取引)自体がブロックされています。

以前の記事を書いた当時はBF-FXでも問題なかったのですが、現在の状況を鑑みて、BTC現物での取引に修正いたします。
まずは、test17.pyをコピーして、test18.pyを作成した上で作業します。

エディタの検索(置換)機能を利用して、「FX_BTC_JPY」を「BTC_JPY」に一斉置換しましょう。
おそらく「sell_limit」と「buy_limit」の関数の中身が置換されるかと思います。
このプロダクトコードと呼ばれる物を変更するだけで、BF-FXからBTC現物へと取引内容が変更されます。

次に、現在の「get_jpy」関数は、BF-FXの「証拠金」を取得していますが、BTC現物取引では「証拠金」ではなく、「日本円残高(証拠金に『入れていない』日本円)」にて取引されますので、「get_jpy」の中身も改造します。

「def get_jpy(): # 自分の取引所の証拠金残高を取得する」
「    response = bf.getcollateral()」
「    return response['collateral'] # 証拠金残高のみを返す」

この部分を、

「def get_jpy(): # 自分の取引所の日本円残高を取得する」
「    response = bf.getbalance()」
「    return response # 証拠金残高のみを返す」

に変更して、メインの注文部分をいったんコメントアウトしておきます。

「    #if pos > 0: # 自分の現在のポジションがロングなら、売り指値を置く」
「    #    sell_limit()」
「    #elif pos <= 0: # 自分の現在のポジションがショートもしくはノーポジなら、買い指値を置く」
「    #    buy_limit(price=900000, size=0.01) # ここで入れる数字は『絶対に約定しない様な』離れた数字を入れておいてください」

これで、注文されないはずですよね。

それでは、test18.pyを実行してみましょう。

「C:\bot>python test18.py」
「2021-03-30 11:03:02.527590 running!」
「2021-03-30 11:03:02.916815 jpy = [{'currency_code': 'JPY', 'amount': 94259.0, 'available': 81993.0}, {'currency_code': 'BTC', 'amount': 0.00550585, 'available': 0.00450575}, {'currency_code': 'BCH', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'ETH', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'ETC', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'LTC', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'MONA', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'LSK', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'XRP', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'BAT', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'XLM', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'XEM', 'amount': 0.0, 'available': 0.0}, {'currency_code': 'XTZ', 'amount': 0.0, 'available': 0.0}]」
「2021-03-30 11:03:03.116623 LTP = 6289996.0」
「」
「C:\bot>」

こんな感じで実行できましたか?

整理します。
元々「getcollateral」と言う「証拠金」を取り出す関数を使用していましたが、「getbalance」と言う「(証拠金じゃない)日本円残高」を取得するための関数に置き換えました。
ところが、その中身(実行した結果)は、「リスト型([ ]角かっこ)の中に辞書型({ }波かっこ)が入っている」物が戻り値として返ってきています。

この上の文章が理解できない場合は、リスト型の説明とか辞書型の説明の記事を、「何度も」読み返してみてください。
理解できたとして続けます。

この結果から、日本円残高のみを抽出するには、
「リスト型の中から日本円残高の事が書かれている辞書を抽出して、その辞書の中から残高部分のみを取り出す」
事で、実現可能です。


以降の有料部分に書かれているのは、
<for文を使ってみよう>
<引数を切り替えることで日本円残高でもBTC残高でも取れるようにしよう>
<メインのロジックも合わせて修正しよう>
<成行注文の実装>
<毎日積み立てて買うドルコスト平均法ロジックの搭載>


※※※無料※※※

ここから先は

5,152字 / 1ファイル

¥ 100

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?