FXと仮想通貨自動売買ブログ pythonプログラミング勉強5回目

このブログはfx自動売買と仮想通貨botに関するプログラミングの知識を付けたい20代がノートのように投稿していくものです。※このカテゴリーのコードはChatGPTで作成されたものを元に、学習用として掲載しています。動作保証や商用利用はしていません。実際に自作したものもありますが基本的には閲覧用として見て下さい。

Information

【Instagramのフォローよろしくお願いします】

学んだこと
  • CCXTが使えないのでGMOコイン専用の書き方をする
  • jsonをインポートするのを忘れずに、jsonを使う時はダブルクォートを必ず使う
APIドキュメントを読むときの注意
  • endpointとmethodを見てどのAPIか判断する
  • headerとbodyの形式をチェックする
  • Property Name、Type、Requiredで送る値を理解する
  • exampleに参考例がのってる
import time
import hmac
import hashlib
import json
import requests

# 🔑 自分のAPIキーをここに入れる
API_KEY = 'あなたのAPIキー'
API_SECRET = 'あなたのAPIシークレット'

# 🕒 今の時刻をミリ秒で返す
def get_timestamp():
    return str(int(time.time() * 1000))

# 🧾 GMOコイン用のヘッダーを作る関数
def make_headers(method, path, body=''):
    timestamp = get_timestamp()
    message = timestamp + method + path + body
    signature = hmac.new(API_SECRET.encode(), message.encode(), hashlib.sha256).hexdigest()
    return {
        'API-KEY': API_KEY,
        'API-TIMESTAMP': timestamp,
        'API-SIGN': signature,
        'Content-Type': 'application/json'
    }

# 🛒 実際にビットコインを買う注文を出す関数
def order_market_buy():
    url = 'https://api.coin.z.com/private/v1/order'
    path = '/private/v1/order'
    method = 'POST'

    # 📦 送りたい注文の内容(辞書)
    body = {
        "symbol": "BTC",
        "side": "BUY",                # 買い注文
        "executionType": "MARKET",   # 成行注文
        "size": "0.001"              # 注文数量(BTC単位)
    }

    # 📮 辞書 → JSON文字列に変換(GMOが読めるようにする)
    body_json = json.dumps(body)

    # ✉️ ヘッダーを作成(時刻・署名などを含む)
    headers = make_headers(method, path, body_json)

    # 🚀 POSTで注文を送る
    response = requests.post(url, headers=headers, data=body_json)

    # 📦 GMOからの返事を表示
    print("📩 GMOの返事:")
    print(response.status_code)
    print(response.text)

# ▶ 関数を実行して注文してみる!
order_market_buy()
コード流れ
  1. 時間をインポート、hmacとhashlibで署名、jsonの辞書をインポート、注文を送る道具?をインポート
  2. API情報を入力
  3. 時間をミリ秒で返す関数を定義
  4. ヘッダーをつくる関数を定義
  5. 成行注文をGMO側に出す関数を定義↓
  6. 注文内容(body)を定義してjsonに変換
  7. GMOコイン側で読まれるようにヘッダーを専用に定義
  8. requestsでヘッダー+json文字列に変換したbodyを送信
  9. 最後に定義したorder関数を実際に実行して完了

指値バージョンを作ってみる↓

(● ˃̶͈̀ロ˂̶͈́)੭ꠥ⁾⁾私のTwitterはこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です