【2-2】 トリガー条件表(買い)を作る
( 1 ) 元のトリガー条件表(買い)
(拡張4)No.2の「TRG 陰陽/順 (B)」は、買いのトリガー条件表です。これを思いついたときは、次のような設定をしていました。

12行を設定していますが、内容は簡単です。
- No2.行~No.7行で当日の株価の値幅(ザラバ高値-ザラバ安値)が当日の終値の何%の値幅であったのかを計算します。その値幅率が1%以上なら買い。
- No.8行目で、過去30日間の最小値は何日目であるかを計算します。最小値から1日目(最小値の翌日)であれば買い。
- No.9は当日が陽線であれば買い。
- No.11は1日前が陰線であれば買い。
- No.12は2日前が陽線であれば買い。
- No.13は3日前が陽線であれば買い。

言葉で表せば、
- 3日間陰線(図のc→b)が続いた後、
- 当日(a)が陽線で、
- その日の値幅が1%以上あって、
- 昨日(b)は過去30日間の最小値であった
ときに買いマークを出す条件表です。

この思いついたときのNo.2「陰陽/順 (B)」の成績はどうなっているのでしょうか? 検証してみます。
- ランダム200銘柄を選択して、「新規検証」にいき、条件表No.2を選択し、
- 検証期間(2007年1月~2016年12月)を決め、
- 「売買共」を指定する。
(条件表が買いの条件ばかりなので、売買共のときは買いの条件の検証をすることになる)、
- 「売買ルール」を設定します。

- 20日間で20%の利益を出すことを目的としているので、売買ルールは右図のようにします。
- 買いマークがでたら、翌日の始値で買う
- 20日間が経過したら翌日の始値で決済する(時間切れ)
- 20日間のうちで利利益が+20%になったら利食いする(利食い)
- 「実行」で検証が開始します。

検証リストが表示されたら、「損益経過」をクリック。
「損益経過の指示」の画面が現われるので、次図のような指示をします。

最適化をしていないNo.2のトリガーでは、
- トレード数は2000回以上(全数トレード)、
- 平均利益率は0.5%以上
- 勝率は50以上であればよい。
これが合格の条件です。
次図は最適化する前のNo.2「陰陽/順 (B)」の成績です。

- トレード数は2400回(全数トレード。2000回以上あるので合格)
- 平均利益は+1.32% (0.5%以上あるので合格)
- 勝率は55.2% (50%以上なので合格)
このNo.2の成績は最適化していないのにナカナカの成績を出しています。
( 2 )No.2トリガー条件表(買い)を最適化する

No.2トリガー条件表を最適化します。
- ランダム200銘柄を選択して、「新規検証」にいき、条件表No.2を選択し、
- 検証期間(2007年1月~2016年12月)を決め、
- 「売買共」または「買いだけ」を指定する。
- 「売買ルール」は先ほどの検証と同じルールにする。
- 「変化させるパラメータや以上以下の変化の範囲を指定する。
この例では、①No.8行のパラメータを10日~120日の範囲で10ずつ変化させ、
②No.7行の以上以下を1%~4%の範囲で0.2ずつ変化させる、としました。
- 「実行」で最適化が始まります。

最適化が終わりました。約49分かかりました。
最適リストの成績は、常に全数トレードをしたときの数字です。
- 「ソート」をクリックして、
- 「評価得点」の大きい順に並べ替えます。
最適化したときの合格基準は、
- 全数トレード数が1000回以上
- 平均利益率が1.0%以上
- 勝率が50%以上
です。

- 「評価得点」順に並んでいる条件行のリストを下へスクロールして、トレード数が1000回以上のものを探すと、139行目が1039回となっています。
この行は8線(最小値の期間)が100日で、7線(値幅率)が1.6%以上になっています。
この数字を使ったときの平均利益率は2.08%、勝率が59.1%なので、2つとも合格基準を満たしています。
- No.139行を選択し、「書き換え」でトリガー条件表No.2「陰陽/順 (B)」のパラメータを(100日)に、以上以下の数字を(1.6%)に書き換えます。
( 3 )最適化したトリガー条件表(買い)を検証する(選抜トレード)
最適化したNo.2「陰陽/順 (B)」の成績は、全数トレードをした場合、①トレード数は1039回、②平均利益率は2.08%、③勝率は59.1%になることはわかっています。だが全数トレードは売買マークがでたもの全てをトレードした場合の成績です。
同じ日に異なる銘柄(例えば10銘柄)が買いマークをだしているなら、10銘柄を仕掛けることになりますが、これは現実的ではありません。10銘柄のうちどれかの銘柄を仕掛けるのが普通です。複数の銘柄から1銘柄を選んでトレードすることを「選抜トレード」と呼びます。実際的な選抜トレードではどのような成績になるのかを検証してみます。

- ランダム200銘柄を選択して、「新規検証」にいき、条件表No.2を選択し、
- 検証期間(2007年1月~2016年12月)を決め、
- 「売買共」または「買いだけ」を指定する。
- 「売買ルール」はいつものように(期間切れ20日・利食い+20%)です。
- 「実行」で検証が開始します。

検証リストが表示されます。
最適化ではトレード数は1039回となっていましたが、検証リストでは1040回になっています。
パソコンの小数点以下の計算では誤差が生まれます。例えば1÷3を計算したとき、正しい答えは=0.3333333・・・と小数点以下に「3」が無限に続きますが、パソコンは0.333333と小数以下6桁くらいで打ち切るので正しい数値にはなりません。
このためこの例では1039回と1040回の違いがでていますが、気にするほどの差ではありません。
- 「損益経過」をクリック。

「損益経過の指示」の画面が現われるので、右図のような指示をします。
- (理論金額で売買する)は必須です。
- 「仕掛ける銘柄数の制限」は(1銘柄まで)の選抜トレードとする。
- 選抜するときの基準は(株価が高いもの)とします。
- 「開始」で、200銘柄全体の成績がまとめられます。

選抜トレードの成績は
- トレード数は465回
- 累計損益%は+368.1%
- 平均利益%は+0.79%
- 勝率 は、54.0%
- PF は、1.21倍
です。
全数トレードでは平均利益が2.08%、勝率は59.1%ありましたが、実際のトレードに近い選抜トレードでは平均利益%は0.79%、勝率は54.0%と成績は低下しています。
選抜トレードの成績は全数トレードよりも低下するのが普通です。
選抜トレードは実際のトレードに近いので、ここでよい成績がでれば一番よいのですが、成績が悪くても「オートマ」にかけると飛躍的に成績は向上します。
ただしオートマがチャートを加えて売買マークを絞る分だけトレード数は少なくなります。
トリガー条件表の内容によりますが、大雑把にいうとトレード数は、トリガーだけのトレード数の1/10か1/20くらいに減ります。この例では最適化したトリガー条件表No.2の選抜トレード数は465回なので、1/10なら46回、1/20なら23回のトレード数に減ります。
だからここでの成績で一番大切なものはトレードが多いかtどうかです。この例のトレード数465回がやや不足しています。トリガー条件表が選抜トレードをしたときの合格基準は以下のものにしておきます。
- 選抜トレード数は500回以上 (1000回以上が望ましい)
- 平均利益率は0.5%以上 (1.0%以上が望ましい)
- 勝率は50以上であればよい。
これが合格の条件です。これに合格しているトリガー条件表は「オートマ」にかける価値があります。
( 4 ) 最適化リストから、合格基準に合うものをさらに見つける方法
上で見つけたトリガー条件表No.2「陰陽/順 (B)」(最小日数=100日・幅%=1.6%)の選抜トレードの成績は、トレード数が465回だったので、惜しくもトレード条件表として合格することはできませんでした。だが他にも合格する可能性があるものがあるはずです。

メニューの「最適化」→「最適条件行のもとめかた」にいきます。
- No.2 「TRG 陰陽/順 (B)」を選択し
- 「最適リストを開く」ボタンをクリック。
最適化リストは条件表No.ごとにファイルに記憶されます。
No.2を最適化したときは、No.2の最適化リストが記憶されるので、No.2については、時間のかかる最適化を繰り返す必要はありません。
- 最適化リストが表示されたら、「評価得点」順にソートし、
- トレード数が1000以上、平均利益率が1%以上、勝率が50%以上 のものを探します。
- は(100日・1.6%)で当初見つけたもの。全数トレード数は1039回だったが、選抜トレードがは465回で不合格。
- は(100日・1.4%) 全数トレード数は1081回だが、これを最適条件行として検証すると、選抜トレードは479回で不合格。
- は(100日・1.2%) 全数トレード数は1121回だが、これを最適条件行として検証すると、選抜トレードは494回で不合格。
- は(40日・3.0%) 全数トレード数は1025回だが、(c)のトレード数1121回よりも少ないので、検証はしない。

- は(50日・2.4%) 全数トレード数は1200回だが、これを最適条件行として検証すると、選抜トレードは486回で不合格。
- は(40日・2.4%) 全数トレード数は1344回と多い。これを最適条件行として検証すると、選抜トレードは544回、平均利益率が1.25%、勝率は54.2%で合格。
- は(10日・3.4%) 全数トレード数は1563回。これを最適条件行として検証すると、選抜トレードは645回、平均利益率が1.03%、勝率は52.4%で合格。
(f)も(g)も合格ですが、ここでは平均利益率が1.25%と高い(f)をNo.2の最適条件行とします。
ただし、本章の「(4) 最適化リストから、合格基準に合うものをさらに見つける方法」をし始めるとキリがないので、「(2)No.2トリガー条件表(買い)を最適化する」で、初めてトレード数が1000回を超えたときの最適条件行の(100日、1.6%)としておきます。
|