「システムトレードを始めたいけれど、どうやって売買ルールを検証すればいいの?」「イザナミというソフトを使えばバックテストができると聞いたけれど、何から手を付ければ…」そんな悩みを抱えている方は多いのではないでしょうか。
バックテストとは、過去の株価データを使って売買ルールの有効性を検証する作業のことで、システムトレードを成功させるための最重要プロセスです。そして、イザナミは国内で最も人気のあるバックテストソフトの一つで、初心者でも直感的に使える設計になっています。
この記事では、イザナミを使ったバックテストの基本設定から、検証期間の一括同期、パラメーター最適化、検証スピードを上げるコツまで、実践的なノウハウを体系的に解説します。これからシステムトレードを始める方も、既に取り組んでいる方も、ぜひ参考にしてください。
目次
目次
- バックテストとイザナミの基礎知識
- イザナミでのバックテスト設定手順
- 検証期間を一括で揃える方法
- バックテスト結果の見方と重要指標
- パラメーター最適化で期待値を探す
- バックテストで重視すべき評価項目
- 条件追加時のポイントと効率化のコツ
- 検証スピードを上げるための工夫
- まとめ
バックテストとイザナミの基礎知識
バックテストとは何か
バックテストとは、過去の株価データに対して特定の売買ルールを適用し、「もしこのルールで売買していたら、どのくらいの成績だったか」をシミュレーションする手法です。
例えば、「株価が15日移動平均線を10%下回ったら買い、5%上回ったら売り」というルールを考えたとします。このルールが本当に有効なのかを確認するには、過去10年分のデータで実際に検証してみる必要があります。これがバックテストです。
バックテストを行わずに売買ルールを実践すると、期待値がマイナスの戦略で資金を失うリスクが高まります。つまり、バックテストはシステムトレードにおける「設計図の検証作業」と言えるでしょう。
イザナミというバックテストソフトの特徴
イザナミは、株式会社ツクヨミが開発した国産のバックテストソフトで、日本株のシステムトレードに特化しています。以下のような特徴があります。
- 直感的な操作画面:プログラミング不要で、マウス操作だけで複雑な売買ルールを設定できます。
- 豊富なテクニカル指標:移動平均線、RSI、MACD、ボリンジャーバンドなど、主要な指標が標準搭載されています。
- 高速な検証エンジン:数万件の株価データを数秒でバックテストできる処理速度を持っています。
- パラメーター最適化機能:どのパラメーターが最も期待値が高いかを自動で探してくれます。
- フリー版の提供:機能制限はありますが、無料で試用できるフリー版が用意されています。
初心者でも扱いやすい設計でありながら、上級者の要求にも応える機能を備えているため、イザナミは幅広いトレーダーに支持されています。
システムトレードにおけるバックテストの役割
システムトレードとは、明確な売買ルールに基づいて機械的に取引を行う手法です。感情に左右されず、再現性の高いトレードを実現できるのが最大のメリットです。
このシステムトレードにおいて、バックテストは以下の役割を果たします。
- 戦略の有効性検証:考案した売買ルールが過去のデータで利益を出せたかを確認します。
- リスク管理:最大ドローダウン(最大損失幅)や連敗数など、リスク指標を事前に把握できます。
- 心理的安心感:過去の実績があることで、実トレード中に自信を持ってルールを守れます。
- 継続的改善:バックテスト結果を分析することで、ルールの弱点を発見し改善できます。
バックテストは、システムトレードの成否を左右する最も重要なプロセスと言っても過言ではありません。
イザナミでのバックテスト設定手順
売買ルールの基本設定
イザナミでバックテストを実行するには、まず売買ルールを設定する必要があります。ここでは、シンプルな例として「終値が15日移動平均線の10%下に来たら買い」という仕掛け条件を設定してみましょう。
- イザナミを起動:ソフトを起動し、「売買ルール設定」画面を開きます。
- 仕掛け条件の追加:画面上部の「仕掛け」タブをクリックし、「条件追加」ボタンを押します。
- 比較条件の設定:条件設定ウィンドウが開いたら、以下のように設定します。
- [A]に「終値」を選択
- [B]に「15日移動平均(-10%)」と設定
- 比較演算子で「小さい(同じ含む)」を選択
- 条件の確定:設定が完了したら【OK】ボタンを押します。
これで、「終値が15日移動平均線の90%以下になったら買いシグナル」という条件が設定されました。
手仕舞い条件の設定
仕掛け条件だけでなく、手仕舞い条件(売却条件)も設定する必要があります。例えば、「買値から5%上昇したら利益確定」「10%下落したら損切り」といった条件を追加しましょう。
- 手仕舞いタブを選択:「売買ルール設定」画面の「手仕舞い」タブをクリックします。
- 利益確定条件の追加:「条件追加」から「買値からの上昇率が5%以上」を設定します。
- 損切り条件の追加:同様に「買値からの下落率が10%以上」を設定します。
- 保有期間の上限設定:「20日経過したら強制手仕舞い」など、時間的な条件も追加できます。
手仕舞い条件は複数設定でき、いずれかの条件に該当した時点で売却が実行されます。
資金管理とポジションサイズの設定
バックテストでは、資金管理の設定も重要です。初期資金や1銘柄あたりの投資額、同時保有銘柄数などを設定します。
- 初期資金:例えば100万円、300万円など、実際のトレード資金に近い金額を設定します。
- 1銘柄あたりの投資額:「資金を均等分割」「定額投資」「資金比率投資」などから選択できます。
- 同時保有銘柄数:分散投資のため、同時に何銘柄まで保有するかを設定します。
- 手数料設定:実際の証券会社の手数料体系を反映させることで、よりリアルな結果が得られます。
資金管理の設定を現実的な数値にすることで、バックテスト結果の信頼性が大きく向上します。
検証対象銘柄と期間の指定
最後に、どの銘柄を対象にバックテストを行うか、期間はいつからいつまでかを指定します。
- 検証対象銘柄:「東証全銘柄」「東証一部のみ」「特定の業種」など、フィルタリングできます。
- 検証期間:「2010年1月1日〜2023年12月31日」のように、開始日と終了日を設定します。
- データ更新:最新の株価データを使うため、定期的にデータ更新を行いましょう。
設定が完了したら、「バックテスト実行」ボタンを押すことで、イザナミが自動的に過去データでシミュレーションを行ってくれます。
検証期間を一括で揃える方法
検証期間の自動同期機能
複数の売買ルールをテストする際、それぞれの検証期間がバラバラだと、正確な比較ができません。イザナミには、全てのルールの検証期間を一括で揃える便利な機能があります。
最も簡単な方法は、自動同期機能を使うことです。この機能を有効にすると、一つのルールで検証期間を変更すれば、他のルールも自動的に同じ期間に更新されます。
オプション設定での自動同期の有効化
自動同期機能を有効にする手順は以下の通りです。
- イザナミを起動:ソフトを立ち上げます。
- オプション画面を開く:メニューバーから「オプション」を選択します。
- 機能設定Aを選択:オプション画面で「機能設定A」のタブをクリックします。
- 自動同期をON:「検証期間を自動同期する」のチェックボックスをONにします。
- 設定を保存:【OK】ボタンを押して設定を保存します。
これで、今後は検証期間が自動的に全ルールで同期されるようになります。
バックテスト画面から手動で同期する方法
既に複数のルールを作成済みで、今すぐ検証期間を揃えたい場合は、バックテスト画面から手動で同期することもできます。
- バックテスト画面を開く:「バックテスト」メニューを選択します。
- メニューから同期を選択:画面上部のメニューから「検証期間を同期」を選択します。
- 基準となるルールを選択:どのルールの検証期間を基準にするか選びます。
- 同期を実行:【実行】ボタンを押すと、全てのルールの検証期間が揃います。
検証期間を揃えることで、異なる売買ルールのパフォーマンスを正確に比較できるようになります。
バックテスト結果の見方と重要指標
結果概要画面の構成
バックテストを実行すると、「結果概要」画面が表示されます。この画面には、売買ルールのパフォーマンスを示す様々な指標が表示されます。
主な表示項目は以下の通りです。
- 総損益:検証期間全体での利益または損失の合計額です。
- 勝率:全トレードのうち、利益が出たトレードの割合を示します。
- 平均損益:1トレードあたりの平均的な損益額です。
- プロフィットファクター(PF):総利益を総損失で割った値で、1を超えていれば利益が出ています。
- 最大ドローダウン:資産曲線が最高値から最も下落した額(または率)を示します。
- 取引回数:検証期間中に何回トレードが発生したかを示します。
これらの指標を総合的に判断することで、売買ルールの有効性を評価します。
取引回数と勝率のバランス
取引回数と勝率は、バックテストで特に重要な指標です。この2つのバランスを理解することが、実トレードでの成功につながります。
例えば、勝率が90%でも取引回数が年に2〜3回しかない戦略は、統計的な信頼性が低く、たまたま好条件が重なっただけかもしれません。逆に、取引回数が1000回あっても勝率が30%では、精神的に継続が困難です。
一般的には、取引回数が最低でも100回以上あり、勝率が30%〜70%の範囲に収まっている戦略が、実践的で信頼性が高いとされています。
プロフィットファクターとシャープレシオ
プロフィットファクター(PF)は、総利益を総損失で割った値です。例えば、総利益が200万円、総損失が100万円なら、PFは2.0となります。
- PF > 1.0:利益が出ている状態(1.0を超えれば超えるほど優秀)
- PF = 1.0:損益がゼロ(手数料分だけ損失)
- PF < 1.0:損失が出ている状態
一方、シャープレシオは、リスクあたりのリターンを示す指標です。高いほど、取ったリスクに対して効率的にリターンを得られていることを意味します。
どちらの指標も、単独ではなく他の指標と合わせて総合的に評価することが重要です。
最大ドローダウンとリスク評価
最大ドローダウンは、資産が最高値から最も下落した幅を示す指標で、リスク管理において極めて重要です。
例えば、最大ドローダウンが30%の戦略を100万円で運用した場合、最悪のケースでは資産が70万円まで減少する可能性があります。この数値を事前に知ることで、心理的な準備ができますし、許容できないリスクなら戦略を見直すべきです。
実トレードでは、バックテストの最大ドローダウンの1.5倍程度は覚悟しておくべきと言われています。これは、過去データにない最悪のケースが実際には起こり得るためです。
パラメーター最適化で期待値を探す
パラメーター最適化機能とは
パラメーター最適化とは、売買ルールに含まれる数値(例えば移動平均線の期間、RSIの閾値など)を自動的に変化させ、最も成績が良い組み合わせを探す機能です。
イザナミでは、この最適化機能が標準搭載されており、数万通りのパラメーター組み合わせを自動で検証してくれます。
例えば、「移動平均線は5日、10日、15日、20日のどれが最適か」「乖離率は-5%、-10%、-15%のどれが良いか」といった疑問に、データで答えてくれるのです。
効果的なパラメーター範囲の設定
パラメーター最適化を行う際は、現実的な範囲を設定することが重要です。範囲が広すぎると、過剰最適化(カーブフィッティング)のリスクが高まります。
- 最適化したいパラメーターを選択:例えば「移動平均線の期間」を選びます。
- 範囲と刻み幅を設定:「5日〜50日、5日刻み」のように指定します。
- 複数パラメーターの組み合わせ:2つ以上のパラメーターを同時に最適化することもできます。
- 最適化を実行:【最適化実行】ボタンを押すと、全組み合わせが自動検証されます。
最適化には時間がかかる場合がありますが、イザナミの高速エンジンにより、数分〜数十分で完了します。
過剰最適化を避けるための注意点
過剰最適化(オーバーフィッティング、カーブフィッティング)とは、過去データにぴったり合うようにパラメーターを調整しすぎて、未来のデータでは機能しなくなる現象です。
過剰最適化を避けるためのポイントは以下の通りです。
- パラメーター数を絞る:最適化するパラメーターは2〜3個程度に留めましょう。
- 現実的な範囲設定:極端な数値は避け、一般的に使われる範囲内で設定します。
- アウトオブサンプル検証:最適化した期間とは別の期間でも機能するか確認します。
- ロバスト性の確認:パラメーターを少し変えただけで成績が激変する場合は要注意です。
最適化の目的は「最高の成績」を出すことではなく、「安定して機能するパラメーター」を見つけることです。
逆引きスタイルでの期待値探索
イザナミの最適化機能には、「逆引きスタイル」という独特のアプローチがあります。これは、「どのパラメーターだと期待値があるか?」を探る手法です。
通常の最適化は「最高の成績を出すパラメーター」を探しますが、逆引きスタイルでは「どの範囲のパラメーターでも安定して利益が出るか」を確認します。
例えば、移動平均線の期間を5日〜50日まで変化させた際に、15日〜30日の範囲ではどれも安定して利益が出ているなら、その戦略は頑健性が高いと判断できます。逆に、特定の1つのパラメーターでしか利益が出ない場合は、過剰最適化の可能性が高いです。
バックテストで重視すべき評価項目
戦略タイプ別の重視項目
バックテストの評価基準は、売買戦略のタイプによって変わります。自分の戦略がどのタイプかを理解し、適切な指標を重視しましょう。
スイングトレード型の場合:
- 勝率と平均損益のバランス:40%〜60%の勝率で、平均損益がプラスであることが重要です。
- 最大ドローダウン:資金の20%〜30%以内に収まっているか確認します。
- 取引回数:年間50〜200回程度が実践的です。
デイトレード・短期売買型の場合:
- 取引回数の多さ:統計的信頼性を得るため、最低でも数百回の取引が必要です。
- 平均利益の安定性:1トレードあたりの利益は小さくても、安定していることが重要です。
- 手数料の影響:取引回数が多いため、手数料が成績に大きく影響します。
長期投資型の場合:
- 総合リターン:年率リターンが安定してプラスであることを確認します。
- 最大保有期間:数ヶ月〜数年の保有に耐えられる資金管理が必要です。
- 市場環境への対応:上昇相場・下降相場それぞれでの成績を分析します。
戦略の特性を理解し、それに合わせた評価基準を設けることが、バックテストの重要なポイントです。
連敗数と心理的耐久性
バックテスト結果を見る際、見落としがちですが重要なのが連敗数です。これは、連続して損失トレードが何回続いたかを示す指標です。
例えば、勝率60%の戦略でも、過去に7連敗した記録があるなら、実トレードでも同様の連敗が起こり得ます。7連敗に耐えられるメンタルと資金管理ができているかを、事前に自問すべきです。
心理的耐久性の確認ポイント:
- 最大連敗数:過去の最大連敗数に1.5倍のマージンを見込みましょう。
- 連敗時の資金減少:連敗中の資金減少額を計算し、許容範囲内か確認します。
- 回復に要する期間:ドローダウンから回復するまでの期間も重要です。
優れた戦略でも、連敗時にルールを放棄してしまえば成功できません。心理的に耐えられる戦略を選ぶことが大切です。
取引の偏りと市場環境への依存
バックテスト結果が良好でも、特定の市場環境にのみ依存している場合は注意が必要です。
確認すべき偏り:
- 時期的偏り:特定の年や期間にのみ利益が集中していないか確認します。
- 銘柄の偏り:少数の銘柄にのみ利益が集中している場合、偶然の可能性があります。
- 市場環境の偏り:上昇相場でのみ機能し、下落相場では壊滅的な結果になる戦略は危険です。
イザナミでは、年別・月別の成績や、銘柄別の損益内訳を確認できるため、これらの偏りを詳細に分析できます。
条件追加時のポイントと効率化のコツ
効果的な条件追加の流れ
売買ルールに新しい条件を追加する際は、やみくもに追加するのではなく、目的を明確にして段階的に進めることが重要です。
- 現状の問題点を特定:現在のルールの弱点(ドローダウンが大きい、勝率が低いなど)を洗い出します。
- 仮説を立てる:「ボラティリティが高い時期を避ければドローダウンが減るのでは?」など、改善の仮説を立てます。
- 1つずつ条件を追加:複数の条件を同時に追加すると、どれが効果的だったか分からなくなります。
- バックテストで検証:条件追加前後の成績を比較し、改善されたか確認します。
- 効果がなければ削除:成績が改善しなかった条件は潔く削除しましょう。
条件追加の目的は複雑化することではなく、戦略のパフォーマンスを改善することです。
条件の優先順位付け
複数の条件を追加する際は、優先順位を付けることが効率化につながります。
優先的に検証すべき条件の例:
- トレンドフィルター:上昇トレンド中のみ買う、など大きな方向性を定める条件。
- ボラティリティフィルター:値動きが激しすぎる銘柄を除外する条件。
- 流動性フィルター:出来高が少なすぎる銘柄を除外する条件。
- ファンダメンタルフィルター:赤字企業を除外するなどの条件。
これらの基本的なフィルターを先に検証し、その後で細かな調整を行うと効率的です。
重要な考え方:シンプルさの価値
バックテストを繰り返していると、どんどん条件を追加したくなりますが、シンプルさには大きな価値があります。
複雑な戦略の問題点:
- 過剰最適化のリスク:条件が多いほど、過去データに過度に適合する危険性が高まります。
- メンテナンスの困難:条件が複雑だと、定期的な見直しや調整が難しくなります。
- トラブルシューティングの困難:うまくいかなくなった時、どこに問題があるか特定しにくくなります。
「シンプルで頑健な戦略」と「複雑で最適化された戦略」を比較した場合、長期的には前者の方が安定した成績を出す傾向があります。
検証スピードを上げるための工夫
検証速度を上げる方法
バックテストの処理時間が長いと、試行錯誤の回数が減り、戦略開発の効率が落ちます。イザナミで検証スピードを上げる方法をご紹介します。
- 検証対象銘柄を絞る:開発初期段階では、東証一部の主要銘柄のみに絞るなど、対象を限定します。
- 検証期間を短縮:最初は直近5年のデータで検証し、見込みがあれば全期間で検証します。
- 条件の簡素化:複雑な計算を含む条件は処理に時間がかかるため、開発段階では簡略化します。
- PCスペックの向上:CPUやメモリを増強することで、処理速度が大幅に向上します。
- 並列処理の活用:複数のルールを同時にバックテストする際は、バックグラウンド処理を活用します。
段階的な検証アプローチ
効率的に戦略を開発するには、段階的な検証アプローチが有効です。
- 第1段階(スクリーニング):限定的な銘柄・期間で複数の戦略アイデアを素早く検証し、見込みのあるものを選別します。
- 第2段階(詳細検証):選別した戦略について、全銘柄・全期間でのバックテストを実施します。
- 第3段階(最適化):パラメーター最適化を行い、最適な設定を探します。
- 第4段階(堅牢性確認):異なる期間や市場環境でも機能するか確認します。
この段階的アプローチにより、無駄な検証時間を削減し、有望な戦略に集中できます。
実践のポイント:記録と反復
バックテストの効率を上げるには、記録と反復が重要です。
記録すべき内容:
- 検証した戦略の概要:どんなアイデアを検証したか簡潔に記録します。
- 主要な成績指標:総損益、勝率、PF、最大ドローダウンなどを記録します。
- 気づいた点:「勝率は高いが取引回数が少なすぎる」など、分析結果をメモします。
- 次のアクション:「ボラティリティフィルターを追加してみる」など、次の検証内容を記録します。
これらを表計算ソフトやノートに記録することで、過去の試行錯誤を振り返ることができ、同じミスを繰り返さずに済みます。
成功しているシステムトレーダーの多くは、膨大なバックテスト記録を蓄積し、そこから学び続けています。
まとめ
この記事では、バックテストソフトイザナミを使った検証方法について、基本から実践的なテクニックまで幅広く解説しました。最後に、重要なポイントをまとめます。
- バックテストはシステムトレードの要:過去データで売買ルールを検証することで、期待値がプラスの戦略だけを実践できます。イザナミは直感的な操作で本格的なバックテストを実現できるツールです。
- 検証期間の同期と設定の重要性:複数の戦略を比較する際は、検証期間を揃えることが不可欠です。自動同期機能を活用して効率的に管理しましょう。
- 総合的な指標評価:勝率だけでなく、取引回数、プロフィットファクター、最大ドローダウン、連敗数など、多角的な指標で戦略を評価することが重要です。
- 過剰最適化を避ける:パラメーター最適化は便利ですが、過去データに過度に適合させると未来では機能しません。シンプルで頑健な戦略を目指しましょう。
- 段階的な検証と記録:効率的に戦略を開発するには、段階的なアプローチと丁寧な記録が欠かせません。試行錯誤のプロセスそのものが、トレーダーとしての成長につながります。
バックテストは一度やって終わりではなく、継続的に改善を重ねるプロセスです。イザナミというツールを活用して、あなたのトレード戦略を磨き上げていってください。データに基づいた冷静な判断が、長期的な投資成功への道を開いてくれるはずです。