QUANTRESEARCHER STUDIO · NOVEMBER 2026

Windows M219.1 / Ubuntu M219.1 公開プレビュー

署名付きインストーラー、オンライン更新、1台のPCでの認証と移行。最新版の導入・認証手順はこちらをご確認ください。

ダウンロード・導入手順 →

01M219.1:執行の復旧と現行の操作

M219.1はM209以降の執行スケジューリング、注文時刻の表示、戦略編集、最適化の改善を含みます。WindowsインストーラーとUbuntu CLI・ヘッドレス版は同じリリースを使用してください。.NETとDatabento DBN・Parquetリーダーの依存パッケージは同梱され、追加設定は不要です。

執行と未約定注文

  • Submitted timeは最初の注文送信時刻です。直後のLast update timeは、受理された注文・価格変更の最終確認時刻を、ブローカー提供時刻または応答受信時刻から表示します。照会、確認待ち、拒否、結果不明の変更では進みません。証拠がない旧記録は空欄です。
  • ローカルで売却可能数量の競合を検出した場合は、新しい口座照合と有効な気配を待てます。予約数量を保守的に維持し、未送信と確認できた要求を終了扱いにして、後続の戦略判断から新しい要求を作成します。旧要求は再送しません。Journalには判断時・最終検証時の建玉、予約数量、要求数量を記録します。
  • 気配待機中の戦略は、新しい有効なデータと必要なブローカー確認がそろえば再開できます。送信前にローカルで拒否された注文変更が、その後の値付けを永久に止めないようにしました。Stopは自動再開を解除します。既存注文は追跡を続け、気配待機だけでは取り消しません。
  • 他の戦略が実行中でも、停止中の戦略のソース・パラメーターを変更できます。別の戦略に変更した場合は対象行だけの設定・信頼確認を解除し、互換更新ではパラメーターと銘柄を維持します。実行中の対象行は、従来の検証済み更新の引継ぎまたは停止条件に従います。
  • 注文が連続する間は、同じ口座情報の全件取得を繰り返さないようにします。再利用は5秒または設定された口座情報の最大経過時間の半分のうち短い方までです。口座、建玉、約定の更新を受信すると再取得が必要になります。元の照合時刻を保持し、古い口座情報を新しい情報として扱いません。

口座全体のFIFO送信順序、応答待ち1件、送信直前のリスク・認証・鮮度・売却可能数量の検証、不確実な要求の予約数量を維持します。Unknownや受理後未照合の要求は再送しません。通信と逐次ブローカー応答による待ち時間は残り、オフライン回帰試験は実ブローカーの遅延を保証しません。

タイミングの確認

Quote.ReceivedUtc、戦略判断時刻、対応するStrategyOrderUpdate.CommandIdのTiming.SendStartedUtc、SendCompletedUtc、ResponseReceivedUtcを照合します。配信元時刻がある場合は上流の配信遅延とローカル処理を分けて確認できます。受信から判断には戦略の待機、判断から送信には順番待ちと検証、送信から応答には通信とブローカー応答が含まれます。未取得はnullです。TIMING STUDIO_SCHEDULERはポーリング間隔、口座取得、イベント配信、コマンド送信処理の所要時間も記録します。時計を同期し、同じ要求IDを比較してください。

最適化と大きな結果

Load Opt. paramの後に1銘柄のデータを明示選択すると、プリセットのSymbol/SymbolName/InstrumentSymbol固定値をその銘柄へ更新します。直接手入力した銘柄は保持し、複数銘柄から推測しません。他の固定値、範囲、刻み、候補リストは変更しません。

Backtest・Optimize・Researchでは大きなワーカー結果を圧縮して検証し、約定、純資産、建玉の損益推移を保持します。展開後の応答上限は512 MiBで、通常のメタデータ上限は維持します。旧32 MiB制限による失敗を、証拠を切り捨てずに修正しました。容量無制限ではなく、旧失敗実行で証拠が失われた場合は再実行が必要です。

021. 動作環境と初回起動

ダウンロードページの署名済み Windows Setup を使用します。現在の Windows ユーザー向けにインストールされ、「インストールされているアプリ」から削除できます。ワークスペースはアプリのフォルダーと分けて保存してください。.NET ランタイム、SDK・コンパイラー、参照パックは同梱されているため、通常の利用や CSV 取込に別途 .NET SDK や Python をインストールする必要はありません。コードエディターには Microsoft Edge WebView2 Evergreen Runtime が必要です。

Ubuntu は CLI・ヘッドレス版です。検証済みの AppImage と付属の install_ubuntu.sh を使って qr-studio コマンドをインストールします。Windows のデスクトップ画面は含まれません。データ取込、バックテスト、最適化、リサーチのコマンドは Ubuntu ガイドを参照してください。

Windows の更新時は実行中の処理とストラテジーを停止して接続を切り、Settings → Update available · Install and restart を使用します。Ubuntu では qr-studio update check と qr-studio update install を使用します。ダウンロードは配布元の署名とハッシュで検証します。更新やアンインストールは別保存のワークスペースと認証情報を保持します。PC を移行する場合は削除前に認証を解除してください。更新後にストラテジーが自動起動することはありません。

CSV、CSV.GZ、ZIP内CSVは同梱リーダーで取り込めます。Databento DBN・Parquetにも専用Pythonランタイムと依存パッケージを同梱し、追加設定は不要です。同梱ファイルの欠損時は修復・再インストールしてください。

初回起動時に Settings で表示タイムゾーンと基準通貨を設定します。表示設定は保存済みタイムスタンプや価格を変更しません。同じワークスペースを同時に開けるアプリは一つです。

031.1 試用・月額更新・PCの移行

Windowsのインストール版では Activation → Start 14-day trial、Ubuntuでは qr-studio license trial を実行します。試用はダウンロード時やインストール時ではなく、初回の認証成功時から14日間です。カード登録は不要で、試用から自動請求は発生しません。PCを移行しても試用期間は再開始しません。14日間の対象はM219.1以降で新たに開始する試用のみです。既存の7日間の試用期限は維持され、更新によって延長されることはありません。旧版では新規試用の前にアップデートが必要です。Activationには確認済みの期限を現地時刻とUTCで表示します。

オンライン決済は KOMOJU 準備中で、停止しています。試用から支払いや定期契約が始まることはありません。Windows の Copy licence key または Ubuntu の license key で取得したキーを、認証回復と PC 移行に備えて保管してください。購入についてはライセンス窓口へお問い合わせください。

オンライン定期契約の提供開始後は、月額料金の入金確認により同じライセンスの期限を自動更新します。Studioは実行中に30秒ごとにオンライン認証を確認し、Ubuntuのコマンドも必要時にオンライン認証を取得します。Activation または license status で利用期限を確認できます。短時間のオンライン認証期限と試用・有料期間の期限は別です。支払い失敗や確認待ちでは延長しません。反映が遅れる場合は注文参照番号を保存してサポートに連絡し、重複して支払わないでください。

WindowsとUbuntuを合わせて同時に1台だけ認証できます。Deactivate this PC または license deactivate の実行前にキーをコピーして保管してください。解除確認後は旧PCの保存キーを消去します。表示された移行可能時刻を過ぎてから、新しいPCで同じキーを認証します。紛失時は所有者確認後にサポートでリセットできます。既に PayPal の定期契約がある場合、認証解除やアンインストールではその請求は停止しません。次回請求日前にPayPalで定期支払いを解約してください。解約後も支払済み期間の期限までは利用できます。

042. 最初のバックテスト

  1. Data → Install samplesで付属の合成データを作成します。
  2. Strategies → Strategy libraryからMovingAverageCrossoverを開きます。
  3. Validate C#を押し、Problemsに表示された問題を確認します。
  4. Use this code in backtestを押し、合成データのBarを選びます。このサンプルは確定したバーの終値を使うため、Quoteだけのデータでは同じ信号を生成できません。
  5. シンボル、パラメーター、Account currency、Initial cash、Commission、約定に使うフィード、対象期間を確認します。資産推移を確認する場合は、Equity/Drawdownの記録を有効にします。
  6. Run backtestを押します。データの選択やコードの検証だけでは実行されません。
  7. Resultsで完了した実行を選び、資産曲線、ポジション、未約定注文、Trade History、Logを確認します。

MovingAverageCrossoverは、短期平均が長期平均を上回るとロング、そうでなければフラットを目標とします。平均の計算にはウォームアップ期間が必要です。データの終端に達したことだけを理由に、保有ポジションが自動決済されるわけではありません。

053. データのインポートと整理

ファイルを選ぶ

Data → Import data…を開きます。ファイル選択ではCtrl/Shiftを使って複数ファイルを選べます。CSV、CSV.GZ、ZIP CSV、Parquet、DBN.ZSTに対応しています。認識できるファイルは、内容やヘッダーなどから設定を推定し、バッチインポート画面で処理します。契約乗数や通貨など、根拠のない設定を自動で作り出すことはありません。

完了後は、シンボル数、読み込まれた行数、除外された行数を確認します。各ファイルの結果は独立しており、一つの失敗で完了済みデータが取り消されることはありません。Cancel importは未完了の処理を停止し、完了済みデータを残します。完了したらCloseでカタログに戻ります。

並列処理数はCPUと利用可能メモリーに応じて制限されます。ディスク性能、デコード処理、ファイル数によっても速度が変わるため、スレッド数に比例して速くなるとは限りません。

自動推定できる内容

CSVではTrade、Quote、Barの列構成や、JSTなど明示されたタイムゾーンを利用します。明示されたUTCオフセットや元データの設定は、PCの初期値より優先されます。Barでは、時刻が開始時刻か終了時刻か、時間間隔は何かが整合している必要があります。

Parquetにシンボル識別列があれば、一つのファイルを複数シンボルに分けて読み込めます。認識されたJ-Quantsの日足データは、元のCode、未調整のJPY価格、該当する東京市場のセッション境界を使用します。調整関連の列は元データの証跡に保持され、調整後価格へ無断で置き換えません。

Databentoでは、ヘッダーからスキーマ、シンボル、マッピング、UTC時刻を取得します。対応範囲にはTrade、複数の最良気配形式、対応OHLCVがあります。対応する単一市場のMBOは、最良気配のQuoteに再構築できます。これはすべてのDBNスキーマへの対応や、完全な板の約定シミュレーションを意味しません。商品ごとの通貨、ティック、数量単位、契約乗数は確認が必要です。連続先物データだけで、実際の限月乗り換えやその費用が再現されるわけではありません。

情報の不足や矛盾がある場合は、元ファイルやインポート設定を修正して再試行します。推定不能な設定と、不正な価格行の除外は別の問題です。

除外された行を確認する

新規のデスクトップインポートでは、BidがAskを上回る気配、不正な数値やOHLC、時刻の逆行などの不正なマーケット行を除外し、有効な行の処理を続けます。有効な行が一つもないファイルはデータセットとして登録されません。

CSVの構造、文字コード、アーカイブ、必須列の不足、リソース上限などの問題は、通常の除外対象行として扱わずファイルエラーになります。

Inspect dropped rows…では、元ファイル、シンボル、元の行番号、除外理由、デコードされた元の値を確認できます。Save all dropped rowsで全件をJSON Lines形式に保存できます。データセット概要に表示する少数の例だけでなく、記録された除外行全体が対象です。元のインポートファイルは変更されません。

フォルダーと日別データの統合表示

Foldersはベンダー → スキーマ → シンボルの順にデータを整理します。Combine daily files by symbolを有効にすると、互換性があり期間が重複しない日別データが、シンボルごとの複数日エントリーとして表示されます。

これは表示と選択の統合です。新しい結合CSVを作成したり、元の日別ファイルを消したりしません。個別のデータを選択・編集する場合は統合表示を解除してください。期間重複、通貨、価格基準、スキーマ、時刻、商品設定などが一致しないデータは別々に残ります。実行時には元のデータセットに展開されるため、1リクエスト256データセットの上限は引き続き適用されます。

検索は、読みやすい名前、シンボル、元データ、メタデータを対象にします。カタログのFrom/Throughは、年・月・日・オフセット付き日時やカレンダー選択に対応します。ここで指定するのは、期間が重なるデータセットの絞り込みです。実行期間の制限には、Backtestなど各ページのDate From/Date Toを使います。

行をダブルクリックすると保存された先頭レコードを確認できます。Open chartでチャートも開けます。統合された日別データでは、チャートとインジケーターの履歴が日付をまたいで継続します。

起動時の読み込みと削除

起動時には、カタログのメタデータ読み込みと保持期間の確認が表示されます。Checking retained datasetsは、アンロードしたデータの保持期限や付属サンプルの保護状態を調べる処理です。すべての有効な元ファイルを再インポートしているわけではありません。大規模カタログや低速ディスクでは時間がかかることがあります。実行・プレビュー・チャートで利用するイベントデータは、その利用時にも検証されます。

Data の Ctrl+A は画面外を含む絞り込み結果全体を選択します。小さな単位で処理し、Esc で途中処理を止められます。選択数で進行を確認できます。

Unload selected は確認後、選択したデータを1回の操作で Studio から完全に取り除きます。小さな一括記録を保存してからカタログを更新し、Studio 内のインポート済みコピーとリプレイファイルはバックグラウンドで回収します。読み取り中の処理は完了を待ち、途中で終了した回収処理は次回起動時に再開します。Studio の保存領域外にある元ファイルと保存済み結果は残ります。再利用する場合は元ファイルを再インポートしてください。付属サンプルは保護されます。

064. ストラテジーの作成・保存

New strategy、ライブラリーの例、またはOpen source…から編集を始めます。付属する17のサンプルとテンプレートは、すべてRobotを直接継承する一つのストラテジークラスで記述されています。

C# · QR strategy API
using QuantResearch.Engine;
using QuantResearch.Strategies;

public sealed class MyStrategy : Robot
{
    public override void OnQuote(ReplayContext context, Quote quote)
    {
        SimpleMovingAverage fast = Indicators.SimpleMovingAverage(quote.Bid, 20);
        SimpleMovingAverage slow = Indicators.SimpleMovingAverage(quote.Bid, 50);
        if (!fast.IsReady || !slow.IsReady) return;

        SetTargetPosition(quote.Symbol, fast.Close > slow.Close ? 1m : 0m);
    }
}

このQuote用の例は、1単位のロングまたはフラットを目標にします。インジケーターは履歴を保持し、Closeが現在値、IsReadyがウォームアップ完了を示します。Quoteの20期間は20回の観測であり、20分ではありません。注文待ちなどで早期returnする前に、対象とする各観測でインジケーターを呼び出します。確定足を使う場合はOnBarClosedとbar.Closeを使います。

インジケーターの種類

同じ書き方でSMA、EMA、RSI、Bollinger Bands、MACD、ATRを利用できます。

C# · QR strategy API
ExponentialMovingAverage ema = Indicators.ExponentialMovingAverage(quote.Bid, 20);
RelativeStrengthIndex rsi = Indicators.RelativeStrengthIndex(quote.Bid, 14);

EMAは最初の算術平均をシードとします。Wilder方式のRSI 14は14回の価格変化、つまり15価格が必要で、完全に横ばいなら50になります。両方を更新してからema.IsReadyとrsi.IsReadyを確認してください。Bollinger BandsはMiddle/Upper/Lower、MACDはLine/Signal/Histogramを公開します。MACDはSignalのウォームアップも含み、既定の12/26/9は34価格で準備完了です。ATRには通常、確定足の高値・安値・終値を渡します。正確な呼出形式とウォームアップはAPIリファレンスを参照してください。未来の観測や、実行前の隠れた履歴を自動で読むことはありません。

SetTargetPositionの数量は符号付き純ポジションです。正はロング、負はショート、0はフラットを表し、このヘルパーが管理する注文待ち数量も考慮します。数量単位は商品の設定によるため、1が常に1ロットを意味するわけではありません。独自の注文処理にはAPIリファレンスを参照してください。

Symbolパラメーターは必須ではありません。コールバック内ではquote.Symbol、trade.Symbol、bar.Symbolから現在の対象を取得できます。Symbolsは選択された実行対象一覧です。シンボル省略型の注文メソッドは現在のイベントを使用します。起動時に省略する場合は対象が一つである必要があり、複数対象ならシンボルを明示します。従来の明示的なSymbolパラメーターも利用できます。

編集可能な設定は[Parameter]プロパティで宣言します。Validate C#はコンパイラーの情報から型を検出します。複数のストラテジー型がある場合は対象を選びます。以前の完全修飾型名のテキスト欄に手入力する必要はありません。

Save source…またはCtrl+Sで現在のファイルを保存します。新規ソースやライブラリーのスナップショットは、初回に保存先を指定します。検証で作成されるライブラリースナップショットと、元ファイルの保存は別の操作です。外部でファイルが変更された場合、編集内容を保持して無断の上書きを防ぎます。

再起動時には、未保存の編集も含む直近のドラフトを復元します。復元されたカスタムコードは実行前に検証が必要です。ソースやアプリケーション/APIを変更した場合も再検証してください。入力中のコンパイル診断だけでは実行可能状態になりません。

検証したコードを自動適用する

Execution の各インスタンスで Apply validated updates automatically を有効にします。初期状態はオフで、設定はインスタンスごとに保存されます。Validate C# または F5 の検証が成功すると、開いている Execution タブ全体で、同じ名前・C# 型のストラテジーを使用する有効化済みインスタンスに変更を適用します。ファイル保存や編集中の診断だけでは適用しません。

実行中の場合は一時停止し、そのインスタンス自身の未約定注文を取り消し、ブローカーの確認後に新しいコードで自動再開します。建玉、対象商品、イベントフィード、互換性のある保存済みパラメーターは保持します。新しいパラメーターには初期値を設定し、private 変数とインジケーターは再初期化します。停止中のインスタンスは停止したままで、変更のないコードの再検証では再起動しません。

コンパイル失敗や保存値の非互換では、従来の実行中コードを変更しません。注文結果不明、取消拒否、後処理のタイムアウト、起動失敗の場合は自動再開しません。状態表示と Journal を確認してください。Cancel update · keep stopped または自動更新のチェック解除で保留中の更新を中止できます。明示的な停止、接続解除、Disarm、Studio 再起動後に保留中の自動再開を復元することはありません。[詳細](AUTOMATIC_STRATEGY_UPDATES_M139.md)。

実行モードと注文の検索

ReplayContext は次の読み取り専用 Boolean プロパティを提供します。通常の Studio 実行では、いずれか一つだけが true です。実行モードを提供しないカスタムホストでは RunMode == StrategyRunMode.Unknown となり、五つとも false です。

プロパティtrue になる場合
context.IsPaperLightspeed Paper など、ブローカーのシミュレーション/デモ口座での実行
context.IsLiveブローカーの実口座での実行
context.IsBacktest単独の履歴バックテスト
context.IsOptimize単独の最適化の各試行
context.IsResearchResearch の学習・検証・アウトオブサンプルの各試行

最適化と Research では IsBacktest は false です。データ配信元ではなく実行目的を示し、開始・終了・派生バーのコールバックでも同じモードを参照できます。Windows と Ubuntu のコマンドライン実行でも同じ判定を使用します。

C# · QR strategy API
if (context.IsPaper) Print("Paper execution");
var orders = context.PendingOrders.Where(x => x.Label == "maker");
var positions = context.Positions.Where(x => x.Label == "maker");
var firstOrder = context.PendingOrders.FirstOrDefault(x => x.Label == "maker");

Where は一致する全要素を返します。一件だけ取得する場合は FirstOrDefault を使用し、null を確認してください。Studio のストラテジーコンパイラーは LINQ を自動的にインポートします。明示的な using System.Linq; も引き続き使用できます。ラベル省略時は null なので、x.Label == "" はコンパイルできますが null には一致しません。ラベルなしの検索には string.IsNullOrEmpty(x.Label) を使用します。context.PendingOrders の注文は context.CancelOrder(order.Id) で取消要求できます。context.Positions は建玉ハンドルを返します。ブローカーの未約定注文一覧は当該ストラテジー所有の注文ですが、建玉には他のストラテジーや手動取引の数量が含まれる場合があります。

エディターの候補では context.PendingOrders と context.Positions を使用します。ラベル検索、ラムダ変数、実行モード、Symbol.TickSize、Symbol.TimeZone、Symbol.NormalizePrice(...)、context.Bars / context.Quotes の過去観測値にも対応します。旧名の TradingPositions と TradingPendingOrders は互換性のため残しますが、主要な候補には表示しません。候補は API 記述支援であり、コンパイル確認には Validate C# を使用してください。

075. バックテストの設定

Backtest、Optimize、Researchには、それぞれChoose dataとClear dataがあります。選択画面はフォルダー、Ctrl/Shiftによる複数選択に対応します。Ctrl+A は画面内の行だけを選択します。選択画面内のUse selected dataで確定します。Clear dataは、そのページのデータと実行フィードの選択だけを解除します。

互換性のある日別ファイルは、同じストラテジーインスタンスで時系列順に再生されます。QuoteとTradeはCtrlクリックで同時に選択できます。片方を確定した後に選択画面を開き直し、もう片方を追加することもできます。追加する順序は問いません。同じシンボルの補完データは保持され、別のシンボルを選ぶと以前の入力を置き換えます。Selected inputsで組合せを確認し、明示的に外す場合はRemoveまたはClear selectionを使います。

Quote+Tradeでは指値用の約定ソースをTradeに設定し、両方のイベントを渡します。成行は下記の気配併用設定に従います。Advanced · order-fill sourceで変更でき、既に複数種類を選んで設定した約定フィードは保持します。既存のTrade約定モデルを使用し、取引所の注文待ち行列を再現するものではありません。その他の組合せでは、約定フィードの指定が必要な場合があります。Quoteが必須のストラテジーでもTradeのみの選択を一旦保存できますが、必須データが揃うまで実行はできません。

Date From/Date Toで実行期間を制限します。空欄は選択データの利用可能期間を使用します。年月日などは表示タイムゾーンで解釈され、Date Toの日・月・年はその期間全体を含みます。時刻付きの終了値は、指定時点を含まない厳密な終了境界です。明示されたUTCオフセットは優先されます。夏時間で曖昧になる時刻はオフセットを指定してください。実行前にRun summaryの正確な範囲を確認します。

約定モデル・費用・通貨

Quote と Trade の両方を選択すると、Backtest・Optimize・Research の新規フォームでは「Quote + Trade: market orders use fresh Bid/Ask; passive limits use trades」が有効になります。約定ソースは Trade にします。成行買いは Ask、成行売りは Bid を使用し、タイマーでの手仕舞いにも直近の有効な気配を利用します。気配の最大経過時間は既定で1秒(変更可能)です。表示数量は注文間で共有し、新しい気配まで使い回して増量しません。数量不明・数量ゼロ・古い気配では約定させず、約定履歴の価格への代替も行いません。指値・逆指値は引き続き後続の Trade で判定します。成行の約定時刻は現在のリプレイ時刻で、過去の気配時刻へ戻しません。実行可能なデータがなければ FlexMM のセッション終了ガードは維持されます。実際の取引所での約定やキュー順位を保証するモデルではありません。保存済みリクエストは、この項目を有効にするまで従来の約定設定を保持します。

銘柄設定は宣言済みメタデータと保存済み編集値を優先します。未指定の価格刻み・数量刻みは限定サンプルから推定し、その旨を表示します。取引所タイムゾーンが不明な場合、番号のみの TickWrite ファイルでも、インポート時に記録した地域タイムゾーン(例:Asia/Tokyo)を編集可能な推定値として表示します。出力タイムゾーンが取引所と異なる場合は修正してください。この推定だけで JPX の価格帯ルール、取引時間、休日を設定することはありません。UTC や数値オフセットだけの場合は未指定のままです。

新規フォームではFill market orders on the current quoteが有効です。Quoteを実行フィードとする場合、現在のQuoteと同じシンボルへの成行注文は、買いがAsk、売りがBidで約定します。他シンボルのQuote、古いキャッシュ、確定足、情報イベントや他の注文種類にこの規則が拡張されるわけではありません。Trade、BarOpenやその他の注文は、それぞれ後続観測を使う既定の規則に従います。保存済みリクエストは元の設定を保持します。

初期資金、約定ごとの手数料、流動性モデル、商品設定を確認します。観測数量を使うモデルでは部分約定や残注文が発生します。これは実際の取引所の注文待ち順位を再現するものではありません。ResearchLedgerでは純資産が負になる場合もあります。実行成功という状態は処理完了を示し、収益性や実際のブローカーでの受付を保証しません。

新しく選んだデータが共通通貨なら、Account currencyはその通貨に追従します。現金と手数料の数値自体は換算されないため、金額を再確認してください。複数通貨では口座通貨を選び、実行期間を覆う履歴FXデータが必要です。

Oldest allowed FX rateは、既に観測された換算レートを何秒前まで利用できるかを示します。秒数だけを入力してもレートは取得されません。未来のレートや今日の参考レートで過去の評価を埋めることはできません。実際の価格通貨を別の通貨に書き換えてエラーを回避しないでください。

実行状況は検証・準備・再生・保存の段階を表示します。再生中の割合と処理件数はその段階の進捗であり、残り時間の予測ではありません。

086. 最適化とResearch

OptimizeはGridまたはGeneticでパラメーター候補を比較します。新規フォームの初期値はGeneticです。変化させるパラメーター、その有限範囲、評価数、同時実行数、時間制限、乱数シードを確認します。順位付けの目的は終了時純利益であり、Sharpe最大化ではありません。失敗した候補は最良候補になりません。新規フォームではEquity/Drawdownの記録が有効です。

Researchでは各foldを学習、検証、OOSに分けます。学習期間で検索し、その上位候補を検証期間で比較し、選ばれた一つをOOS期間で一度評価します。そのfoldのOOS結果を使って候補を選び直しません。

データ選択時には最大三つの拡大型foldを提案できます。実際のデータ範囲とDate From/Toを確認してください。Suggest folds from selected dataは現在のfoldを置き換えます。手編集したfoldは、それ以外では原則として保持されます。

各行にはFold ID、Train、Validation、OOSの開始・終了が必要です。2026-10-01、2026/10/1などの一般的な日付やオフセット付き日時を利用できます。日付だけの終了値は、そのローカル日全体を含みます。期間は学習、検証、OOSの順に並べます。

各区間は新しいストラテジー状態と初期資金から始まります。前区間のポジション、インジケーターのウォームアップ、FXレートを自動で持ち越しません。全foldのOOS利益合計は独立した区間結果の合計であり、複利運用した資産曲線ではありません。

無効な項目は色で強調され、最初の問題が見える位置へ移動します。選択シンボルに共通期間がない場合は、Clear dataで選択をやり直すか、互換性のある期間を選びます。観測がない期間にfoldを生成することはできません。提案が出ても、データが疎な期間は確認が必要です。

Backtest、Optimize、Research の完了後は Results を新しい順に並べ、完了した実行を選択して、その実行の詳細と資産曲線を表示します。保存済み結果の通常の一覧更新では、選択と並べ替えを保持します。

Choose data の表または検索欄にフォーカスがあるとき、Enter で選択全体を確定して画面を閉じます。Use selected data と同じ動作で、Quote と Trade の複数選択、どちらかを後から追加する操作にも対応します。未選択または無効な選択の場合は閉じず、修正できます。

Results は、非表示の技術情報 JSON を生成せずに資産曲線を読み込みます。直近の結果は容量制限付きキャッシュを利用し、保存された証跡を再確認してから表示します。連続した選択変更では不要になった読み込みを省略します。Technical details は展開したときだけ最大128 KiBのプレビューを生成し、完全な結果ファイルは変更しません。

Results は保存済み結果の表示用キャッシュを作成し、再起動後も再利用します。古い結果の初回表示では順次キャッシュを作成します。以後、一覧や純資産曲線を切り替える際、全候補・全約定の再解析を省きます。再利用時も元の証跡とハッシュを照合します。大量の Trade History はタブを開いた時に読み込み、元の結果ファイルは変更しません。

結果一覧の DD % または MAX DD % 指標にマウスを合わせると、最大ドローダウン率の発生日時を表示設定のタイムゾーンで確認できます。新規実行はチャートの間引き前に最初の最大値の正確な観測を保存します。過去の結果は一致する観測が残っていればその時刻を表示し、残っていなければ取得不能と明示します。最大下落率と最大下落額の発生時刻は異なる場合があります。

097. 結果の読み方

Resultsで保存済み実行を選びます。一覧の下の区切りをドラッグすると、一覧と詳細の高さを変更できます。

  • Equity & drawdown:資産推移と最大ドローダウンを表示します。チャートの表示点数を間引いても、別に保持した正確な集計値は失われません。
  • Positions/Pending orders:終了時のポジションと残注文を確認します。データ終端だけでは自動決済や架空の後続約定は発生しません。
  • Search trials/Research folds:候補比較や各foldの結果を確認します。
  • Trade History:建玉の開始から全決済・反転までを1行に集約します。加重平均の建値・決済値、確定損益合計、手数料、通貨、ラベル、コメント、注文IDを表示します。未決済はOpenと表示し、決済時刻・価格を補完しません。元の約定記録は結果ファイルに保持します。
  • Log:ストラテジーの出力を表示します。注文時にPrintした価格は必ずしも約定価格ではありません。約定の確認にはTrade HistoryやOnFillを使います。

Sharpeは、観測されたUTC日ごとの連続する単純リターンの平均を標本標準偏差で割った値です。ベンチマークは0で、年率換算しません。カードにマウスを合わせると、計算方法やN/Aの理由を表示します。日次リターン不足、日次終了純資産が0以下、分散0、過去の統計記録不足などでは定義できません。一日に多数の約定があっても、日次リターン数が不足する場合があります。

古い結果には資産履歴や約定記録がない場合があります。必要な記録を有効にして再実行してください。過去の結果を後から作り替えることはありません。

不要な結果は行を右クリックし、Delete result…を選びます。確認後、その実行のリクエスト、結果、証跡、記録済みチャート・約定・ログを削除します。ソースとデータセットは残ります。

108. 対応ブローカーへの接続

公開接続ガイドでは、Lightspeed Connectとローカルシミュレーターを説明します。

接続範囲
Lightspeed Connect対応する米国株式の注文、ポジション、約定、口座残高。Paper/Liveと口座を正しく選択します。一つのAPIキーで同時に接続できるAPIセッションは一つです。
法人向けKabu.com API · 連携予定三菱UFJ eスマート証券の法人向けAPI(旧Kabu.com)との連携を予定しています。現行Studioでは利用できません。接続・取引の対応範囲は実装と検証の完了後に案内します。

予定する連携は三菱UFJ eスマート証券の法人向けAPIを対象とし、個人向けkabuステーションAPIとは別です。必要な契約・権限、対応商品と提供時期はリリース前に確認します。本版に接続手順はありません。

接続とマーケットデータの選択

  1. Executionの対象口座タブ、環境、口座を選び、接続・照合します。
  2. 正確な銘柄を解決して適用します。LightspeedのUSD現物株式は既定値1ではなく公開された呼値ポリシーを使います。基本呼値は0.01、1米ドル未満は該当する0.0001の価格帯です。明示的な特殊設定は確認してください。
  3. Dataを開きます。Lightspeed Connectには気配フィードがないためConnected broker feedは利用できず、Databentoが初期選択されます。プルダウンからEQUS.MINIなど正確なデータセットIDを選び、APIキーとraw symbol/Studio銘柄の対応を設定します。
  4. 利用権と新鮮な観測を確認します。IDの選択だけでは購読権を取得しません。EQUS.MINIは取引状態を配信しませんが、専用ポリシーにより有効で新鮮な気配でLightspeed Paper取引を行えます。この例外はLiveには適用されません。
  5. 検証済みストラテジー、銘柄、パラメーター、コードの信頼確認後、明示的にStartします。手動注文は確認画面から送信します。接続だけでは発注しません。

フィード接続と選択した安全な保存処理が成功すると設定ウィンドウが閉じます。エラー時は開いたままです。開き直しても保存プロファイルを表示するだけで自動接続しません。

DOM・チャート・ポジション・履歴

Databento MBP-1は最良気配であり、全板情報ではありません。DOMは商品規則で価格グリッドを描画できますが、数量は提供された価格にだけ表示します。約定情報から分足を構成し、分・時間足チャートでは最大7暦日分の過去1分足を要求できます。最新100・300・500本から選択し、既定値は300本です。過去データの利用権・利用料が適用されます。Refresh historyで上限付きの再取得を行い、欠測は埋めず形成中の足は未確定のままです。チャート履歴取得がストラテジーのインジケーターを自動でウォームアップするわけではありません。

Lightspeedのポジション行は記録済み約定の数量と建玉時刻を使い、反対売買をFIFOで配分します。古い未記録残高は帰属不明として不明項目を空欄にします。発注は口座の純数量を基準とし、行の選択は税務ロット指定ではありません。決済分はHistoryに表示し、入口と出口の証跡がある場合は手数料を除く商品通貨の損益を示します。新鮮なBid/Askで推定含み損益を更新しても数量は変わりません。

Lightspeedの空売りは非対応です。未約定の売注文は保有ロング数量を予約するため、残余を超える売注文はできません。Databentoの表示価格だけではPaperシミュレーターでの約定を証明できません。注文・約定のブローカー証跡を確認してください。

停止と復旧

Stop this strategyはコールバックを停止し、以前の起動分を含め、そのインスタンスの未約定注文を取消要求します。手動・他ストラテジー注文は対象外です。再開にはブローカーによる確定結果が必要で、受付応答や現在の注文一覧からの消失だけでは足りません。

接続中はPrepared・Acknowledged・Unknown要求の状態をバックグラウンドで確認します。元の記録を保持し、不明注文の再送やストラテジーの自動再開はしません。他の銘柄・ページは、それぞれの準備条件を満たせば利用できます。OrdersとJournalで進行と診断を確認し、Reconcile accountで証跡を更新できます。

ExecutionのLogは既定でtimestamp · Strategy name | messageを表示します。Show diagnostic detailsでインスタンスID・起動ID・出力チャネルを表示できます。コピーと保存は選択中の表示形式を使います。

119. キー・ソース・更新

FMPとNewsAPI.aiのキーは個別に、Windowsの現在のユーザーに紐づくDPAPIで保護して保存します。ワークスペースやエクスポートした研究成果には保存せず、画面ではマスクします。Forget saved keyは選択中のプロバイダーのキーだけを削除します。ダウンロード、プロバイダー変更、ダイアログを閉じる際に入力キーを保存できます。その他のブローカー認証には、それぞれの接続・プロファイルの規則があります。Saxoのブラウザー認証トークンはセッションに属します。

オフラインエディターは、外部の編集サービスにソースを送信しません。ソースファイルと復元用ドラフトはローカルのテキストです。ストラテジーは信頼できるコードだけを実行してください。ワーカーは実行と終了を管理する仕組みであり、悪意あるコード用のセキュリティサンドボックスではありません。

ワークスペースと元ファイルは別途バックアップしてください。手動更新確認には、設定された発行者エンドポイントと検証キーが必要です。未設定の状態で更新を取得することはありません。パッケージの整合性検証と、発行者の本人性を証明する署名は別のものです。

1210. トラブルシューティング

症状確認すること
エディターが利用できない必要なWebView2ランタイム、パッケージ一式、表示された診断を確認します。
SDK・起動エラーパッケージREADMEと導入済みSDK/ランタイムを比較し、現在の検証済みショートカットから起動します。
起動直後にカタログが空下部の読込状態を確認し、メタデータ索引の準備を待ちます。空表示だけでデータ消失を意味しません。
除外行が発生した元の値、理由、件数を確認し、残った観測で分析できるか判断します。
インポートに確認が必要列設定、元の時刻、商品設定の不足・矛盾を修正します。構造エラーは通常の不正行とは別です。
ストラテジーが動かない現在のコードの検証、強調された設定、対象データ、実行フィード、ウォームアップ長を確認します。
FX最大経過時間のエラー実際に同一通貨のデータと口座を合わせるか、履歴FXレートと許容時間を用意します。価格通貨を偽って変更しません。
foldが提案されない共通期間、Date From/To、十分な観測を確認します。以前の不要な選択はClear dataで解除できます。
SharpeがN/Aカードにマウスを合わせ、日次リターン数や終了純資産など具体的な理由を確認します。
接続できるが気配・注文に失敗正確な口座/契約、環境、利用権、ブローカーの診断を確認します。検索成功と価格利用権は別です。
照合エラーで商品編集できない稼働中のストラテジーを停止し、利用可能なRetry reconciliationと実際のブローカーエラーを確認します。再照合は発注しません。

問い合わせには、リリース、操作、機密情報を除いた完全な診断、ストラテジー、データと期間、バックテストか口座接続かを添えてください。キー、パスワード、口座の生の識別子は共有画像やログから除いてください。

13利用上の説明

バックテストとサンプルストラテジーは研究用です。価格、流動性、費用、企業行動、情報の利用可能時刻、FXの仮定で結果が変わります。収益性、実際の注文待ち順位、将来の約定を保証するものではありません。Snapshotとpublication approximationでは情報の利用可能時刻の意味が異なり、公表日時があるだけでその時点の完全な履歴アーカイブとはいえません。

データ、取引所購読、口座権限には各サービスの条件が適用されます。インポートや連携機能の表示によって利用権が付与されることはありません。同梱ソフトウェアには依存関係の通知があり、任意の外部SDK・リーダーやお客様のデータとは区別されます。商取引上の条件は本技術マニュアルから推定せず、サイトのサービス条件・販売者表示を確認してください。

14M141 複数建玉の選択とストラテジー別の銘柄

Lightspeed の照合時に、認証済み口座の建玉・注文から対応する米ドル建て株式の銘柄情報を自動登録できます。登録済み建玉の決済のために、ストラテジーの銘柄選択は不要です。口座情報、市場データ、未確認注文の検証は継続します。

Positions で Ctrl / Shift を押して複数行を選択し、右クリックの Close selected positions… を開きます。銘柄ごとの合計数量を確認して一度送信します。同一銘柄のネット建玉行は一つの反対売買にまとめ、未選択数量を残します。拒否・Unknown があれば残りの送信を中止し、自動再送しません。ブローカーの税務ロット割当は画面の FIFO 行と異なる場合があります。

Lightspeed では他のストラテジーを稼働させたまま、停止中ストラテジーの Instruments セルから Add stock instrument で別の銘柄を追加・適用できます。稼働中の実行状態・既存銘柄・注文を維持し、既存銘柄の変更・削除は許可しません。新しい銘柄の開始には、接続中のデータフィードに一致する購読と新鮮な気配が必要です。銘柄選択によるデータフィードの自動再接続は行いません。

過去値は context.Bars.Open.Last(10)、context.Quotes.Bid.Last(8) で参照できます。観測数が不足する場合は Count または TryLast を使います。Last(0) は現在値で、銘柄・実行ごとに最大4,096件を保持します。確定済み OHLCV は context.Bars.Closed、再起動時は履歴を初期化します。APIガイドと[M141の詳細](POSITIONS_AND_HISTORY_M141.md)を参照してください。

15未約定注文がある建玉の決済

Lightspeed のネット建玉の決済・縮小では、確認画面に先に取り消す同方向の未約定注文を表示します。確認すると、表示された注文の取消と決済数量を承認したことになります。Studio はストラテジーのコールバックを一時的に待機させ、取消を送信し、ブローカーの最終取消確認を得てから決済注文を送信します。買い建玉の決済は SELL、売り建玉の買戻しは BUY のままで、決済を空売り新規注文に変換しません。

建玉の決済前にストラテジーを手動停止する必要はありません。注文変更が Acknowledged のまま照合待ちの場合、Studio はストラテジーのコールバックと共通のロック内で、ブローカーの確認を短時間待ちます。確認済みの指値注文と同じ ID・数量で価格だけが変更された場合は、自動で最新状態を確認します。ストラテジーの内部変数や起動状態は初期化しません。

建玉・数量・約定・確認済み注文 ID が変化した場合、取消が拒否・Unknown となった場合、制限時間内に確認できない場合は、決済注文を送信しません。Orders と Journal を確認し、照合後に残建玉を再確認してください。依頼・診断情報は Journal に保持し、自動再送はしません。他の未約定注文は有効なままです。処理後は実行中ストラテジーが再発注できるため、決済後も建玉を持たない状態にしたい場合は先にストラテジーを停止してください。Saxo の個別建玉 ID による決済手順は従来どおりです。

ストラテジー履歴のウォームアップとエラー箇所

気配値・バーの参照履歴は、ストラテジーの起動ごとに空から始まります。過去の値は、注文処理の前で TryLast(offset, out value) により存在を確認してください。Last(1500) には1,501件必要です。チャートに読み込んだ履歴とは別です。新しく検証したコードでは、実行時エラーにコールバック、ファイル名、行番号、例外の種類とメッセージが表示されます。該当箇所を修正・検証し、口座を照合した後、明示的に再起動してください。エラーによる注文の自動再送は行いません。行情報のない古いコードは再検証が必要です。

他のストラテジーが稼働中でも、停止中の2つ目のストラテジーのコードを選択できます。全ストラテジーが停止するまでは、適用済みの気配値購読を保持します。2つ目のコード選択で購読を解除したり、稼働中のインスタンスを初期化したりしません。この間、Lightspeed では確認済み銘柄と気配値購読の追加が可能です。各ストラテジーにはそれぞれ別の対象銘柄が必要です。

大容量のローカルデータのインポート

ローカルデータのインポートには固定の行数上限はありません。ファイルは逐次処理され、中止した場合は不完全なデータセットを公開しません。ファイルサイズ、1レコードの長さ、フィールド数の検証は引き続き適用されます。更新後は「Needs attention」となったファイルだけを再インポートしてください。インポート済みのデータセットは引き続き利用できます。

cTrader の1分足CSV

cTrader フォルダー内の Timestamp,Open,High,Low,Close,Volume 形式は自動インポートに対応しています。Timestamp は足の開始時刻を示し、高値・安値・終値・出来高の確定値は1本分の時間が経過してから利用できます。SYMBOL Minute_JST.csv では1分足、Asia/Tokyo、既知の通貨ペア・貴金属ペアの価格通貨(XAUUSD → USD など)を認識します。「Review file」で変更できます。別形式や矛盾する情報は引き続き確認が必要です。「Import files」「Inspect dropped rows」もメイン画面と同じソフトウェアレンダリングを使用します。

数量欄が空のティックCSV

ヘッダーに Bid Size と Ask Size があっても、行末の数量が省略されているティックCSVを読み込めます。数量がない場合は不明として保持し、後続の行に数量があればその値も保持します。必須の日時とBid/Ask価格は引き続き検証します。元のCSVを編集する必要はありません。「Needs attention」のファイルだけを再インポートしてください。「Dataset preview」もソフトウェア描画を使用します。

表示範囲の選択とフィード履歴超過からの復旧(M168)

Lightspeed 実行中の保持バッファー超過は、対象戦略の注文取消を確認し、新しい有効な気配を待って自動復旧します。建玉と Journal を保持し、戦略の private 状態と観測履歴は再初期化します。Stop で自動再開を中止できます。結果不明の要求は再送しません。適用条件・上限は[復旧の説明](CATALOGUE_SELECTION_FEED_RECOVERY_M168.md)を参照してください。

大量データのアンロード

1,000件を超えるソースパーティションを選択でき、バックグラウンドで進捗表示・中止が可能です。新しいアンロードは復元不可で、保存領域の回収はバックグラウンドで進みます。銘柄別の1行に多数のパーティションが含まれる場合があります。[大量データの処理](LARGE_DATASET_UNLOAD_M169.md)も参照してください。

16データセットによる初期値と探索範囲の提案(M184)

Backtest・Optimize・Research では、選択した市場データの銘柄が一つの場合、Symbol / SymbolName などの対応パラメータを自動入力します。呼値・数量刻み・Pip・取引所タイムゾーンは、明示されたメタデータ、または同じデータセット選択に保存した設定を使用します。価格の小数桁から呼値を推測しません。複数銘柄の場合は戦略の銘柄を明示してください。手入力・読み込んだパラメータセットは保持されます。Use dataset values を押すと対応する銘柄設定を明示的に置き換えます。

数値の探索範囲には、宣言された制約・現在値・識別できる意味(係数、Tanh の閾値、期間、呼値単位の距離など)に基づく初期案を表示します。最適な売買設定や価格履歴に適合した推定値ではありません。各行の Suggest はその行を、Suggest ranges はチェックした数値行を置き換えます。手動の範囲や候補値リストは明示的に置き換えるまで保持され、探索対象を勝手に追加しません。Research は通常どおり学習期間内で探索し、その後 OOS 検証を行います。

実行中の Search trials は、実行中・待機中・完了の順に並びます。Score の降順など別の並び順を列見出しで選ぶと、値の変化に合わせて行が移動します。選択した候補は維持されます。

17推定刻み値と日付別のJPX呼値(M188)

Quote/Tradeデータの選択時、未設定の価格刻み・数量刻みを小さなサンプルからバックグラウンドで推定します。「推定」と表示し、編集可能です。データの明示設定、保存値、手入力を上書きしません。1ファイル最大2,048レコード/4 MiB、1銘柄最大4パーティションに限定します。観測された価格・数量の刻みは、取引所の呼値や売買単位を保証しません。取引所タイムゾーンは明示設定や取引所情報から設定し、JST表記だけでは取引所を推定しません。

JPX普通株では「Load JPX tick references…」から、日付別FLEX BP呼値テーブルと銘柄基本情報の検証済み参照ファイルを読み込めます。tools/export_jpx_tick_references.py は、お客様のレビュー済みFlexDom/jpxnormデコーダーと元のFLEX参照アーカイブを使用し、圧縮ファイル全体、連番、適用日、証券種別01、100株単位を確認します。ライセンス対象の元データは配布物に含めません。

Backtest/Optimize/Researchでは、注文価格と東京の取引日からテーブル01/03の価格帯を選び、指値・逆指値の検証、変更、丸め、保護注文に適用します。参照日の欠落や未対応テーブルでは停止し、固定呼値に自動で切り替えません。テーブル変更で不適合となる未約定注文は拒否し、価格の変更や再送は行いません。対応期間は2021年1月1日~2027年2月28日です。2027年3月以降の制度変更は別途検証が必要です。このインポーターは普通株用で、ETF等は対象外です。

価格は未調整の市場価格が必要です。価格基準が未指定なら「These are raw, unadjusted JPX prices」を明示的に確認し、実行設定に記録します。調整済みデータは確認の有無にかかわらず拒否します。インポート済みデータ本体は書き換えません。日付別ルールと参照ファイルのハッシュも実行識別情報に含まれます。

Symbol.TickSizeAt(price) は指定価格での呼値、Symbol.NormalizePrice(price, side, levelsAway) は価格帯を考慮した丸めです。JPXリプレイの Symbol.TickSize は直近の観測価格に対応しますが、最初の観測前は基本刻み値です。注文価格には TickSizeAt/NormalizePrice を使用し、全期間で1つの呼値をキャッシュしないでください。途中で適用テーブルが変わる場合、価格別の起動時処理は日付付き観測を待ちます。日付別ルールがないリプレイは従来の固定刻み値を使用します。FlexMMの指値生成は既に NormalizePrice を使用しているため、設定した価格帯に従います。

公式資料:JPX呼値、売買単位。

初期資金と最適化の選択肢

Backtest・Optimize・Research の上部に Initial cash(初期資金)があります。3ページで同じ値を共有し、通貨は Backtest の Account currency で指定します。完了済み結果は変更しません。選択肢が定義された文字列はプルダウンで固定値を選びます。最適化対象にチェックすると既定では全候補を含め、Values… で絞り込めます。保存済みの候補は維持します。FlexMM の Buy/Sell/Exit の形、特徴量1~6、演算子1~3、最終関数に対応します。探索は指定した手法と評価回数上限に従います。

Trade History は、建玉の開始から全決済・反転までを1行に集約します。買い増し・部分決済も同じ行です。Fill price は数量加重平均の建値、直後の Close price は数量加重平均の決済値です。Fill time は初回約定時刻、Close time は最終決済時刻で、列幅は時刻表示に合わせます。Realized P&L は決済約定の確定損益合計(手数料控除前)を小数点以下2桁で表示します。Open行は未決済で決済時刻・決済価格は空欄、損益は実現した部分決済分のみです。反転約定と手数料は旧・新建玉へ配分します。DDは建玉のMAEです。元の約定記録は保存し、建玉リンクのない旧結果は再実行が必要です。配当・先物清算・資金調達のキャッシュフローは決済約定とは別です。分割等では株数が変わる場合があり、DDのツールチップで建数量・決済数量を確認できます。

Results一覧では、Dateの直後に Time elapsed(実行全体の経過時間、分単位・小数点以下2桁)、Symbol を表示します。同じ銘柄のQuoteとTradeは銘柄名を一度だけ表示し、複数銘柄では各銘柄を表示します。保存済みの実行情報を使い、失敗した実行も時間が記録されていれば表示します。

初期資金・CAGR・往復取引(M191)

未編集の初期資金は 1000000 JPY相当 が既定です。JPY以外はECBの2026年10月30日参照レートによる推定値を表示し、編集できます。手入力・読み込んだ資金額は維持します。未対応通貨は金額を明示入力してください。この参照値はリプレイの過去為替レートには使いません。

Results一覧はSharpe ratioの直後に CAGR(年平均成長率)を表示します。計算は (最終純資産 / 初期資金)^(365.25 / 観測期間の日数) - 1。実行に要した分数ではなく、選択結果の最初・最後の観測時刻を使います。Researchは表示中の最終OOS区間だけを対象とし、独立区間を連結しません。短期間は極端な年率となる場合があります。初期資金がゼロ、最終純資産が負、期間がゼロ、計算不能なら空欄です。# of Trades は完了した往復取引数で、Open行は含めません。戦略名の列幅は内容に合わせます。

Pain Indexと滑らかさ(M192)

Results一覧はCAGRの直後に Pain Idx、その次に Smoothness を表示します。Pain Idxは、過去の純資産ピークからの下落率を経過時間で加重平均した値です。小さいほど良好です。各イベント後の評価値を次のイベントまで保持し、夜間・週末も含めます。同時刻のイベントは時間の重みを持ちません。チャートの表示点を間引く前に集計します。

Smoothnessは Zephyr K-ratio(回帰直線の傾き÷傾きの標準誤差)です。観測のあったUTC日ごとの最終純資産を、連続した日番号に対して回帰します。高い正の値は安定した上昇、負の値は下降を示します。年率換算せず、欠測日を補完しません。最終日は部分的なセッションとなる場合があります。同程度の期間・頻度で比較してください。日中の下落は日末値に残らないことがあるため、Pain Idx・最大DD・曲線も確認します。観測日が3日未満、初期資金が正でない、横ばい、数値精度上完全な直線の場合は有限のK-ratioを表示できません。Pain Idxには正の経過時間も必要です。

Backtestはその実行、Optimizeは最良の成功候補、Researchは表示中の最終独立OOS区間が対象です。新しい集計情報を持たない、間引かれた過去の結果は「—」となり、再実行が必要です。全評価点が残る過去の結果は、保存ファイルを書き換えず計算できます。Date列は時刻表示に合わせた幅になります。定義と対象期間はツールチップで確認できます。

定義の出典:Zephyr StatFACTS。

一括インポートで不足する設定

CSV/CSV.GZ の一括インポートでは、元データのタイムゾーン・価格通貨が不足している場合に、保存済みの Settings → Display time zone と Base currency を自動使用します。追加の入力・確認操作は不要です。元データに明示された値を優先し、使用した既定値はインポート画面に表示します。日本時間・円建ての場合は、事前に Tokyo Standard Time / Asia/Tokyo と JPY を保存してください。後から Data → Edit metadata で修正できます。元タイムゾーンの修正時は UTC リプレイ時刻を再構築し、通貨の修正では数値価格を換算せず通貨の宣言を変更します。Settings を変更するだけでは既存データや結果は変わりません。Symbol 列を優先し、列がない場合はファイル名を使います。CompanyInfo.asc は不要です。

ウィンドウには並列ワーカー数の理由も表示されます。CPU 1 スレッドとメモリ 2 GiB を確保し、残りを 1 ワーカー当たり 3 GiB として計算します。ファイル数が上限です。12 スレッド・メモリ予算 16 GiB の場合は 4 ワーカーになります。

初回起動時に検出した PC のタイムゾーンから、編集可能な通貨の既定値を設定します。日本は JPY、ヨーロッパは EUR、その他は USD です。Settings でタイムゾーンを変更すると Base currency の候補も変わりますが、保存前に編集できます。再起動時は保存済みの通貨を維持します。これは画面の既定値であり、銘柄の公式通貨を保証するものではありません。

最適化パラメータの保存と試行内容のコピー(M206)

Optimize の Save Opt. param は、固定値、探索対象のチェック状態、数値の Min/Max/Step、候補値リストを .qroptparams に保存します。Load Opt. param で互換性のある検証済み戦略に復元できます。データ、期間、初期資金、探索上限は変更しません。未選択の範囲も保持し、読み込んだ範囲はデータ変更時の自動提案で上書きしません。型・パラメータ定義が同じでもコードが異なる場合は互換性を確認します。従来の .qrparams は固定値の保存用です。

実行中の Search trials の Parameters セルをクリックすると文字列を選択できます。Ctrl+A でその候補の全文を選択し、Ctrl+C または右クリックメニューでコピーします。内容は読み取り専用です。

Execution の Choose a validated strategy は C# type 列の代わりに Description を表示します。マウスを置くと全文が表示され、名前・説明で検索できます。従来の C# 型名による検索も利用できます。説明は該当するソース版に対応します。

有効な気配の待機と戦略ごとの銘柄適用(M207)

実行中の戦略で、気配が欠けている・不正・既存の鮮度や取引状態の条件を満たさない場合、その戦略は Waiting for fresh quotes になります。通常の市場・注文ライフサイクルのコールバックを一時停止し、新しい有効な気配と未確認要求のブローカー確認がそろうと、同じ実行状態で自動再開します。OnStart と private 変数は再初期化しません。待機中の市場イベントは後から再生せず、作成途中のバーは破棄します。他銘柄の正常な戦略は継続します。

ブローカー照合、Stop、および管理クロックによる取消は引き続き利用できます。既存注文は追跡を継続し、気配待機だけでは取り消しません。未送信と確認できた要求は拒否として記録し、再送待ちにはしません。結果不明の要求は引き続きブロックされ、再送しません。フィード切断・セッション変更、口座・認証エラー、戦略エラーは従来の復旧規則に従います。Stop で気配待機からの自動再開を解除します。

再接続後も保存済み銘柄は保持しますが、各戦略で明示的に Apply するまで Instruments セルは空欄です。1行の適用では別の保存済み行を適用しません。同じ銘柄を使う場合も各行の適用が必要です。既に適用済み・実行中の他戦略の選択は維持します。