Claude を活用して Polymarket のボット取引 1,000 万件を分析:ボットが 1 日 1,000 ドル以上を稼ぐ仕組み

@Dan1ro0
英語3 週間前 · 2026年6月27日
236K
58
9
8
148

TL;DR

Polymarket における 1,000 万件のボット取引を技術的に分析。5 つの具体的な収益モデルと、その背後にある数学的フレームワークを詳細に解説します。

一般的なトレーダーにとって、Polymarket の短期マーケットはシンプルに見えます。

ビットコインは今から5分後、上がっているか下がっているか?

しかし、トレーディングボットは全く異なる問題を捉えています。

ボットは、原資産の価格、満期までの時間、両面の流動性、関連マーケット、そして自身のリアルタイムの在庫を、すべて同時に追跡しています。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@bonereaper?via=dan-kwpx

人間が「Up」か「Down」かを決めあぐねている間に、ボットはすでに以下のことを完了しているかもしれません。

**> 新しい価格シグナルを取り込む > 結果を再評価する > それを契約価格と比較する > 隣接するマーケットをチェックする > 複数の指値注文を出す > ポジション全体を再構築する**

こうして、一部のシステムはわずかな価格差を、1日あたり1,000ドル以上の利益に変えているのです。

私は、Polymarket の短期暗号資産 Up/Down マーケット における 1,000以上のボットと 1,000万件以上の実行を、Claude を使って分析しました。

一見すると、トレードは完全に混沌としています。同じウォレットが「Up」を買い、数秒後に「Down」を追加し、最初のポジションの一部を売却し、最終的には両方の結果を保有した状態でマーケットを終えます。

しかし、トレードの全ライフサイクルを再構築すると、ノイズに意味が見え始めます。その背後には、通常、非常に明確なシステムが存在します。

ここでは、その機械全体の仕組みを解説します 👇

1. Polymarket でトレーディングボットが使われる理由

ボットの主な利点は、ビットコインの予測が完璧であることではありません。

その利点は、スピード、一貫性、そして人間が現実的に一度に監視できる以上の情報を処理する能力にあります。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@0xb55fa1296e6ec55d0ce53d93b9237389f11764d4-1777575277609?via=dan-kwpx

短期契約の価格は、ビットコインが現在 UpDown かに基づいてのみ決まるわけではありません。

アルゴリズムは、以下の要素も考慮する必要があります。

**> 始値からの距離 > 最新の値動きの速さ > 残り時間 > 現在のボラティリティ > オーダーブックの深さ > Up と Down の価格 > 関連マーケットの動き > 結果確定に使用される正確なフィード**

5分間のマーケットでは、実際のチャンスはほんの数秒間しか存在しないかもしれません。

人間がまだチャートを切り替えている間に、別のアルゴリズムがすでに利用可能な流動性を奪い、注文を置き換えているのです。

ほとんどのトレーディングボットは、5つのコアコンポーネントを中心に構築されています。

  1. データレイヤー - 外部価格とオーダーブックの更新をストリーミングする
  2. シグナルエンジン - 結果に影響を与える可能性のある変化を検出する
  3. 確率モデル - 独立した公正確率を計算する
  4. 実行エンジン - 注文を出し、キャンセルし、調整する
  5. リスクマネージャー - ポジションサイズを制御し、事前定義された制限を超えるトレードをブロックする

ボットがオーダーブックから直接計算できるシグナルの1つに、買い手と売り手の出来高の不均衡があります。

python
1def orderbook_imbalance(bids, asks):
2 bid_volume = sum(size for price, size in bids)
3 ask_volume = sum(size for price, size in asks)
4
5 total_volume = bid_volume + ask_volume
6
7 if total_volume == 0:
8 return 0.0
9
10 return (
11 bid_volume - ask_volume
12 ) / total_volume
13
14bids = [
15 (0.48, 1_250),
16 (0.47, 920),
17 (0.46, 680)
18]
19
20asks = [
21 (0.49, 640),
22 (0.50, 510),
23 (0.51, 430)
24]
25
26imbalance = orderbook_imbalance(bids, asks)
27
28print(f"オーダーブックの不均衡: {imbalance:.2%}")

正の値は、分析対象のブックセクションに買い手の出来高が多いことを意味します。負の値は、売り手の出来高が多いことを意味します。このシグナルだけでは、価格が動くことを証明するものではありません。

大口注文はキャンセルされる可能性があり、最良気配値から遠く離れた流動性が約定に影響を与えることはないかもしれません。

しかし、ビットコインの値動き、残り時間、外部価格フィードと組み合わせることで、より強力なシグナルの一部となります。

ボットが有用なのは、市場のあらゆる動きを自動的にトレードするからではありません。優れたシステムは、ほとんどのセットアップをポジションにする前に却下することで、その優位性を獲得します。

2. シグナル受信後、ボットはベイズ定理で確率を更新する 🧮

Up41¢ で取引されているとします。

ビットコインが突然加速し、出来高が増加し、オーダーブックはより強い買い圧力を示し始めます。

人間はこう考えるかもしれません。

この動きは強いように見える。

Up

は過小評価されているかもしれない

アルゴリズムには、より正確な答えが必要です。

このシグナルは

Up

の確率を正確にどれだけ変えたのか?

ここで ベイズの定理 の出番です。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@0xce25e214d5cfe4f459cf67f08df581885aae7fdc-1777575398144?via=dan-kwpx

ベイズにより、モデルは既存の確率から開始し、新しい証拠を受け取った後にそれを更新することができます。

式は以下の通りです。

P(Up | シグナル) = P(シグナル | Up) × P(Up) / [P(シグナル | Up) × P(Up) + P(シグナル | Down) × P(Down)]

ここで:

P(Up)

* は新しいシグナルを受け取る前の確率 *

P(シグナル | Up)

* は、Up の結果の前にこのシグナルが現れる頻度 *

P(シグナル | Down)

* は、Down の結果の前にこのシグナルが現れる頻度 *

P(Up | シグナル)

は更新後の確率

例えば:

元の

Up

* の確率は 41% このシグナルは、過去の *

Up

* シナリオの 64% で出現する 同じシグナルは、*

Down

シナリオの 35% で出現する

python
1def bayes_update(
2 prior_up,
3 signal_given_up,
4 signal_given_down
5):
6 numerator = signal_given_up * prior_up
7
8 denominator = (
9 numerator
10 + signal_given_down * (1 - prior_up)
11 )
12
13 return numerator / denominator
14
15prior = 0.41
16
17posterior = bayes_update(
18 prior_up=prior,
19 signal_given_up=0.64,
20 signal_given_down=0.35
21)
22
23print(f"更新前の確率: {prior:.2%}")
24print(f"更新後の確率: {posterior:.2%}")

更新された推定値は約 56% です。契約がまだ 41¢ で取引されている場合、ボットは測定可能なギャップを認識します。

*内部公正価値 - 56% 市場価格 - 41¢ 理論上のエッジ - 15 パーセントポイント*

人間にとって、これは強力なトレードアイデアに見えるかもしれません。しかし ボット にとっては、それは公正価値と現在の市場価格の間の特定の差に過ぎません。

ただし、ベイズは予測の近道ではありません。

モデルが弱いシグナルに過大な重みを与えたり、同じ情報を複数回カウントしたりすると、結果は常に歪められます。

価格変動、出来高の増加、オーダーブックの不均衡は、3つの別々の確認のように見えるかもしれませんが、実際には同じイベントの3つの影響である可能性があります。

優れたモデルは、その重複を考慮する必要があります。

3. 誤った価格設定の契約が自動的に利益を生むトレードになるわけではない

モデルが Up を 56% と評価しても、それを 41¢ で購入することが自動的に利益を生むわけではありません。

実際の執行には以下が含まれます。

*> テイカー手数料 > ビッド・アスク・スプレッド > スリッページ > 部分約定 > 価格の悪化 > モデルの不確実性*

したがって、ボットは ネットエッジ、つまりポジションが実際に執行された後に残る優位性を計算します。

python
1def calculate_net_edge(
2 model_probability,
3 execution_price,
4 fee,
5 slippage,
6 safety_buffer
7):
8 gross_edge = (
9 model_probability - execution_price
10 )
11
12 net_edge = (
13 gross_edge
14 - fee
15 - slippage
16 - safety_buffer
17 )
18
19 return gross_edge, net_edge
20
21gross, net = calculate_net_edge(
22 model_probability=0.56,
23 execution_price=0.47,
24 fee=0.017,
25 slippage=0.005,
26 safety_buffer=0.010
27)
28
29print(f"グロスエッジ: {gross:.2%}")
30print(f"ネットエッジ: {net:.2%}")

元の9ポイントのギャップは、コスト後には約6ポイントに減少します。

流動性が限られている場合、ボットは 47¢ でポジションのごく一部しか約定できないかもしれません。残りのサイズは、より高い価格で購入する必要があるかもしれません。

ポジション全体が構築される前に、エッジは消滅する可能性があります。同じロジックが バイナリーアービトラージ にも適用されます。

すべてのコストを差し引いた後、Up と Down の同量を 1 ドル未満で取得できる場合、いずれかの側が最終的に 1 ドルを支払うことになります。

しかし、システムはオーダーブックの最上部に表示される最も魅力的な価格ではなく、実際の出来高加重平均執行価格を使用する必要があります。

ここで、クリーンなバックテストとライブ執行がしばしば大きく異なる結果を生み出します。人間は異常な価格に気づきます。ボットは、市場コストを含めた後に十分な価値が残っていることを証明しなければなりません。

4. 最良のエッジは、しばしば関連マーケット間に存在する 🕸

短期契約は単独で動くわけではありません。

1回のビットコインの値動きは、以下のすべてに影響を与える可能性があります。

> 現在の

BTC

* 5分ウィンドウ > 次の5分ウィンドウ > *

BTC

* 15分 > *

BTC

* 1時間 > 関連する *

ETH

および

SOL

マーケット

しかし、これらのマーケットは常に同じ速度で更新されるわけではありません。

各契約には、独自のオーダーブック、流動性、開始レベル、参加者が存在します。

例えば:

>

BTC

* 5分は即座に価格を再設定するかもしれない > *

BTC

* 15分は予想よりも反応が弱いかもしれない > 隣接するウィンドウは以前のブックの不均衡を維持するかもしれない > ある契約は割高になるかもしれない > 別の契約は時代遅れの前提で取引され続けるかもしれない*

Daniro - inline image

ウォレットリンク: https://polymarket.com/@flippingsharks?via=dan-kwpx

ボットは、関連マーケット間のギャップが通常の範囲外に移動したかどうかを測定します。

シンプルなツールの1つが z スコア です。

Z = (現在のスプレッド − 平均スプレッド) / 標準偏差

python
1def spread_zscore(
2 current_spread,
3 average_spread,
4 spread_deviation
5):
6 return (
7 current_spread - average_spread
8 ) / spread_deviation
9
10z = spread_zscore(
11 current_spread=0.112,
12 average_spread=0.036,
13 spread_deviation=0.025
14)
15
16print(f"スプレッド z スコア: {z:.2f}")

3 を超える値は、現在のギャップがモデルが通常観測する範囲をはるかに超えていることを意味します。

それが自動的にトレードを生み出すわけではありません。あるマーケットが本当に遅れている可能性もあります。あるいは、最初に動いたマーケットが、隣接する契約がまだ処理していない情報をすでに組み込んでいる可能性もあります。

ボットはまた、BTC 5分と BTC 15分を、それらの Up 価格だけを見て比較することはできません。

それらは異なる開始レベルと異なる残り時間を持っています。

本格的なシステムは、各契約が自身の公正価値モデルからどれだけ乖離したかを比較します。

人間は1つのマーケットを監視します。ボットは、相互接続された確率のネットワークを監視し、一時的に他から乖離した部分を特定します。

5. ボットがエッジをポジションに変える5つの方法 🔄

シグナルが確認され、確率が更新され、ネットエッジがプラスのままになると、最も興味深い段階が始まります。

ボットは、ポジションをどのように構築し管理するかを決定しなければなりません。

個々の実行を完全なトレーディングサイクルにグループ化した後、5つの繰り返しパターンが現れました。

1️⃣ 動的ポジションローテーション

このシステムはその見解を継続的に更新し、同じ契約内で何度か方向を変える可能性があります。5分間のマーケットの開始時に、モデルが Up を過小評価していると判断したとします。

指値注文を通じて Up を蓄積し始めます。

その後、状況が変わります。

ビットコイン

* は勢いを失う 価格は開始レベルに向かって戻る オーダーブックから買い手が消える モデルの *

Up

確率が低下する

ボットは、結果が確定するまで元のポジションを保持する必要はありません。Up の一部を売却し、残りの注文をキャンセルし、Down の蓄積を開始することができます。

マーケットが再び変化した場合、ポジションは再度再構築できます。目的は、最初の試行で最終結果を完全に特定することではありません。

目的は、モデルの更新された推定値を下回る価格で取引されている側に、より多くエクスポージャーを持ち続けることです。

このアプローチの強みは、ボットが時代遅れの見解を即座に放棄できることです。

主な弱点は、誤った反転の繰り返しです。

ノイズの多いウィンドウでは、システムは次のようになる可能性があります。

上昇後に

Up

* を購入する 押し目後にそれを減らす *

Down

* に切り替える 次の上昇後に *

Down

を減らす

執行コストと繰り返されるポジション変更により、元の優位性が徐々に失われる可能性があります。

したがって、ローテーションボットは、新しいシグナルが、ポジションの解消、再構築、そして再び間違える可能性のコストをカバーするのに十分強い場合にのみ、方向転換する必要があります。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@trinity42?via=dan-kwpx

2️⃣ 時間的アービトラージ

伝統的な アービトラージ は、Up と Down が同時に 1 ドル未満で購入できる場合に発生します。

時間的アービトラージは、2つの側面を異なるタイミングで構築します。マーケット開始直後に ビットコイン が急上昇したと想像してください。

Down は 26¢ まで下落し、ボットは平均価格 27.4¢ で 750 契約を徐々に蓄積します。2分後、ビットコイン は上昇分のほとんどを失い、開始レベルに近づいて取引されます。

今度は Up が割安になり、ボットは平均価格 49.8¢ で 750 の Up を購入します。

最終的な構造は次の通りです。

*750 Down (平均価格 27.4¢) 750 Up (平均価格 49.8¢) 完全なペアあたりの総コスト - 77.2¢*

最終結果に関係なく、各ペアの一方の契約は 1 ドルを支払います。これにより、手数料と執行コストを差し引く前の粗利益は、ペアあたり 22.8¢ となります。重要な点は、27.4¢ の Down と 49.8¢ の Up が同時に利用可能だったことは一度もないということです。

ボットは、2つの異なる市場状態からアービトラージを生み出しました。ただし、最初の購入は依然として方向性リスクにさらされています。

ビットコイン が上昇し続ける場合、ボットはペアを完成させるのに十分魅力的な Up 価格を決して得られないかもしれません。

そうなると、価値が下がり続ける 750 の Down 契約を保有し続けることになります。

したがって、システムは以下を追跡します。

*各サイドの保有数量 両方の結果の平均コスト すでに保護されている在庫のコスト ペアになっていない方向性ポジションのサイズ 2番目のサイドを待つために許容される最大時間*

一部のボットは、より小さなブロックで構造を構築します。

100 の Down を購入し、100 の Up を追加できるまで待ち、最初の保護ペアを完成させ、その後でのみサイズを増やし続けるかもしれません。

これにより、最大潜在リターンは減少しますが、大きな片側ポジションを抱えるリスクも制限されます。

時間的アービトラージは、双方向に意味のある動きがいくつかあるマーケットで最も効果を発揮します。

長期にわたる一方向の動きは、最も困難な環境です。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@garvy?via=dan-kwpx

3️⃣ 在庫マーケットメイキングボット

このシステムは、単一のポジションを管理するのではありません。契約の在庫全体を管理します。

以下のように取引する可能性があります。

*BTC、ETH、SOL 5分、15分、1時間、4時間のマーケット 複数のウィンドウにわたる Up と Down の両方*

ボットは少量を売買しながら、在庫の総コストを継続的に追跡します。ある契約の両サイドを蓄積したとします。満期近くになり、Down が明らかな本命となり、98¢ まで上昇しました。

単に結果を待つのではなく、ボットは以下のことを行うかもしれません。

*高くなった Down 在庫の一部を売却する 決済前に資本を解放する メインポジションの残りを保持する 2¢ で少量の Up を購入する 利用可能な資本を別のマーケットに移動する*

低価格のサイドを購入することは、最初は異例に見えるかもしれません。

しかし、1~2¢ の小さなポジションは、突然の最終的な動きに対する安価な保護として機能します。何も変わらなければ、コストは限定的です。ビットコインが予想外に開始レベルを超えた場合、小さな Up ポジションが他の場所での損失の一部を相殺することができます。

在庫ボットは、関連マーケット間の差異も活用できます。

ある契約は良いエントリー価格を提供するかもしれません。別の契約は出口のためのより深い流動性を提供するかもしれません。3つ目の契約は、異常に低い価格で反対側を提供するかもしれません。

主な課題は、在庫全体の平均コストです。

平均 Up コストが 56¢ で、平均 Down コストが 49¢ の場合、保護されたペアのコストは 1.05 ドルになります。

結果確定時の支払いは 1 ドルだけです。

この 5 セントの差を埋めるために、システムは、高くなった在庫の売却、管理された方向性不均衡の維持、メーカーリベートの獲得、またはマーケット間での資本のより効率的な移動による追加の利益を必要とします。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@polkadot-frog?via=dan-kwpx

4️⃣ ヘッジ付き方向性ボット

この構造は、純粋なアービトラージと完全な方向性ポジションの中間に位置します。

ボットが以下を保有しているとします。

*280 Up 257 Down*

最初の 257 の Up と 257 の Down は保護ベースを形成します。最終結果に関係なく、このブロックの一方の側は 257 ドルを支払います。残りの 23 の Up 契約は方向性バイアスを生み出します。

Up が最終結果になった場合、これらの追加契約は支払額を増やします。Down が最終結果になった場合、反対側のポジションがエクスポージャーの大部分をカバーします。

このシステムは事実上、次のように述べています。

私のモデルは現在 Up を支持しているが、ポジション全体を1つの結果に依存させたくない。

不均衡のサイズは、マーケットを通じて変化する可能性があります。確信が高まると、ボットは Up を追加します。シグナルが弱まると、Up を減らすか、追加の Down を購入します。

両方のサイドを保有することは、自動的に構造を効率的にするわけではありません。

保護されたペアが 1 ドルを超えて構築された場合、それらは保証されたマイナスのマージンを生み出します。

平均ペアコストが 1.04 ドルだとします。追加の 23 の Up 契約は、まず保護ベースの損失を、手数料やスリッページとともに回復しなければなりません。

その後でのみ、ポジション全体が利益を生むようになります。

場合によっては、高価なヘッジは、より小さな方向性ポジションを維持するよりも効率が悪いことがあります。

Daniro - inline image

ウォレットリンク: https://polymarket.com/@uuddlrlr?via=dan-kwpx

5️⃣ 後半結果確定キャプチャーボット

最後のモデルは、マーケットのクロージング段階にほぼ完全に焦点を当てています。

一方の結果が確定に近づくと、可能性の高い最終的な側は依然として 98~99¢ で取引されている可能性があります。ボットは残りの利用可能な出来高を購入し、1 ドルの支払いを待ちます。

例えば:

*エントリー価格 98.6¢ 支払額 1 ドル 粗利益 - 契約あたり 1.4¢*

各操作からのリターンは小さいため、システムは多数のマーケットをスキャンし、大量の出来高を使用します。

この戦略は非常に予測可能に見えるかもしれませんが、そのリターンプロファイルは非常に不均一です。

99 の操作がそれぞれ 1 セントを生み出し、1 つの 99¢ のポジションが誤って解決された場合、それまでの利益は消滅する可能性があります。

その1回の誤った実行は、以下に起因する可能性があります。

*最終瞬間の急激な値動き 価格フィード間の差異 誤った開始レベル 遅延した結果確定の更新 市場ルールの誤解 注文が長時間アクティブのままだったこと*

したがって、後半結果確定システムにはスピード以上のものが必要です。

どのフィードが結果を決定するか、そして現在の値が契約境界からどれだけ離れているかを正確に把握していなければなりません。

最終的なポジション構造はプログラムで分析できます。

python
1def inspect_position(
2 up_quantity,
3 down_quantity,
4 up_average_price,
5 down_average_price
6):
7 protected_pairs = min(
8 up_quantity,
9 down_quantity
10 )
11
12 directional_up = max(
13 up_quantity - down_quantity,
14 0
15 )
16
17 directional_down = max(
18 down_quantity - up_quantity,
19 0
20 )
21
22 pair_cost = (
23 up_average_price
24 + down_average_price
25 )
26
27 return {
28 "protected_pairs": protected_pairs,
29 "extra_up": directional_up,
30 "extra_down": directional_down,
31 "average_pair_cost": pair_cost,
32 "pair_margin": 1 - pair_cost
33 }
34
35position = inspect_position(
36 up_quantity=280,
37 down_quantity=257,
38 up_average_price=0.51,
39 down_average_price=0.46
40)
41
42print(position)

しかし、最終的なスナップショットだけでは、完全な戦略は明らかになりません。

システムを理解するには、ポジションがどのように構築されたか、どの部分が売却されたか、そして平均コストが時間とともにどのように変化したかを知る必要があります。

6. 誤った価格設定を見つけるだけでは不十分 — ボットはそれを捉えなければならない 🎯

ボットが Up と Down を合計 94¢ で購入する機会を見つけたとします。両方の注文を出します。Up は完全に約定します。

Down が約定する前に、市場が動き、利用可能な流動性が消え、2番目のサイドがより高価になります。

アービトラージはもはや存在しません。

ボットは現在、オープンな方向性 Up ポジションを保持しています。

これが在庫リスクです。

優れたシステムは、異常な価格を特定するだけでは不十分です。執行プロセス全体を管理しなければなりません。

以下を決定する必要があります。

*2番目のサイドをどれだけ待つか いつ指値注文を調整するか どの程度の不均衡が許容されるか いつメーカーとして留まり、いつテイカーとして執行するか エッジが消えた後、最初のサイドを減らすかどうか*

これを処理する1つの方法は、Avellaneda–Stoikov モデルに触発されたロジックを使用することです。

中心的なアイデアは単純です。許容可能なクォートは、すでに保有している在庫に基づいて変化するべきです。

簡略化された式は次の通りです。

リザベーションプライス = 公正価格 − 在庫 × リスク × ボラティリティ² × 時間

python
1def reservation_price(
2 fair_price,
3 inventory,
4 risk_aversion,
5 volatility,
6 time_remaining
7):
8 inventory_adjustment = (
9 inventory
10 * risk_aversion
11 * volatility ** 2
12 * time_remaining
13 )
14
15 return fair_price - inventory_adjustment
16
17quote = reservation_price(
18 fair_price=0.57,
19 inventory=0.40,
20 risk_aversion=0.80,
21 volatility=0.18,
22 time_remaining=0.25
23)
24
25print(f"在庫調整後のクォート: {quote:.3f}")

ボットがすでに Up を保有しすぎている場合、追加の Up を購入することに消極的になるべきです。

同時に、不均衡を減らすために Down を取得する際には、より積極的になることができます。

注文タイプも重要です。

GTC

* は約定またはキャンセルされるまでアクティブのまま *

GTD

* は指定された時間に失効する *

FOK

* は全量約定するかキャンセルされる *

FAK

* は利用可能な量を約定し、残りをキャンセルする *

Post-only

は注文が流動性を追加することを保証する

5分間のマーケットでは、執行の質が初期の予測よりも重要になることがあります。

モデルが適正価格を正しく推定しても、ポジション構築が遅すぎたり、非効率な平均価格で行われたりすると、損失を出す可能性があります。

7. 最終レイヤーはポジションサイジングと資本保護 🛡

強力なエッジがあっても、利用可能な全資本を一つの市場に割り当てることは正当化されません。

常に以下の可能性があります:

*モデルがシグナルを過大評価した セカンドサイドが約定しない 流動性が消失する 平均約定価格が想定より悪い 複数の相関ポジションが同時に値を下げる*

ポジションサイジングの一般的な出発点は Kelly 基準です。

計算式は次の通りです:

f = (b × p − q) ÷ b

\*

ここで:

p

* は成功確率 *

q = 1 − p

* は失敗確率 *

b

* はリスクに対する純ペイアウト比率 *

f

\ はフル Kelly 資本割合*

実際には、多くのシステムは結果の一部のみを使用します。

python
1def fractional_kelly(
2 win_probability,
3 entry_price,
4 fraction=0.25
5):
6 lose_probability = 1 - win_probability
7
8 net_odds = (
9 1 - entry_price
10 ) / entry_price
11
12 full_kelly = (
13 net_odds * win_probability
14 - lose_probability
15 ) / net_odds
16
17 return max(
18 full_kelly * fraction,
19 0
20 )
21
22allocation = fractional_kelly(
23 win_probability=0.61,
24 entry_price=0.50,
25 fraction=0.25
26)
27
28print(f"Capital allocation: {allocation:.2%}")

フラクショナル Kelly は、一つの不正確なモデル推定や劣悪な執行が戦略に大きなダメージを与える可能性を低減します。

システムはその後、ハードリミットを適用します:

*ポジションあたりの最大サイズ 資産あたりの最大エクスポージャー ヘッジされていない在庫の制限 1 日の損失制限 データが信頼できなくなった場合の緊急シャットダウン*

相関性も重要です。

BTC 5 分足、BTC 15 分足、ETH 5 分足、SOL 5 分足は別々の市場に見えますが、暗号資産全体の大きな値動きの際には、同時に値を下げる可能性があります。

リスクマネージャーの役割は、魅力的な機会すべてのサイズを最大化することではありません。

その役割は、一つのシナリオがシステムの継続運用能力を奪うことがないようにすることです。

8. 完全なボットスタックの全体像 ⚙️

現代の Polymarket ボットは、Binance と Up 価格を比較する単一の Python スクリプトではありません。

通常、複数のレイヤーで動作します。

レイヤー 1 - 市場データ

外部価格、公式解決フィード、リアルタイムオーダーブック、最新の約定、そしてボット自身の注文ステータス。

レイヤー 2 - シグナル

価格変動、出来高、ボラティリティ、板の不均衡、関連市場間の乖離。

レイヤー 3 - 確率

モデルは、意味のある新しい情報が到着するたびに適正確率を更新します。

レイヤー 4 - ポジションロジック

システムは、ローテーション、時間的裁定、在庫管理、方向性ヘッジ、または遅延解決執行のいずれかを選択します。

レイヤー 5 - 執行とリスク

注文は発注、キャンセル、調整され、在庫とポジションサイズは事前定義された制限内に維持されます。

レイヤー 6 - リサーチ

Claude を使用して取引履歴を分析し、繰り返し発生する構造を特定し、バックテストを作成し、失敗した取引サイクルを研究します。

高レベルのループは次のようになります。

python
1async def run_bot():
2 while True:
3 state = await receive_market_update()
4
5 signal = build_signal(state)
6 probability = update_probability_model(
7 state,
8 signal
9 )
10
11 edge = scan_for_edge(
12 state,
13 probability
14 )
15
16 if not edge["tradable"]:
17 continue
18
19 position_plan = choose_position_model(
20 state,
21 edge
22 )
23
24 orders = build_execution_plan(
25 state,
26 position_plan
27 )
28
29 if risk_manager_approves(
30 orders,
31 state
32 ):
33 await send_orders(orders)

Claude は、数百万の過去の約定の中でどの構造が繰り返されるかを特定するのに役立ちます。

しかし、低レイテンシの取引ループ自体は決定論的であるべきです。データを受信し、ルールを適用し、制限を確認し、注文を送信する。

結論:収益を上げるボットは、Up か Down を選ぶだけではない

短期間の市場は、単純な方向性契約のように見えます。

収益性の高いシステムは、はるかに長いシーケンスを実行します:

*新しいシグナルを受信する それを確率に変換する ネットエッジを確認する 関連市場を比較する ポジション構造を選択する 執行を管理する リスクを制限する*

一部の ボット は、同じウィンドウ内で Up と Down を複数回ローテーションします。別のボットは、異なるタイミングで両サイドを蓄積します。複数の時間枠にわたって大量の在庫を管理するものもいます。小さな方向性バイアスを伴う保護されたベースを維持するものもいます。

さらに別のグループは、解決直前に残った価格差を捉えることに焦点を当てています。

しかし、核となる計算式は通常似ています:

*信頼できるデータ 独立した確率推定 コスト後のエッジ 適切なポジション構造 正確な執行 管理されたリスク*

これらの ボット は、ビットコインが 5 分後にどこにあるかを知っているわけではありません。

彼らは単に、それぞれの可能な結果が今現在いくらの価値があるべきかを計算するのがより速いだけです。

記事をご覧いただきありがとうございます。フィードバックをいただければ幸いです!

X でフォローしてください✌️: https://x.com/Dan1ro0

詳細は Telegram に参加してください✍️: https://t.me/+VDXq5wkZ2AIxMDBi

ワンクリック保存

YouMindでバイラル記事をAI深読み

ソースを保存し、的を絞った質問をし、主張を要約して、バイラル記事を再利用できるノートに変えます。すべてを1つのAIワークスペースで行えます。

YouMindを探索
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る