トレードでは「期待値が大事」とよく言われますが、実際に自分のルールで資金がどう推移するのかを事前にイメージするのは簡単ではありません。
そこで、自分が日常的に使える資金管理シミュレーターをJavaScriptだけで作成しました。
完成したものはこちらです。
👉 https://www.nyaofxlife.com/funding_simlutor/
今回は、その開発内容と実装でハマったポイントを紹介します。
作ろうと思った理由
元々はスプレッドシート版のシミュレーターを使っていました。
ただ使っていく中で、
ファイルを探すのが面倒
PCごとに環境が変わる
スマホからも使いたい
と感じるようになり、「ブラウザだけで完結する形」に作り直すことにしました。
使用技術
今回のシステムは非常にシンプルです。
HTML
CSS
JavaScript
バックエンドは使わず、すべてブラウザ内で完結する構成にしています。
そのため、入力データはサーバーに送信せず、その場でシミュレーションを実行します。
一番苦労したこと① 金額ベースと割合ベースの切り替え
資金管理には大きく2つの考え方があります。
1回あたり固定金額でリスクを取る方法
資金の◯%でリスクを取る方法
一見すると単純な違いですが、実装すると資金の増減に応じてリスク量が変化するため、計算ロジックを切り替える必要があります。
特に割合ベースの場合は複利的に資金が変化するため、シミュレーション結果の曲線も大きく変わります。
この違いを自然に扱えるようにする設計が一番のポイントでした。
一番苦労したこと② PDF出力(データ制御)
PDF出力は今回もっとも調整に時間がかかった部分です。
単純に画面をPDF化するだけであれば難しくありませんが、このツールでは「シミュレーション結果を1つのレポートとして出力する」必要がありました。
そのため、単なる表示ではなくデータを整形してPDFに描画しています。
しかし、この過程でいくつか想定外の挙動が発生しました。
■ 300回分のシミュレーションが分割される問題
本来は1つのレポートとしてまとめたいにもかかわらず、
1回ごとにPDFが分割される
意図しないタイミングで改ページされる
といった現象が発生しました。
これはループ処理とPDF生成ロジックの対応がズレていたことが原因でした。
■ 一部データしか出力されない問題
逆に、条件によっては
最初の数回分しかPDFに出力されない
残りのデータが欠落する
といった問題も起きました。
これは描画タイミングとデータバインドの順序が原因で、処理フローを見直すことで解決しました。
このあたりは「画面表示の問題」ではなく、
「データ生成と出力処理の整合性」の問題だったため、原因の特定に少し時間がかかりました。
お気に入りの機能
一番気に入っているのはPDF保存機能です。
条件を少しずつ変えながら、
リスクリワード
勝率
リスク率
などを比較することが多いため、結果を保存して見返せるのはかなり便利です。
シミュレーションは一度で終わるものではなく、複数パターンを比較して初めて意味が出ると感じています。
作ってみて感じたこと(期待値の話)
このツールの本質は「資金が増える未来を予測すること」ではありません。
むしろ重要なのは、
期待値通りにトレードを続けた場合に、どの程度のドローダウンが発生し得るのかを事前に理解すること
です。
数字で未来を当てるのではなく、「起こり得る現実を先に把握する」ためのツールだと考えています。
その結果として、必要以上に焦らずトレードに向き合えるようになります。
まとめ
今回の開発を通して感じたのは、「自分が本当に使いたいもの」を作ると、細かい部分まで自然とこだわるようになるということです。
最初は自分用のツールとして作り始めましたが、同じように資金管理で悩む人の役に立てばと思い公開しています。
期待値を理解しているかどうかで、資金の見え方はかなり変わります。
実際に数字で確認してみると感覚が変わると思います。

