こんにちは、よだかです。
最近、『世界はシステムで動く(ドネラ・H・メドウズ著)』という本を読みました。
本書はシステム思考を学ぶための定番書として知られていますが、
botterである私にとっては、
「マインドセット」よりも「botの設計や構造を見直す視点」が得られた一冊でした。
最近、私は状態遷移型のトレードbotを開発しています。
その文脈で本書を読むと、
botのロジック単体ではなく、
botと市場を含めた“システム全体”をどう捉えるか、という点で多くの示唆がありました。
本記事では、
本書の内容そのものの整理に加えて、
私自身がどの点に価値を感じ、
それを現在のbot開発にどう繋げているのかを中心にまとめていきます。
※今回取り上げている『世界はシステムで動く』は、
いわゆる投資本ではありませんが、
botやシステムを「構造」として考えたい人には一読の価値がある一冊だと思います。
(私は紙の書籍で読みました)
Ⅰ. なぜこの本をbotterの文脈で読んだのか
トレードbotを作っていると、ある段階で必ず立ち止まる瞬間があります。
ロジックはそれなりに動いている。
指標も増えた。
ログも取っている。
それでも、「じゃあ、このbotは本当に何をしているんだろう?」という感覚が消えない。
私自身、しばらくのあいだ
- シグナルの精度を上げる
- パラメータを調整する
- 条件分岐を増やす
といった、いわば botの内部 にばかり意識を向けていました。
もちろん、それらは必要な作業ですし、無駄だとも思っていません。
ただ、どこかで
「これは本当に“設計”をしていると言えるのだろうか?」
という引っかかりがありました。
botはロジックの集合体なのか?
トレードbotは、コードとして見ればif文の集合です。
しかし、実際に相手にしているのは
市場という、極めて複雑で巨大な外部システムです。
その市場に対して、
- いつ参加し
- どんな形で影響を受け
- どのタイミングで離脱するのか
という振る舞い全体を考えないまま、
「ロジックだけを賢くしよう」としていたのではないか。
そんな疑問が強くなってきました。
言い換えると、
bot単体ではなく、botと市場を含めた構造そのものを
一度ちゃんと捉え直したい、と思ったわけです。
システム・トレーダーとしての違和感
私はbotterであると同時に、
広い意味ではシステム・トレーダーでもあります。
システム・トレードという言葉が示すように、
本来ここで扱っているのは
「個々の判断」ではなく「仕組み」です。
それにもかかわらず、
自分の関心が
- この指標が効くか
- この閾値は適切か
といった 局所的な話 に寄りすぎている気がしていました。
おそらく、多くのbotterが一度は通る段階だと思います。
ロジックは書けるようになった。
でも、「全体像」が掴めている感じがしない。
「設計の言葉」が欲しかった
そんなときに手に取ったのが
世界はシステムで動く でした。
正直に言うと、
最初から「トレードに使えそうだ」と確信していたわけではありません。
ただ、
- システムとは何か
- 振る舞いは何によって決まるのか
- 部分ではなく全体を見るとはどういうことか
こうした問いに、
設計の言葉を与えてくれそうな気がした。
botの性能を上げるためというより、
botをどう捉え、どう設計しているのかを整理するために
読んでみよう、という位置づけでした。
期待していたもの、実際に得られたもの
結果として、
本書はいわゆる「やる気が出る本」ではありませんでしたし、
トレードの勝ち方が直接書いてあるわけでもありません。
ただし、
- botと市場の関係を
一段引いた視点から眺められるようになったこと - 「ロジックを改良する前に考えるべき問い」が
はっきりしたこと
この2点は、
今の自分にとってかなり大きな収穫でした。
次の章では、
本書の内容をあらためて整理しつつ、
その中で特にbot開発と相性が良いと感じたポイントを見ていきます。
Ⅱ. 本書の要点整理
世界はシステムで動く は、
「システムとは何か」を専門用語や数式に頼らず説明することを目的とした本です。
ここでいうシステムとは、
機械や組織だけでなく、
社会・経済・生態系などを含む、
相互に影響し合う要素の集まりを指しています。
本書の中で繰り返し語られるポイントを、
bot開発の文脈から一度切り離し、
まずはそのまま整理してみます。
※以下は、本書を読みながら私が作成したマインドマップです。
まずは全体像を俯瞰したうえで、要点を整理していきます。

システムは「要素」ではなく「挙動」で理解するもの
メドウズは、
システムを理解する際に
個々の要素や部品を細かく見ることよりも、
時間の中で、システムがどのように振る舞うか
を見ることが重要だと述べています。
同じ構成要素を持っていても、
- つながり方
- 反応の速さ
- フィードバックの向き
が違えば、
まったく異なる挙動を示す。
問題は要素そのものではなく、
構造と振る舞いの結果として現れる、
というのが本書の基本的な立場です。
ストックとフローという考え方
本書の中核となる概念の一つが
ストックとフローです。
- ストック:
ある時点で「溜まっている量」 - フロー:
ストックを増減させる「流れ」
重要なのは、
多くの現象はフローだけを見ても理解できず、
ストックの存在によって挙動が決まるという点です。
また、
ストックがあることで
- 反応が遅れる
- 変化が滑らかになる
- 意図しない振る舞いが生じる
といった特徴が生まれます。
フィードバックループが振る舞いを決める
システムの挙動を形作る要素として、
本書ではフィードバックループが強調されます。
代表的なのは次の2種類です。
- バランス型フィードバック
変化を打ち消し、安定に向かわせる働き - 自己強化型フィードバック
変化を増幅させ、加速させる働き
システムの多くの振る舞いは、
これらのフィードバックが
単独、あるいは組み合わさって生じています。
特に自己強化型のループは、
一見すると無限に成長し続けるように見えますが、
実際にはどこかで制約にぶつかり、
挙動が変わる点も指摘されています。
時間遅れが誤解を生む
本書では、
**時間遅れ(ディレイ)**の存在も重要な要素として扱われます。
- 原因と結果の間に時間差がある
- そのため、正しい行動をしていても
すぐに結果が見えない - 結果として、過剰な調整や誤った介入が起きる
システムが直感に反した振る舞いをする理由の多くは、
この時間遅れにあるとされています。
レバレッジポイントという視点
メドウズは、
システムに介入する際の「効きやすさ」を
レバレッジポイントという概念で整理しています。
一般に直感的に思いつきやすい
- 数値の調整
- パラメータ変更
は、レバレッジとしては低い位置づけです。
一方で、
- 情報の流れ
- ルール
- 目的や前提
といった構造的な要素は、
少しの変更でも
システム全体の振る舞いを大きく変える可能性があります。
人間の理解には限界があるという前提
本書の後半では、
システムを扱う人間側の限界についても触れられます。
- 人間のメンタルモデルは不完全である
- 複雑なシステムを完全に把握することはできない
- その前提に立って、慎重に介入すべきである
システム思考は
「すべてを理解して制御する」ための道具ではなく、
誤りに気づきやすくするための補助線として提示されています。
要点のまとめ
本書を通して一貫しているのは、
- システムは部分の集合ではない
- 振る舞いは構造から生まれる
- 介入の仕方次第で結果は大きく変わる
という考え方です。
次の章では、
これらの内容のうち、
私自身がbot開発の文脈で特に価値を感じた
「つながりを見る」という視点について掘り下げていきます。
Ⅲ. 読んで一番刺さったのは「つながりを見る」という視点
本書を読み進める中で、
いくつもの概念や言葉が出てきますが、
個人的に一番強く残ったのは
**「つながりを見る」**という視点でした。
要素を見るのではなく、
挙動を見る。
数値を見るのではなく、
構造を見る。
その中でも、
「つながり」という言葉が、
今やっているbot開発と
最も強く結びついた感覚があります。
botのロジックばかりを見ていた、という気づき
トレードbotを作っていると、
どうしても意識は botの内部 に向きがちです。
- どの指標を使うか
- どの条件でエントリーするか
- 閾値は適切か
これらはすべて、
botの中身としては重要な要素です。
ただ、本書を読みながら振り返ってみると、
自分は長いあいだ
「bot単体」を一生懸命見ていた
のだと気づきました。
botは市場に対して何をしているのか。
市場はbotに対してどう振る舞っているのか。
その 相互作用 を、
ちゃんと一つの構造として捉えられていたかというと、
正直あやしい部分がありました。
botと市場は、切り離せない一つのシステム
世界はシステムで動く では、
システムを
要素
それらのつながり
目的あるいは機能
の組み合わせとして定義しています。
この定義を
そのままトレードbotに当てはめてみると、
違和感がはっきりします。
botは市場の外にある存在ではなく、
市場に参加した瞬間に、その一部になる。
エントリーすれば、
板や約定の流れに影響を与える。
エグジットすれば、
その影響は消える。
つまり、
botと市場を別々に考えること自体が、
すでに構造を見誤っている可能性がある。
そう腑に落ちました。
「何を見ているか」より「どうつながっているか」
本書を読む前は、
どこかで
「より良い指標を見つけること」
「より正確なシグナルを出すこと」
が前提になっていた気がします。
しかし、
システム思考の文脈では、
- 何を観測しているか
よりも - その観測が、
システムのどこに影響しているか
が重要になります。
同じ価格変動でも、
- 自己強化的な流れの中にあるのか
- バランスに戻ろうとする動きの一部なのか
で、意味はまったく変わる。
botの役割も、
「当てること」ではなく、
どのフィードバックに関与しているのか
として捉え直す必要があると感じました。
つながりを見ると、設計の問いが変わる
この視点に立つと、
自然と問いが変わってきます。
- このbotは、
市場のどの動きとつながっているのか? - エントリーは、
どのフィードバックに参加する行為なのか? - エグジットは、
何とのつながりを断っているのか?
これらは
パラメータを微調整しても
答えが出る問いではありません。
むしろ、
botの構造や状態遷移そのものを
見直す必要がある問いです。
「つながり」を見る視点が、後の章につながる
本書を通して得た
「つながりを見る」という感覚は、
その後の
- ストックとフローの理解
- フィードバックループの捉え方
- 状態遷移型botへの納得感
すべての土台になりました。
次の章では、
この視点を踏まえたうえで、
ストックとフローという考え方が
なぜbotの挙動理解にしっくり来たのかを整理していきます。
Ⅳ. ストックとフローで見ると、botの挙動が急に説明できる
「つながりを見る」という感覚が腑に落ちたあと、
本書の中で扱われている
ストックとフローという考え方が、
急に具体的な意味を持ち始めました。
それまでは、
正直なところ
「なるほど、そういう見方もあるよね」
くらいの理解だったと思います。
しかし、
botの挙動をこの枠組みで見直してみると、
これまで言葉にできなかった違和感や納得感が、
かなり整理されていきました。
ストックとフローを、botの文脈に置き直す
本書で言うところの
- ストック:
ある時点で蓄積されている量 - フロー:
ストックを増減させる流れ
という定義を、
トレードbotの世界に当てはめてみます。
たとえば、
- 市場側のストック
- 板の厚み
- 流動性
- 偏りとして溜まった需給
- 市場側のフロー
- 約定
- 板の補充・消失
一方で、bot側にも明確なストックがあります。
- botのストック
- ポジション
- 保有時間
- 状態(どのフェーズにいるか)
- botのフロー
- エントリー
- エグジット
- 注文の発行・キャンセル
こうして並べてみると、
botは「判断を出す存在」というより、
ストックを持ち、フローに介入する存在
として見た方が自然だと分かります。
ENTRYは「判断」ではなく「フローへの介入」
この視点に立つと、
エントリーの意味が変わってきます。
エントリーとは、
未来を予測して賭ける行為というよりも、
市場のフローに対して、
自分のストックを差し込む行為
と捉えた方がしっくり来る。
どのフローに対して、
どのタイミングで、
どれくらいの大きさのストックを置くのか。
この問いは、
「当たるかどうか」ではなく、
構造として無理がないか
という観点に意識を向けさせてくれます。
EXITは「失敗」ではなく、ストックを引き上げる判断
同じように、
エグジットの意味も変わります。
従来はどこかで、
- 利確
- 損切り
といった結果論的なラベルで
EXITを見ていた気がします。
しかし、ストックとフローの視点では、
EXITはもっと単純です。
そのフローが、
もはやストックを支えられなくなった
あるいは、
想定していた流れとは
違うフローに移行した
だから、
そこに置いていたストックを回収する。
そう考えると、
EXITは敗北でも、逃げでもなく、
構造的に自然な行為として理解できます。
なぜ「走り始め」しか狙えないのか
この枠組みで市場を見ると、
なぜ自分が
「走り始め」や「初動」に注目しているのかも、
後付けではなく構造として説明できました。
自己強化的なフローが立ち上がる初期段階では、
まだストックが十分に残っている。
フローも一方向に揃いやすい。
一方で、
時間が経つにつれて、
- ストックは消費され
- フローは分岐し
- バランス方向の力が強くなる
そうなると、
新たにストックを置く理由は
急速に弱くなります。
「後追いは危ない」という感覚が、
単なる経験則ではなく、
ストックとフローの必然として理解できたのは、
大きな収穫でした。
botの挙動が「説明できる」感覚
この考え方を取り入れてから、
botの挙動を見たときに、
- なぜここでENTRYしたのか
- なぜこのEXITは早すぎた/遅すぎたのか
- なぜこの場面では何もしなかったのか
といった問いに、
以前よりも落ち着いて答えられるようになりました。
それは、
正解が分かったというよりも、
説明の軸が定まった
という感覚に近いです。
次の章では、
このストックとフローの理解を踏まえて、
状態遷移型のbotが
なぜ自分の中でしっくり来ているのかを整理していきます。
Ⅴ. なぜメンタルモデルの章はあまり刺さらなかったのか
本書の後半では、
システムを扱う人間側の問題として
メンタルモデルの特性についても触れられています。
人は複雑なシステムを正確に理解できない。
思い込みや単純化によって、
現実とはズレたモデルを頭の中に作ってしまう。
だからこそ、
自分の理解を過信せず、
慎重にシステムと向き合う必要がある。
この主張自体は、
とても重要で、
本書全体の思想とも一貫しています。
ただ、正直に言うと、
この章は
それまでの内容ほど強く刺さりませんでした。
内容に納得できなかったわけではない
まず前提として、
メンタルモデル関連の章に書かれていることに
違和感があったわけではありません。
むしろ、
- 人間の理解は不完全である
- 直感はしばしば裏切られる
- 複雑なシステムは思い通りに動かない
といった指摘は、
その通りだと思います。
ではなぜ、
あまり強い印象が残らなかったのか。
すでに「実務」で突き当たっていた問題だった
理由を振り返ってみると、
おそらく私はすでに
この問題に実務の中で何度もぶつかっていたからだと思います。
トレードbotを作っていると、
- 仮説は簡単に壊れる
- 「分かったつもり」はすぐ裏切られる
- 良さそうに見えたロジックが、
何の成果も出さない
といった経験を、
嫌というほどします。
結果として、
- 仮説は信じすぎない
- ログで確認する
- 数字で説明できないものは保留する
という姿勢が、
半ば強制的に身についていきました。
そのため、
本書で語られる
「人間の理解は当てにならない」という話は、
新しい気づきというより、
すでに経験として知っていたことの言語化
に近かったのだと思います。
bot開発では、メンタルモデルが矯正される
特にbot開発では、
人間の思い込みが
結果として非常にはっきり突き返されます。
- 思考が間違っていれば、
そのままログに出る - 良くない仮説は、
エントリー後の挙動として露呈する - 設計の甘さは、
例外や停止として表に出る
この意味で、
bot開発そのものが
メンタルモデルを壊し続ける作業
になっている側面があります。
だからこそ、
本書のこの章は
「なるほど」ではあるものの、
感情的なインパクトは小さかったのだと思います。
刺さらなかった=重要でない、ではない
ただし、
刺さらなかったからといって、
この章が重要でないとは思っていません。
むしろ、
- システムを扱う人間は必ず誤る
- その前提に立たない設計は危うい
というメッセージは、
bot開発においても
常に意識しておくべきものです。
おそらくこの章は、
これからシステム思考に触れる人ほど強く刺さる
部分でもあるのでしょう。
今の自分にとっての位置づけ
現時点での私にとって、
メンタルモデルの章は、
- 行動を変えるきっかけ
というよりも、 - すでに取っている態度の裏付け
として受け取った章でした。
この感覚も含めて、
読書のタイミングや立場によって
刺さる部分が変わる本なのだと思います。
次の章では、
本書の考え方と
現在取り組んでいる状態遷移型のbot設計が、
なぜ強く結びついたのかについて整理していきます。
Ⅵ. 状態遷移系botは、システム思考にかなり沿っている
本書を読み終えたあと、
自分がいま取り組んでいる
状態遷移型のトレードbotをあらためて眺めてみて、
ひとつはっきりしたことがあります。
それは、
この設計は結果的にではありますが、
システム思考の考え方にかなり沿ったものになっている
ということでした。
if文の集合ではなく、「挙動」を扱っている
状態遷移型のbotでは、
単に条件を満たしたら何かをする、
という書き方はしません。
- いまは観測のフェーズなのか
- 条件が揃いつつある段階なのか
- 実際に市場に参加している状態なのか
- それとも離脱すべき局面なのか
といったように、
botがどの状態にあり、
次にどこへ移ろうとしているのか
を明示的に扱います。
これは、
システムを
「ある瞬間の数値」ではなく
「時間を通した振る舞い」で捉える、
本書の立場と非常に相性が良いと感じました。
ENTRYは「判断」ではなく、位相への参加
状態遷移型のbotでは、
エントリーは単なる売買判断ではありません。
それは、
- 市場の流れがある状態に移行したと判断し
- その位相に参加することを選ぶ
という行為です。
自己強化的な動きが立ち上がりそうな局面でのみ、
botは市場に参加する。
それ以外の状態では、
何もしない、あるいは観測に徹する。
この設計は、
「当てに行く」というよりも、
特定のフィードバック構造にだけ関与する
という考え方に近い。
本書で語られている
フィードバックループの捉え方と、
自然に重なりました。
EXITは失敗ではなく、状態の終了
同じように、
エグジットも
成功・失敗というラベルだけでは捉えていません。
- 想定していた流れが続いているか
- システムが別の状態へ移行した兆しはないか
- その状態に、
これ以上参加する合理性があるか
こうした問いに対する答えとして、
状態遷移の一つとしてEXITを置いています。
これは、
「負けたから出る」という発想よりも、
その状態が終わったから離脱する
という理解に近い。
システム思考の文脈で言えば、
これは自然な振る舞いだと思います。
ストックとフローが、暗黙に組み込まれている
前章で触れた
ストックとフローの考え方も、
状態遷移型の設計と相性が良いと感じました。
- 状態はストックとして保持され
- エントリーやエグジットはフローとして働く
- フローの結果が、
次の状態遷移に影響を与える
この構造は、
意識的にそう設計したというより、
試行錯誤の末に自然とそうなった、
という方が正確です。
それでも、
本書を読んで振り返ってみると、
「なぜこの形がしっくり来ていたのか」
が、あとから説明できるようになりました。
正解だった、という話ではない
ここで誤解しないようにしておきたいのは、
「状態遷移型が正解だ」と言いたいわけではない、
という点です。
この設計でも、
うまくいかない可能性は十分にありますし、
実際、まだ検証途中です。
ただ、
- botを市場から切り離して考えないこと
- 振る舞いを時間の中で捉えること
- 介入を構造として考えること
こうした姿勢が、
結果としてシステム思考と噛み合っていた、
という事実は、
今後の設計を続けるうえで
ひとつの指針になると感じています。
次の章では、
この状態遷移型botを含めて、
自分がこの本から学んだ
**「見落としていた視点」**について整理していきます。
補足:FSM(状態遷移)について
※FSM(Finite State Machine / 状態遷移)について
本文で述べている
**状態遷移型のbot(FSM)**とは、
- 観測
- 条件成立
- エントリー
- 保有
- エグジット
といった段階を
明示的な「状態」として管理し、
状態ごとに許される振る舞いを限定する
設計のことを指しています。
単純なif文の集合ではなく、
「今どのフェーズにいるのか」を軸に
botの挙動を制御することで、
- 想定外の動きを防ぎやすい
- ログと設計を対応づけやすい
- 仮説の切り替えがしやすい
といったメリットがあります。
Ⅶ. この本を読んで気づいた、自分の見落とし
ここまで読んでくると、
「本書の内容をどう使うか」というよりも、
それまで自分が何を前提にしてbotを作っていたのか
が、少しずつ見えてきました。
この章では、
本書を読んだことで初めて意識できた
自分の見落としについて整理しておきます。
システムの「境界」を、あまり深く考えていなかった
まず一つ目は、
システムの境界についてです。
bot開発において、
私はこれまで
「このbotが見る市場」
「この時間軸」
といった前提を、
ほぼ無意識に固定していました。
もちろん、
実装上は境界を決めないと
何も作れないので、
それ自体は避けられません。
ただ、本書を読んで気づいたのは、
その境界の引き方そのものが
システムの性質を決めてしまう
という点を、
あまり意識できていなかったことです。
- どこまでを市場として含めるのか
- どこから先を「外部」と見なすのか
この選択は、
設計上の都合ではなく、
仮説の一部として扱うべきものだったのだと思います。
情報が「どう流れているか」を十分に扱えていなかった
二つ目は、
情報の流れに対する意識です。
価格、板、約定。
どれも重要な情報ですが、
これまでは主に
「何を見ているか」
に関心が向いていました。
一方で本書では、
- 情報が誰に届くのか
- どの順番で届くのか
- どれくらい遅れて届くのか
といった点が、
システムの挙動を左右する要素として
繰り返し言及されています。
botが見ている情報は、
決して市場全体の情報ではありません。
限られた観測点から、
遅延を伴って取得したものです。
この前提を、
設計の中心に置けていたかというと、
まだ十分ではなかったと感じています。
数値化できない「ストック」を軽視していた
三つ目は、
ストックとフローの話とも重なりますが、
数値化できないストックについてです。
- 市場参加者の期待
- 流動性の疲労
- その場に残っている裁定余地
こうしたものは、
直接ログに残るわけでもなく、
明確な数値として扱いにくい。
そのため、
設計の中では
どうしても後回しになっていました。
しかし、
システム思考の枠組みで見ると、
これらも明らかに
挙動に影響を与えるストックです。
すでに枯れかけている流れに
新たなストックを置いても、
うまくいかない。
この当たり前の事実を、
より構造的に捉え直す必要があると感じました。
レバレッジの低い部分を一生懸命いじっていた可能性
最後に、
これは少し耳が痛い話ですが、
レバレッジポイントの話です。
これまでの自分は、
- 閾値
- パラメータ
- 条件の細かい調整
といった、
分かりやすく手を動かせる部分に
多くの時間を使っていました。
もちろん、
それらが無意味だとは思っていません。
ただ、
本書を通して振り返ってみると、
それはシステム全体から見れば
かなりレバレッジの低い介入だった
可能性もあります。
もっと上流の、
- そもそもどの状態で参加するのか
- どのフィードバックを狙っているのか
- 何を目的としてbotを動かしているのか
といった部分に、
十分な思考を割けていたかというと、
反省の余地があります。
見落としに気づけたこと自体が、収穫だった
こうして書き出してみると、
見落としばかりだったようにも見えます。
ただ、
本書を読む前の自分に
これらの問いを投げても、
おそらくピンと来なかったと思います。
「見落としていた」というより、
まだ見える位置に立っていなかった
という表現の方が近いかもしれません。
次の章では、
これらの気づきを踏まえて、
今後のbot開発を
どのような姿勢で続けていくのか、
そして「どこまでやったら切るのか」
について整理していきます。
Ⅷ. レバレッジポイントという考え方は、エッジ探索に効く
本書の中で紹介される
レバレッジポイントという考え方は、
読み物としてはやや抽象的に感じられる部分かもしれません。
しかし、
トレードbotの開発、特に
エッジを探すという作業に引きつけて考えると、
この視点はかなり実用的だと感じました。
レバレッジとは「効きやすさ」の話
世界はシステムで動く で語られるレバレッジは、
単に「大きな影響を与える場所」という意味ではありません。
- 少し動かしただけで
- システム全体の振る舞いが変わる
そういう 介入の効きやすさ を指しています。
重要なのは、
「どこをいじると一番変わるか」を
直感ではなく構造から考える、
という点です。
エッジ探索でやりがちなこと
トレードbotを作っていると、
エッジを探す過程で
どうしても次のような作業に寄りがちです。
- 指標を追加する
- パラメータを細かく調整する
- 条件を少しずつ変えて試す
これらは分かりやすく、
すぐに手を動かせるため、
開発している実感も得やすい。
ただ、本書のレバレッジポイントの話を
そのまま当てはめると、
こうした介入は
かなり低いレバレッジの位置
にある可能性が高い。
レバレッジの高い問いは、もっと手前にある
一方で、
レバレッジが高いとされるのは、
- 情報の流れ
- ルール
- 目的や前提
といった、
システムの構造そのものに関わる部分です。
これをbot開発に置き換えると、
- そもそも、
どんな状態の市場にだけ参加するのか - botは、
市場のどのフィードバックに関与するのか - ENTRYしない時間を、
どう位置づけているのか
といった問いになります。
これらは、
パラメータ調整よりも
はるかにレバレッジが高い。
しかし同時に、
答えを出すのが難しく、
検証にも時間がかかる問いでもあります。
「ENTRYしない自由」は、強いレバレッジになりうる
特に印象に残ったのは、
何をしないか という選択の重要性です。
多くのbotは、
「条件が揃ったら入る」
ことばかりに意識が向きます。
しかし、
システム全体で見れば、
- 参加しない
- 何もしない
- 観測だけを続ける
という行為も、
明確な介入の一種です。
どの状態では
絶対に参加しないのか。
それをどう設計に落とすのか。
この部分は、
エッジ探索において
非常にレバレッジが高い領域だと感じました。
レバレッジ視点があると、無駄な試行が減る
レバレッジポイントという枠組みを意識すると、
エッジ探索の進め方そのものが変わります。
- その調整は、
システム全体にどれくらい影響するのか - その変更は、
構造を変えているのか、
表面をなぞっているだけなのか
こうした問いを挟むことで、
「とりあえず試す」
という行動が減っていきました。
結果として、
試行回数が減ったというより、
試行の質が変わった
という感覚に近いです。
万能な道具ではないが、視点として強力
もちろん、
レバレッジポイントという考え方を持てば
必ずエッジが見つかる、
という話ではありません。
市場は複雑で、
意図した通りに動かないことの方が多い。
ただ、
- どこに時間を使うべきか
- どこは深追いしなくていいか
を判断するための
思考のフィルターとしては、
非常に強力だと感じています。
次の章では、
こうした考え方を踏まえたうえで、
今後のbot開発を
どのような姿勢で続けていくのか、
そして「依存しすぎないために何を決めておくか」
についてまとめます。
Ⅸ. 今やっているbot開発は、この本に依存しすぎない
ここまで書いてきたように、
世界はシステムで動く から得た視点は、
今の自分のbot開発にとって確かに有益でした。
ただし同時に、
ひとつ意識しておきたいことがあります。
それは、
この本の考え方に寄りかかりすぎない
ということです。
思想は「使うもの」であって、「信じるもの」ではない
システム思考は、
非常に汎用性が高く、
多くの現象を説明できてしまいます。
だからこそ、
気をつけないと、
- それっぽく説明できる
- 設計が美しく見える
- 理解した気分になれる
という状態に入りやすい。
しかし、
トレードbotの世界では、
説明できることと勝てることは別です。
思想やフレームワークは、
あくまで思考を整理するための道具であって、
結果を保証するものではありません。
今のフェーズは「検証に乗せる」ことが最優先
現在取り組んでいる状態遷移型のbotは、
まだ完全に検証フェーズに乗っているとは言えません。
- ログが十分に溜まっていない
- 仮説の生死を判断できるほどのサンプルがない
- 動作の安定性を詰めている段階
そういう状況です。
この段階でやるべきことは、
思想を深めることではなく、
止まらずに回し、
仮説が検証できる状態を作ること
だと考えています。
「今月いっぱいは続ける」という判断
その前提で、
現時点では
今月いっぱいは状態遷移型のbot開発を続ける
という判断をしています。
理由は単純で、
- まだ仮説の良し悪しを判断できていない
- 検証に耐えるだけのログが揃っていない
からです。
これは
「この設計を信じているから続ける」
というより、
まだ切る材料が揃っていないから続ける
という判断に近い。
切るための基準を、あらかじめ決めておく
同時に、
ダラダラと続けないために、
切る基準も意識しています。
たとえば、
- ENTRY→EXITのサイクルが安定しない
- 想定している保持時間まで生存できない
- MFEや挙動が、
明らかにノイズ帯に埋もれている
こうした状態が続くのであれば、
この仮説やこのFSM(状態遷移系のbot)は切る。
思想が美しいかどうかではなく、
観測された挙動で判断する
という姿勢は崩さないつもりです。
補足:MFEについて
※MFE(Maximum Favorable Excursion)について
本文中で触れている MFE は、
エントリー後にポジションが
一時的にどれだけ有利な方向に進んだか を表す指標です。
簡単に言えば、
- エントリー直後に
「勝てる余地があったかどうか」 - その余地が
手数料やスリッページを上回る水準だったか
を確認するために使っています。
実際に利益確定できたかどうかではなく、
構造的に“取れる動きが存在したか”
を判断するための観測指標、という位置づけです。
状態遷移という「枠」は残す
一方で、
たとえ今の仮説がダメだったとしても、
状態遷移という設計の枠組み自体は
今後も使い続けると思います。
それは、
この枠がシステム思考と合っているから、
という理由だけではありません。
- botの挙動を説明しやすい
- ログと対応づけやすい
- 仮説の切り替えがしやすい
といった、
実務上のメリットが大きいからです。
本は、判断を代わりにしてくれない
最後に、
自分への戒めとして書いておくと、
どれだけ優れた本を読んでも、
- ENTRYするか
- EXITするか
- 続けるか
- 切るか
といった判断を、
代わりにしてくれるわけではありません。
その判断は、
ログと検証の中でしか下せない。
だからこそ、
この本は
**「設計の補助線」**として使い、
最終的な意思決定は
常に自分で行う。
次の章では、
ここまでの内容を踏まえて、
今後やることを
具体的に整理して締めくくります。
Ⅹ. 今後やること(botterとしての次の一手)
ここまで、本書の内容と、
そこから得た気づきを
bot開発の文脈で整理してきました。
最後に、
現時点で自分が考えている
今後やることを、
できるだけ具体的に書いておきます。
まずは、検証に耐える状態まで持っていく
一番優先度が高いのは、
やはりこれです。
- botを止めずに回し続ける
- ENTRY→EXITのサイクルを安定させる
- 仮説の生死を判断できるだけのログを溜める
思想的にどれだけ納得感があっても、
検証に乗らなければ意味がありません。
今は
「勝てるかどうか」以前に、
評価できるかどうか
をクリアする段階だと考えています。
状態遷移という枠を使い続ける
今後も、
botの設計としては
**状態遷移(FSM)**という枠組みを使い続けるつもりです。
理由は単純で、
- botの挙動を説明しやすい
- ログと設計が対応づけやすい
- 仮説を切り替えやすい
といった、
実務上のメリットが大きいからです。
個々の状態や遷移条件は
今後いくらでも変わると思いますが、
「状態を明示的に扱う」という考え方自体は、
今後も軸にしていきます。
レバレッジの低い改善に時間を使いすぎない
エッジ探索においては、
これまで以上に
レバレッジの高低を意識して進めます。
- パラメータ調整に時間を溶かしていないか
- 本当に構造を変えているのか
- それとも表面をなぞっているだけか
こうした問いを挟みながら、
改善の方向を選ぶつもりです。
すべてを避けることはできませんが、
少なくとも
「考えずに微調整を繰り返す」
状態には戻らないようにしたい。
切る判断を、感情ではなく基準で行う
今後も、
botや仮説を切る場面は
何度も訪れると思います。
そのときに、
- 思想的に気に入っているから
- ここまで作ったから
- なんとなく惜しいから
といった理由で引き延ばさないために、
切る基準を先に決める
という姿勢を続けます。
MFEや保持時間、
EXIT理由の分布など、
観測できる事実をもとに判断する。
この点は、
今後も意識的に守っていきたい部分です。
システム思考は「道具」として持ち続ける
世界はシステムで動く から得た視点は、
今後も手放すつもりはありません。
ただし、
それを「正解」や「拠り所」にするのではなく、
あくまで 設計を考えるための道具
として使い続けたい。
botがうまくいかないときに、
- どこを見直すべきか
- どこを疑うべきか
を考えるための補助線として、
そばに置いておく。
そのくらいの距離感が、
今の自分にはちょうどいいと思っています。
最後に
この本を読んだからといって、
突然botが勝てるようになるわけではありません。
ただ、
どこを考え、どこを考えすぎないか
という判断は、
以前よりも少しだけ
クリアになった気がしています。
あとは、
淡々と作って、回して、
ログを見て、
切って、作り直す。
botterとしてやることは、
結局いつも同じです。
この文章が、
同じようにbotを作っている人にとって、
何か一つでも
考えるきっかけになれば幸いです。
ここまで書いてきた内容は、
『世界はシステムで動く』を読んだことがきっかけで整理できた部分が多いです。
思想書としても読みやすく、設計の言葉を探している人には向いていると思います。