前回[EasyLanguageでシステムトレード]ストラテジーの最適化を自動で行おう【OptimizationAPIの解説】にて、ストラテジーの最適化を自動で行う方法を紹介しました。
ただ、マネックス証券のマニュアルに載っているプログラムのままでは、ストラテジーの最適化を「始める」ボタンはありましたが、「中止する」ボタンはありません。
したがって、プログラムを間違えて最適化を始めてしまったときに、終わるまで待たなくてはいけません。
それでは不都合なので、今回は「ストップボタン」の作り方を紹介します。コピーするだけで簡単にできるので試してみてください。


目次
InitAppメソッドにボタン追加
前回で解説したように、ボタンの作成は、「InitApp」メソッドで設定していました。
なので、今回もそのInitAppメソッド内に、プログラムを追加します。
といってもやることは簡単で、vars文に、「Button stopButton」を追加して、「startButton」を作っているやり方をそのままマネれば良いだけです。
注意点としては、
- 「Location」は「startButton」の位置と被らないようにする
- ボタンが押されたときに実行するメソッドは、スタートボタンのときと異なるものを設定する(ここでは、OnStopButtonClickメソッドとしています)
- ストップボタンは、スタートボタンと同じ「form1」に追加する(form2とかにしなくてよい)
下にプログラム例を載せていますので、コピーしてお使いください。
stopButton = Button.Create("Stop Optimization", 120, 30);
stopButton.Location(20, 60);
stopButton.Click += OnStopButtonClick;
form1.AddControl(stopButton);
ストップボタンを押したときに実行するメソッドを追加しよう
ストップボタンができたら、ストップボタンを押したときに実行するメソッドを書きましょう。
InitAppメソッド内で、
stopButton.Click += OnStopButtonClick
としてますので、「OnStopButtonClick」メソッドを作成します。(名前は任意です)
最適化を中止する際は、
optimizer.CancelJob( );
と書けば中止できます。
下のプログラムをコピーしてもらえば、印刷ログに「Canceling Optimization」と出て、最適化がストップします。
method void OnStopButtonClick( elsystem.Object sender, elsystem.EventArgs args )
vars: tsopt.Job job;
begin
Print("Canceling Optimization");
optimizer.CancelJob( );
end;
さいごに
ストップボタンを追加する方法を紹介しましたが、いかがでしたでしょうか。
簡単だったかと思います。
これを応用して、いろんなボタンを作成してみるのも面白いかと思います。
次回は、複数銘柄でバックテストを行う方法を紹介します。
