前述した等高線グラフ化する最適化のマクロでは、複数の判断基準を張り付けることができません。
 そこで、複数の判断基準をシート上に貼り付けて比較できるようにしたい場合、次のようなマクロを使用します。マクロ名は、「Optimize」です。

 では、このマクロの書き換え方を解説いたします。
 次のコードはマクロ「Optimize」を一部抜粋したものです。
optmstart_a = 1
optmstart_b = 10
optmend_a = 9
optmend_b = 20
stepnum_a = 1
stepnum_b = 1
中略(
With shtestima

'変数の範囲を指定する
For a = optmstart_a To optmend_a Step stepnum_a
For b = optmstart_b To optmend_b Step stepnum_b
shtestima.Range("a4").Value = a
shtestima.Range("a6").Value = b

'変数を代入したときの結果を「最適化」シートに順番に貼り付ける
shtoptm.Cells(k + dRow, 1 + dCol).Value = a
shtoptm.Cells(k + dRow, 2 + dCol).Value = b
shtoptm.Cells(k + dRow, 3 + dCol).Value = shtestima.Range("e2").Value
shtoptm.Cells(k + dRow, 4 + dCol).Value = shtestima.Range("e3").Value

shtoptm.Cells(k + dRow, 5 + dCol).Value = shtestima.Range("e4").Value
shtoptm.Cells(k + dRow, 6 + dCol).Value = shtestima.Range("e5").Value
という箇所があります。
最適化をする際に重要になるのは、ほとんどここだけですので、抜粋して意味を解説いたしますが、基本的には等高線を用いた最適化のコードとあまり変わりません。
変数の変化する範囲を書き換える方法は次のようになります。
optmstart_a = 1
optmstart_b = 10
optmend_a = 9
optmend_b = 20
という箇所があります。
これは、変数aと変数bをそれぞれ「どの値からどの値まで変化させるか」を指定するステートメントです。
例えば、移動平均線の算出日数を指定する変数aを1~10 まで、変数bを11 ~20まで変化させたい場合、
optmstart_a = 1
optmstart_b = 11
optmend_a = 10
optmend_b = 20
というように書き換えます。
そして、変化させたい値が大きくなってくると、計算に時間がかかってしまいますので、そのような場合は、「1~20まで2ずつ変化させる」というふうに書き換えることが可能です。
その場合は、
stepnum_a = 1
stepnum_b = 1
の部分を次のように書き換えます'初期設定では1になっています(。
stepnum_a = 2
stepnum_b = 2

こうすることで、計算を素早く終わらせることも可能になります。
そして、変化させたいセルの場所を変えたい場合は次のように書き換えます。
shtestima.Range("a4").Value = a
shtestima.Range("a6").Value = b
という箇所の
 
.Range(“a4”)の「a4」を書き換えたいセルの名前にします。
例えば、変数aとして変化させるセルの場所をセルB1にしたいときには、
'変数のセット
.Range("b1").Value = a
.Range("a6").Value = b
というように書き換えます。
そして、このコードの後半には、検証結果をグラフ化する作業も書き込まれております。
初期設定では、シート「最適化」のC列、D列をグラフ化しているので、隣の列などを比較したい場合などは、グラフの選択範囲を直接マウスで移動するようにしてください。
 0703
↑最適化グラフの例。C列、D列の選択範囲をずらすことで、比較する計算結果を選択できます。
そしてさらに、このプロシージャでは最適化の結果、最も良いパフォーマンスが出たパラメーターを「評価シート」内の変数エリアに書き込む、という作業まで自動で行われます。

等高線を描くプロシージャと同様、パラメーターの選択は、機械的に最大値を返したパラメーターを選択しているだけであるので、過剰な最適化に陥っているリスクがあります。最終的にはトレーダー自身が用心する必要があるのでご注意ください。