ネットに初心者向けの仮想通貨ビットコイン自動売買する方法がのってなかったので紹介します。

プログラミング初心者でも作れるよ😃

BOTの作り方
まずはゴールを決めて必要なものを割り出します。

「動けばいいや」 最初はそんな気分だった。
なんでもいいから動くBOTを組み立てたい。
挫折してしまうので出来るだけ簡単に。
ネットで下調べてみると情報がたくさんのってる。
- 取引所がAPIを公開しているのでそれを使えばトレードが出来るらしい
- TradingView有料プランでBOTにシグナルを送信する機能が使えるみたい
- 設置する場所はAWSやConohaが人気
- Googleもクラウドサービスがある
- コラボレートリーが便利そう
- Pythonで作れそう
情報を整理して以下の形でいこうと思います。
- プログラミング言語は初心者でもわかりやすいPython
- TradingViewのシグナル機能を使う
- Gmailでアカウント持ってるからGoogleのサービスで統一
- デモ口座もあるBybitでテスト開発
使う技術

Pythonで全部作るよりTradingViewと組み合わせたほうが簡単
Pythonで全部やろうと思ったけどちょっと難しいです。

・ バックテストが可能
・ クラウドサーバーなので24時間いける
・ デフォルトのテクニカル指標・ストラテジーが使える
・ 有料noteのストラテジーが使える

キャンペーン情報


自動売買の仕組み

手順
Googleコラボレートで試してみる
TradingViewでストラテジーを使う
コピペで使えるコード
GCPのCloud Functionsにコピペする
コピペで動くコード
Cloud Functionsへコードをコピペで設置する



リージョンはサーバーが置いてある地域のことです。近い方が有利。Bybitはシンガポール拠点。
未認証の呼び出しを許可すると外部からのアクセスを許可できます。









Trading View メッセージ
1 |
{"side":"{{strategy.order.action}}"} |
Cloud Functions
bot/
├ main.py
├ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import bybit def hello_world(request): request_json = request.get_json() side = request_json["side"] if(side == "buy"): client = bybit.bybit(test=True, api_key="", api_secret="") # test=Falseで本番口座、test=Trueでデモ口座 print(client.LinearOrder.LinearOrder_new(side="Buy",# 売買方向Buy symbol="BTCUSDT", order_type="Market",# 成行 qty=0.1,#注文量 time_in_force="GoodTillCancel",# 注文の有効期限 reduce_only=True,# 決済注文=True close_on_trigger=False).result()) print(client.LinearOrder.LinearOrder_new(side="Buy",# 売買方向Buy symbol="BTCUSDT", order_type="Market",# 成行 qty=0.1,#注文量 time_in_force="GoodTillCancel",# 注文の有効期限 reduce_only=False,# 決済注文=False close_on_trigger=False).result()) if(side == "sell"): client = bybit.bybit(test=True, api_key="", api_secret="") print(client.LinearOrder.LinearOrder_new(side="Sell",# 売買方向Buy symbol="BTCUSDT", order_type="Market",# 成行 qty=0.1,#注文量 time_in_force="GoodTillCancel",# 注文の有効期限 reduce_only=True,# 決済注文=True close_on_trigger=False).result()) print(client.LinearOrder.LinearOrder_new(side="Sell",# 売買方向Buy symbol="BTCUSDT", order_type="Market",# 成行 qty=0.1,#注文量 time_in_force="GoodTillCancel",# 注文の有効期限 reduce_only=False,# 決済注文=False close_on_trigger=False).result()) return "注文完了" |
1 |
bybit |
pybit版
Cloud Functions
bot/
├ main.py
├ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
from pybit import usdt_perpetual #ーーーーーーーーーーーーーーーーーーーーーー # 本番用 #ーーーーーーーーーーーーーーーーーーーーーー # session_auth = usdt_perpetual.HTTP( # endpoint='https://api.bybit.com', # api_key='', # api_secret='') #ーーーーーーーーーーーーーーーーーーーーーー # デモ口座用 #ーーーーーーーーーーーーーーーーーーーーーー session_auth = usdt_perpetual.HTTP( endpoint="https://api-testnet.bybit.com", api_key="", api_secret="" ) def hello_world(request): request_json = request.get_json() side = request_json["side"] # 買いの場合処理 if side == "buy": close("Buy")#決済 entry("Buy")#新規注文 # 売りの場合処理 if side == "sell": close("Sell")#決済 entry("Sell")#新規注文 return "ok" def entry(side): try: print(session_auth.place_active_order( symbol="BTCUSDT", side=side, order_type="Market", qty=0.01, time_in_force="GoodTillCancel", reduce_only=False, close_on_trigger=False )) except Exception as e: print(e) def close(side): try: print(session_auth.place_active_order( symbol="BTCUSDT", side=side, order_type="Market", qty=0.01, time_in_force="GoodTillCancel", reduce_only=True,#決済 close_on_trigger=False )) except Exception as e: print(e) |
1 |
pybit |
以前同様の質問を頂きましたので、こちらの記事をお読みください。 https://…
初歩的な質問で申し訳ございません。 パラメータ設定画面でロット数を可変可能にする…
ホソノP様 初めまして山田と申します。 サイトに掲載されているバイナンス用のbo…
bybit版が上手く設定出来たので、バイナンスでもやろうと思ったのですがエラーが…
すみません、ビール送らせていただきますと書きましたが、欲しいものリストではなくて…