Backtest拡張キットに自動売買検証を定義するには以下のようになります。バージョン1.1で、資金量を設定したり多数のシグナルが同時に検出されたときの選択ルールを設定できるようになりました。</signalSelector></autotrading>@id売買手法につける名前です。@title表示時の名前を書きます。売り"のようになります。@longshortこの手法が買いのストラテジ(long)なのか、空売りのストラテジ(short)なのかを指定します。@maxDayCount1つのシグナルが発生したあと最長で何日そのポジションを保持するかを指定します。この日数が経過すると、利益確定・ロスカットのいずれの条件も発生していなくてもポジションを閉じます。省略すると日数無制限に保持しつづけます。@maxDayCountAction@maxDayCountを指定したときのみ有効です。ignoreかexitのどちらかを指定します。指定した日数が経過したとき、ignoreならそのシグナルは無視され、トレードの成績には反映されません。exitならば、翌日の始値で決済し、それによって出た利益/損失もトレードの成績に反映されます。@initialCash手持ちの資金量を円単位で設定します。これを設定すると、自動売買検証の結果において金額ベースでの利益状況と日付順の売買履歴を見ることができるようになります。指定を省略すると資金は考慮せずにシグナルの一覧だけが有効になります。売買手数料や配当は考慮されません。同一銘柄について複数の取引を並行させることはできません。一度シグナルが発生してポジションを持った場合、それを決済するまではシグナルが発生していたとしても無視されます。@misconfigTradeRule利益確定条件が成立し、その条件に従って取引をクローズしたにも関わらず損失に終わった場合(あるいは、ロスカット条件で利益になった場合)にどのように処理をするかを指定します。有効な値は以下の2つです。それぞれ区別して集計し、結果の一覧でそのことも併記します@exitAndLosscutConflict利益確定とロスカットの量条件が同時に発生したときの処理方法を指定します。有効な値は以下の3つです。片方の指定が当日終値で片方が翌日の指値である場合や、両方の指値のうち片方のみが約定する範囲にあった場合は、どちらの条件が成立したかは区別できるためこの指定とは関係なく成立したほうのみが選択されます。判定不能として処理しますparameterDescriptionパラメータを設定するときの構成を記述します。日足でしか実行されないので、$unitは常に"日"になります。将来、日中データに対応した場合はこの限りではありません。それぞれにつき、項目は以下の3つです。@typeシグナル発生に対してどのように売買するかを指定します。次の4通りがあります。場合にはいくらの指定なのかをするためにsashineエレメントが必要になります。指値をした結果翌日の値動きによって約定しない場合はシグナルは無視されます。利益確定・ロスカット条件をTodayCloseにした場合、条件判定はエントリーした当日から行われます。従って、当日終値で手じまいする場合に限りデイトレードの検証も可能になります。condition条件指定です。この式はbool型を返すものでなければなりません。式を評価してtrueになれば、@typeに書いた行動によって売買を実行します。sashineいくらの指値を指定するかの式です。Yorisashiの場合のみ必要です。parameterパラメータの名前と初期値を定義します。この内容は自動売買検証の実行時にダイアログボックスのGUIでユーザが設定できます。entryColumnシグナルが発生した日付において、指定した式を評価して値を集計表に表示します。上記のサンプルでは、シグナル発生日の25日移動平均乖離率を表示しています。entryColumnの子には次を書くことができます。複数のentryColumnを書くことも可能です。@label列の見出しexpression列に表示する計算式@format数値の表示書式指定exitColumn利益確定・ロスカットのいずれかが発生した日付において、指定した式を評価して値を集計表に表示します。規定の日数が経過したなどで条件が発生しなかった場合は式の評価は行われません。それ以外の動作はentryColumnと同じです。signalSelector同一日に複数のシグナルが発生した場合にどのように扱うかを指定します。資金量を設定した自動売買検証でのみ有効です。@minCashAllocation1つの銘柄に投入する資金の最小値を、その時点での総資産に対する割合を%単位で指定します。@maxCashAllocation1つの銘柄に投入する資金の最大値を、その時点での総資産に対する割合を%単位で指定します。省略時は100%です。@orderシグナルの発生した銘柄が多数ですべてにエントリーできないときの条件づけを指定します。それぞれの銘柄についてsortExpression内に指定した式を評価し、その上位@limitCount個に対してエントリーします。省略時は銘柄数に制限はありません。@orderをdescendingでなくancestingとするとソート順での上位ではなく下位の銘柄に対してエントリーします。資金量の最小値・最大値はいくつか例をあげて説明します。上限10%+下限0%の設定で、5銘柄がヒットした場合、その5銘柄に10%ずつ分配し、残りの50%の資金は温存します。上限10%+下限0%の設定で、20銘柄がヒットした場合、その20銘柄に全資金を5%ずつ分配します。上限20%+下限10%の設定で、20銘柄がヒットした場合、ソートした上位10銘柄に下限の10%ずつを配分します。上限20%+下限10%の設定、手持ちの現金は総資産の40%で、3銘柄がヒットした場合、40%を3分割して13.3%ずつを配分します。上限20%+下限10%の設定、手持ちの現金は総資産の40%で、5銘柄がヒットした場合、ソートした上位4銘柄に下限の10%ずつを分配します。配分割合は総資産に対する割合ですが、実際にエントリーするには現金がなければいけないことに注意が必要です。他の銘柄に資金が拘束されていれば当然売買はできません。この条件に従って配分する資金が決まったあと、取引する株数は単位株数の整数倍になるように決まります。