<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>kalos89のブログ</title>
<link>https://ameblo.jp/kalos89/</link>
<atom:link href="https://rssblog.ameba.jp/kalos89/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>ブログの説明を入力します。</description>
<language>ja</language>
<item>
<title>バイナンス API で歴史ローソク足、データ欠落させないコツ</title>
<description>
<![CDATA[ <p>こんにちは、今日は<strong>バイナンス API で歴史ローソク足を取得する時、データが欠ける問題</strong>を解決する方法を、私の実践体験を交えてゆるっと紹介します✨</p><p>トレードの勉強や自動売買のバックテストをする時、過去のローソク足データは超重要ですよね。私も長年、バイナンス API を使ってデータを取得していますが、<strong>1 分足・5 分足の高頻度データや、長期間のデータ</strong>を一気に取ろうとすると、途中で途切れたり、本数が足りなかったり… 何度も頭を悩ませました。</p><p>データが不完全だと、バックテストの結果が全然違っちゃうし、分析も無駄になっちゃうんです😭 今回は、私が実際に使っている<strong>確実にデータを揃える方法</strong>を、初心者さんでも分かりやすくまとめました！</p><h2>なぜデータが欠けるの？</h2><p>実はバイナンス API には **「1 回のリクエストで最大 1000 本まで」** というルールがあるんです！1 分足でも、1 時間足でも、日足でも、この制限は同じ。</p><ul><li>長い期間を一気に取得 → データが途中で切れる</li><li>連続でリクエストしすぎ → 制限に引っかかって途切れる</li><li>確認しないまま使う → 隠れた欠落に気づかない</li></ul><p>これが、データ欠落の一番の原因なんですよ。</p><h2>私が実践している 4 つの方法</h2><p>難しい設定は一切なし、<strong>4 つのコツを守るだけ</strong>で、データが完璧に揃います！</p><h3>1. 時間を小分けにして取得する</h3><p>長い期間を一気に取ろうとせず、<strong>1000 本以内になるように分割</strong>します。例：1 年分の 1 時間足 → 1 ヶ月ごとに分けて取得例：1 日分の 1 分足 → ループで少しずつ取得</p><h3>2. タイムスタンプで時間を確認</h3><p>各ローソク足には<code>openTime</code>（ミリ秒）という時間の目印があります。</p><ul><li>1 分足：60000 ミリ秒（毎分）</li><li>5 分足：300000 ミリ秒（5 分ごと）</li></ul><p>取得後に時間順に並べて、間隔がズレていたら<strong>欠落している証拠</strong>なので、すぐに再取得できます。</p><h3>3. リクエストの間隔を少し空ける</h3><p>連続で API にリクエストすると、制限に引っかかっちゃいます。<strong>0.2 秒だけ待つ</strong>だけで、安定してデータが取れるようになりますよ✨</p><h3>4. 最後に 3 つのチェックをする</h3><p>取得したデータは、必ず確認してから使いましょう！</p><ol><li>時間が途切れていないか</li><li>価格や出来高に空欄がないか</li><li>データの本数が想定通りか</li></ol><p>これで、データのミスを防げます。</p><h2>すぐ使える Python コード</h2><p>コピーして実行するだけで、自動でデータを取得して欠落を確認してくれます💻</p><pre><code>import requestsimport timeimport pandas as pdAPI_URL = "https://apis.alltick.co/stock/history-klines"symbol = "BTCUSDT"interval = "1m"start_time = 1680000000000  # ミリ秒の開始時間end_time = 1680100000000    # ミリ秒の終了時間all_klines = []# 分割して取得while start_time &lt; end_time:    params = {        "symbol": symbol,        "interval": interval,        "startTime": start_time,        "limit": 1000    }    resp = requests.get(API_URL, params=params)    data = resp.json()    if not data:        break    all_klines.extend(data)    start_time = data[-1][0] + 60000  # 次の開始時間    time.sleep(0.2)  # リクエスト間隔# データを整理df = pd.DataFrame(all_klines, columns=["openTime","open","high","low","close","volume"])df["openTime"] = pd.to_datetime(df["openTime"], unit="ms")df = df.sort_values("openTime").reset_index(drop=True)# 欠落チェックexpected_interval = pd.Timedelta(minutes=1)missing = df["openTime"].diff() != expected_intervalif missing.any():    print("欠落したローソク足があります：")    print(df[missing])else:    print("データは完全です✨")</code></pre><h2>まとめ</h2><p>バイナンス API のデータ欠落は、<strong>API のせいじゃなく、取得方法の問題</strong>なんです。「小分けに取得・時間確認・間隔を空ける・最終チェック」この 4 つを守るだけで、もうデータ欠落に悩まされなくなりますよ😊</p><p>リアルタイムのデータと比較したい時は、AllTick API を使うと WebSocket でリアルタイムデータが受け取れて、確認がもっと楽になります✨</p><p>今日の記事が、トレード勉強やデータ取得の参考になれば嬉しいです！質問があれば、コメントで気軽に聞いてくださいね～</p>
]]>
</description>
<link>https://ameblo.jp/kalos89/entry-12966118412.html</link>
<pubDate>Thu, 14 May 2026 12:53:24 +0900</pubDate>
</item>
<item>
<title>外国為替 API で休場を自動判定！カレンダー不要の安定テクニック</title>
<description>
<![CDATA[ <p>皆さん、こんにちは！日々、為替データの取得システムを作ったり、自動売買システムを運用したりしていると、<strong>休日のたびにデータが不安定になる…</strong> と悩んでいませんか？</p><p>普段はスイスイ動いていたプログラムが、感謝祭やクリスマス、正月になると</p><ul><li>データが取れなくなる</li><li>途切れ途切れになる</li><li>タイムアウトばっかり</li></ul><p>こんな経験、何度もありますよね。</p><p>実はこれ、API の不具合ではなく<strong>市場が休場・閉場しているから</strong>なんです。今回は、私が実践で使っている<strong>カレンダーを手動で管理しなくても、自動で休場を判定できる方法</strong>を、コードつきでご紹介します✨</p><hr><h2>休日にはデータがこんなに変わる！</h2><p>通常の取引日と休日では、データの様子がまったく違います。</p><ul><li>データの頻度：毎秒たくさん tick が来る → 数分に 1 回になる</li><li>流動性：豊富 → 激減</li><li>スプレッド：安定して狭い → 大幅に広がる</li></ul><p>この状態を放置してプログラムを動かし続けると、無駄なアクセスが増えたり、エラーが出たり、誤発注の原因にもなります。</p><p>そこで重要になるのが **「休場を自動で判断する仕組み」** です。</p><hr><h2>カレンダー不要！データから休場を自動判定</h2><p>休日カレンダーを手作業で管理するのは大変ですよね。私は<strong>API から届くリアルタイムデータの間隔</strong>で、市場が休場かどうかを判定しています。</p><p>WebSocket でリアルタイムにデータを受け取りながら、tick の間隔が異常に長くなったら「休場の可能性あり」と判断する仕組みです。</p><h3>実際に使えるコード（コピペ OK）</h3><pre><code>import websocketimport jsonimport timeclass HolidayDetector:    def __init__(self):        self.last_tick_time = None        self.tick_count = 0    def on_message(self, ws, message):        data = json.loads(message)        current_time = time.time()        if self.last_tick_time:            interval = current_time - self.last_tick_time            # 10秒以上間隔が空いたら休場判定            if interval &gt; 10:                print(f"データ間隔が異常です：{interval:.1f}秒 → 休場の可能性あり")        self.last_tick_time = current_time        self.tick_count += 1        print(f"{data.get('symbol')} 価格：{data.get('price')}")detector = HolidayDetector()# AllTick API WebSocketurl = "wss://apis.alltick.co/websocket-api/stock-websocket-interface-api/transaction-quote-subscription"ws = websocket.WebSocketApp(url, on_message=detector.on_message)ws.run_forever()</code></pre><p>これだけで、リアルタイムで市場の状態を監視できます。</p><hr><h2>もっと正確に！3 つの判定テクニック</h2><p>より誤判定を減らすために、私が実践しているコツを紹介します。</p><ol><li><p><strong>出来高の下限を決める</strong>一定の出来高を下回ったら「流動性不足」と判断。</p></li><li><p><strong>複数の通貨ペアでチェック</strong>1 つだけデータが途切れている場合は個別の問題。EUR/USD・GBP/USD・USD/JPY がすべて途切れたら<strong>市場全体の休場</strong>と判断。</p></li><li><p><strong>取引時間帯を考慮</strong>東京オープン直後はデータが少なくても正常。ニューヨーク・ロンドンが重なる時間帯にデータが少ない場合は休場の可能性大。</p></li></ol><p>AllTick API のように安定しているサービスは、休場時に<strong>切断せずデータの頻度を落とす</strong>ので、この判定方法がとても相性がいいです👍</p><hr><h2>私の運用方法：状態を切り替えて安定稼働</h2><p>実際の運用では、3 つのモードを自動で切り替えています。</p><ul><li>通常モード：普通にデータを処理</li><li>監視モード：データ間隔が長くなったら 30 秒様子見</li><li>休場モード：売買ロジックを停止し、最低限の監視だけに</li></ul><p>これによって無駄な負荷が減り、システムがとても安定するようになりました！</p><hr><h2>最後に</h2><p>為替 API を使った開発では、<strong>休場判定を自動化するだけで、ストレスが大幅に減ります</strong>。</p><p>カレンダーを手動で管理するよりも、データから市場の状態を判断するほうがずっと簡単で安定しますよ。</p><p>同じように悩んでいる方の参考になれば嬉しいです😊</p>
]]>
</description>
<link>https://ameblo.jp/kalos89/entry-12966008688.html</link>
<pubDate>Wed, 13 May 2026 11:30:57 +0900</pubDate>
</item>
<item>
<title>1 つの外国為替 API で米国株・香港株・貴金属のリアルタイム相場を取得する方法</title>
<description>
<![CDATA[ <p>こんにちは、個人で量化取引ツールを開発している開発者です。</p><p>数年前、私は<strong>米国株・香港株・金・銀</strong>の相場を一括監視したくて挑戦したとき、大きな壁にぶつかりました。マーケットごとに別々の API を契約し、接続先・認証・データ形式がすべて違うため、コードが肥大化し、メンテナンスがとても大変だったのです。</p><p>しかし、ある時気づきました。<strong>多くの外国為替 API は、複数の資産クラスに対応している</strong>ということ。通貨ペアだけでなく、株式・貴金属などのリアルタイム価格も、1 つの API で取得できるのです。</p><p>今回は、その方法を実用的なコード付きで解説します。</p><hr><h2>なぜ為替 API で複数マーケットの価格が取得できるのか</h2><p>多くのデータプロバイダは、<strong>世界中の主要資産を一つの配信ラインに統合</strong>しています。株式・外国為替・コモディティは、すべてリアルタイムのティックデータとして配信されるため、<strong>1 つの WebSocket 接続だけで、複数の相場を同時に受信</strong>できるのです。</p><p>メリットは非常に大きいです：</p><ul><li>複数の API を管理する必要がない</li><li>認証処理が 1 つで済む</li><li>データ形式が統一される</li><li>コードがスッキリし、バグが減る</li></ul><hr><h2>銘柄コードのルール（重要！）</h2><p>マーケットごとにコードの書式が異なるため、事前に覚えておくとエラーが大幅に減ります。</p><ul><li>米国株：AAPL、MSFT など、そのまま</li><li>香港株：<a chatability="{}" href="https://00001.HK" target="_blank">00001.HK</a>、<a chatability="{}" href="https://00002.HK" target="_blank">00002.HK</a> → <strong>.HK 必須</strong></li><li>貴金属：XAUUSD（金）、XAGUSD（銀） → 国際標準コード</li></ul><p>私は最初、これを知らずに何度も購読に失敗しました。必ずフォーマットを確認してからリクエストを送るようにしましょう。</p><hr><h2>実践コード：1 接続で米国株・香港株・貴金属を同時購読</h2><p>今回は <strong><a href="https://alltick.co/ja-JP" rel="noopener noreferrer" target="_blank">AllTick API</a></strong> を例に、実際に動作する Python コードを紹介します。</p><pre><code>import websocketimport jsondef on_message(ws, message):    data = json.loads(message)    symbol = data.get("symbol")    price = data.get("price")    print(f"{symbol} 最新価格: {price}")def on_open(ws):    subscribe_msg = {        "action": "subscribe",        "symbols": [            "AAPL", "MSFT",            "00001.HK", "00002.HK",            "XAUUSD", "XAGUSD"        ]    }    ws.send(json.dumps(subscribe_msg))ws = websocket.WebSocketApp(    "wss://api.alltick.co/ws/stock",    on_open=on_open,    on_message=on_message)ws.run_forever()</code></pre><p>これを実行するだけで、<strong>1 本の WebSocket で</strong>米国株＋香港株＋金・銀のリアルタイムティックデータが取得できます。</p><hr><h2>実運用で役立つ 3 つのコツ</h2><p>実際に使うときは、次の点を押さえておくと安定します。</p><ol><li><p><strong>データを種別ごとに分類</strong>米国株・香港株・貴金属を別々の辞書で管理し、混在を防ぎます。</p></li><li><p><strong>取引時間帯だけ処理</strong>マーケットごとに時間帯が異なるため、オープン時間外の計算をスキップしてリソースを節約。</p></li><li><p><strong>価格の小数点精度を統一</strong>貴金属は株式より桁数が多いため、表示前にフォーマットを揃えます。</p></li></ol><p>安定性を高めたい場合は、<strong>自動再接続・非同期処理・ログ出力</strong> を追加するとより実用的です。</p><hr><h2>まとめ</h2><p>複数のマーケットを監視する場合、<strong>わざわざ複数の API を使う必要はありません</strong>。1 つの外国為替 API を使いこなせば、米国株・香港株・貴金属のリアルタイム相場を</p><ul><li>シンプルなコード</li><li>少ないメンテナンス</li><li>安定的なデータ同期</li></ul><p>で取得できます。</p><p>個人開発・量化取引ツールを作っている方に、特におすすめの方法です。</p><hr><p>※ 本記事は開発者の実体験に基づく技術情報です。利用する API の仕様は変更される場合がありますので、最新情報をご確認ください。</p>
]]>
</description>
<link>https://ameblo.jp/kalos89/entry-12965941961.html</link>
<pubDate>Tue, 12 May 2026 18:23:12 +0900</pubDate>
</item>
</channel>
</rss>
