mcpField
T
trader-timemachine

trader-timemachine

github.com/jakeschincariolデータ・データベース2.6k116 回インストール1 週間前に更新
リポジトリ

trader-timemachine について

trader-timemachineは、日中取引の計画を直近の5分足で再生し、同じルールの過去の実績と比較するスキルです。確率と評価を示しますが、予測や注文は行いません。

主な機能

  1. 01計画を再生し結果の確率を算出
  2. 02直近の5分足に基づくシミュレーション
  3. 03過去の取引日でルールを検証
  4. 04価格帯、平均R、評価を出力
  5. 05オフラインデータ、JSON、チャートに対応

活用シーン

  1. 01注文やポジション計算前のシナリオ確認
  2. 02シミュレーションと過去実績の比較
  3. 03指定した退出時刻までの取引をシミュレーション
  4. 04結果の保存とチャート表示

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jakeschincariol/day-trader-skill --skill trader-timemachine

インストール後、Claude Code で/trader-timemachineを入力して読み込まれたか確認します。

同梱ファイルtimemachine.py

詳細

trader-timemachine

タイムマシンは、計画と資金の間に位置します。trader-exit がエントリー、ストップ、ターゲットを設定します。ポジションサイズを決めたり、注文を出したりする前に、このスキルはひとつの問いを投げかけます。今日の値動きがその銘柄の直近 60 日間と同じように推移した場合、この計画はどのくらいの頻度で、先にターゲットに到達するのか、ストップに到達するのか、あるいはどちらにも到達しないのか。10,000 回のリプレイと、過去の各取引日に同じルールを適用した実績から答えます。これは銘柄自身の最近のバーをもとにしたシミュレーションであり、予測ではありません。デイトレードで大半の人は損をします。見栄えのよいリプレイをしても、その事実は変わりません。

以下の ${CLAUDE_SKILL_DIR} は、このスキルのフォルダー(SKILL.md がある場所)です。

python3 "${CLAUDE_SKILL_DIR}/timemachine.py" run                    # trader/plan.json, 10,000 replays, seed 19
python3 "${CLAUDE_SKILL_DIR}/timemachine.py" run --write            # also save trader/timemachine.json
python3 "${CLAUDE_SKILL_DIR}/timemachine.py" run --until 15:55      # end each replay at your flat-by time
python3 "${CLAUDE_SKILL_DIR}/timemachine.py" run --json
python3 "${CLAUDE_SKILL_DIR}/timemachine.py" run --symbol TSLA --date 2026-10-19 \
    --entry 364.18 --stop 358.32 --target 370.04 --entry-time "10:15 AM"
python3 "${CLAUDE_SKILL_DIR}/timemachine.py" chart --from           # ASCII fan chart of the saved run

その他のフラグ:--replays N、--seed N(デフォルトは 19)、--window N(デフォルトは 2 バー)、--offline FILE(保存済みの Yahoo chart JSON、.json または .json.gz)、--now "2026-10-19 10:15"(ニューヨーク時間)で時刻を指定できます。

読み書きする内容

ファイル内容
trader/plan.jsontrader-exit の計画:シンボル、日付、エントリー、entry_time / entry_bar、ストップ、stop_rule、ターゲット、target_r、オープニングレンジ
Yahoo chart APIリクエスト 1 回:5 分足バーの 60 日分(range=60d&interval=5m)。無料かつ非公式で、遅延することがあります
trader/timemachine.json--write を指定した場合:判定結果に加えて {plan, mc, history} を保存します。mc には、オッズ、パーセンタイル、ファンチャートの帯、160 本のサンプルパス、終値の 24 ビンヒストグラムが含まれます

仕組み

  1. 対象データ。 プランの日付より前にあるFULLセッションのみを対象にします。ニューヨーク時間の9:30から16:00までの5分足がすべてそろった78本です。短縮取引日、欠損のある日、当日は除外します。各足を、その前の足の終値に対する比率(始値、高値、安値、終値)に変換します。
  2. リプレイ1回分。 エントリー価格から開始します。その日の残りの各足について、同じ時間帯(前後2本まで)の過去の足をランダムに選び、現在の価格に合わせてスケーリングします。足ごとに、まずストップ、次にターゲットを確認します。両方に触れた足はストップとして数えます。
  3. 10,000回のリプレイから4つの確率を算出します。ターゲットが先、ストップが先、どちらにも達しない場合(--until時点でも取引が継続中だったことを意味します。デフォルトは16:00、終値、またはNYSEの短縮取引日の13:00です)、そしてプラスの場合(ターゲットが先に達したか、--until時点でエントリー価格を上回っていることを意味します)です。Rは、1Rのターゲットで+1、ストップで-1、それ以外の場合は--until時点のエントリー価格からの値幅をリスクで割った値です。ストップを飛び越えるギャップがあっても、ここでは-1Rとして数えます。実際の約定では、これより悪い結果になる可能性があります。
  4. 過去の実績。 プラン独自のルール(同じオープニングレンジ、ストップルール、目標R)を、過去の各セッションで再度実行します。これはシミュレーションではなく、実際に起きたことです。
  5. 判定は、数値から導いた1行です。どちらか一方に達したリプレイだけを対象に、ターゲットが先に達した頻度を確認します。ターゲットが大きいほど、損益分岐に必要な勝率は低くなります。1 / (1 + R)です。1Rでは50%、2Rでは33%、3Rでは25%です。損益分岐点との差が5ポイント未満なら、1Rでは「五分五分に近い」、それ以外のRでは「損益分岐点に近い」となります。差が5~15ポイントなら「ターゲット寄り」または「ストップ寄り」、15ポイント以上なら、どちらかに「大きく傾いている」となります。つまり、ターゲットが先に達した割合が24.1%、ストップが先に達した割合が50.5%の2Rプランは、損益分岐点に近いということです(どちらか一方に達した74.6%のうち33%が必要で、実績は32%)。負けるプランではありません。
  6. 判定の下には、該当する場合に次の行が表示されます。リプレイの40%超でどちらにも達しなかった場合の行(その場合は--until時点の価格で結果が決まります)、および平均Rの符号が傾向と逆の場合の行です。これらが逆方向を示すのは、どちらにも達しなかったリプレイがある場合に限られます。

シード値。 抽選にはPythonのrandom.Random(seed)を使用します。デフォルトのシード値は19です。同じプラン、同じデータ、同じシード値なら、どのマシンでも同じ数値になります。ユーザーが再現できるよう、結果を伝える際には必ずシード値も伝えてください。

5分足のみ。 Yahooには5分足が60日分ありますが、1分足は約7日分しかなく、公平な対象データとしてはセッション数が足りません。完全なセッションが20日未満の場合、エントリー足がデータに含まれない場合(日付の誤り、足がまだ確定していない、未来の日付)、またはプランが妥当でない場合(買いのエントリー価格よりストップが高い、エントリーが5分足のグリッド上にない)には、平易な1行のメッセージを出して処理を拒否します。進行中の足は使用しません。

手順

  1. trader/plan.jsonが/trader-exitから取得した今日のプランであることを確認します。プランがない場合は、先にそれを実行するか、フラグでプランを渡します。
  2. timemachine.py run --writeを実行します。プランに手仕舞い時刻がある場合は--until 15:55を追加し、「どちらにも達しない」が、手仕舞い予定時刻になってもポジションが継続中であることを意味するようにします。
  3. ユーザーには、次の順番で伝えます。4つの確率、終値の中央値と5~95パーセンタイルの範囲、平均R、過去の実績の行、その後に判定の行と、その下にある行を、出力どおりに伝えます。シード値も伝えてください。
  4. 判定が五分五分、または損益分岐点に近い場合は、明確にそう伝えます。良く見せようとしてはいけません。過去の実績とリプレイの結果が一致しない場合も、そのことを伝えてください。
  5. これは直近60日分のデータに基づくもので、予測ではないことを1度伝えます。決算、ニュース、取引停止によって、この60日間にはなかった動きが起きる場合があります。次に進む前に、その銘柄について/trader-newsを確認してください。
  6. それでもユーザーが取引を希望する場合は、ポジションサイズの算出のため/trader-budgetに引き継ぎます。

例:リール

TSLA、2026-10-19(月)。15分間のオープニングレンジは354.47~362.18です。 10:10のバーがこの範囲を上回って引けています。エントリーは午前10:15(バー8)の364.18、ストップは358.32 (レンジの中央値を切り捨て)、ターゲットは370.04(1R、1株あたりのリスクは5.86)です。

10,000 replays of the rest of the session, 10:15 AM to 4:00 PM (69 five-minute bars), seed 19.
  target first   29.4 %
  stop first     25.5 %
  neither        45.1 %   still open at 4:00 PM
  green          51.7 %   target first, or above the entry at 4:00 PM
  Price at 4:00 PM: median 364.36, 90 % of replays between 355.54 and 373.54.
  Average R: +0.034
History: the same rule on each of those 59 real sessions fired 33 times:
13 target, 15 stop, 5 neither. Average R -0.062.
Close to a coin flip: target first 29.4 % vs stop first 25.5 %.
45.1 % of the replays hit neither by 4:00 PM; the price at 4:00 PM decides those.

1Rでは、どちらか一方に到達したリプレイの半数で、ターゲットが先に到達する必要があります。実際は53.6 %でした。 リプレイの結果はコイントスに近く、実際の履歴は五分よりわずかに悪い結果でした。このセットアップについての正直な答えがこれであり、ユーザーは /trader-budget で8株の数量を算出する前に、この答えを知るべきです。

ルール

  • すべての数値は実行結果から取得します。コイントスの結果を切り上げて優位性があることにしないでください。
  • 判定行とその下の行はツールが出力したものです。書き換えず、そのまま繰り返してください。ターゲット到達とストップ到達のどちらが先かだけで、2Rまたは3Rのプランを判断しないでください。判定では、ターゲットのRがすでに考慮されています。
  • シミュレーション上のオッズは予測でも約束でもありません。そのことを一度、明確に伝えてください。
  • 無料のYahooデータは非公式で、遅延する場合があります。バーは5分足です。ティックごとやリアルタイムではなく、バーごとに確認します。
  • どの実行でも、再実行できるようにシードを必ず伝えてください。
  • 1回の実行につきプランは1つです。エントリー、ストップ、ターゲット、または日付を変更した場合は、新たな実行になります。

決して行わないこと

注文の発注、ポジションサイズの算出、プランの変更は行わず、結果を確実なものとは決して言いません。損益や利益は一切出力しません。 まだ確定していないバーは使用せず、当日のバーをデータプールに混ぜることもありません。

安全性

  • 金融アドバイスではなく、教育およびツールの提供を目的としています。PASSはルールの確認結果であり、推奨ではありません。
  • デフォルトではペーパートレーディングです("paper": true)。実取引を行うかどうかは、ユーザー自身が自身の設定に基づいて決定します。
  • trader-brokerを除き、このパックの機能が注文を発注することはありません。trader-brokerも、次の3つすべてを満たす場合に限ります。trader-riskがその日の当該注文を承認していること、ユーザーがチャットでその注文について明示的に「はい」と入力したこと、そして注文ツールが「承認が必要」に設定されているため、ユーザーがClaudeのカード上で一度「許可」をクリックしたこと(Customize > Connectors > tool permissions)。注文ツールを「常に許可」に設定しないでください。
  • 設定で許可され、ユーザーが確認した場合を除き、オプション取引、証拠金取引、空売り、またはレバレッジは行いません。
  • ブローカーのキーは環境変数またはClaude Desktopの設定に保存し、チャットには決して記載しないでください。

コメント