分析テクニックやストラテジーは、オブジェクト指向EasyLanguageから見るとAnalysisTechniqueクラスとして定義されています。
AnalysisTechniqueクラスには「Initialized(挿入時)」「UnInitialized(削除時)」「WorkSpaceSaving(ワークスペース保存時)」と3つのイベントが用意されているので、いつどのイベントが実行されるのかを、以下のように印刷ログだけ出力するイベントハンドラを用意して検証してみました。
using elsystem; method void AnalysisTechnique_Initialized( elsystem.Object sender, elsystem.InitializedEventArgs args ) begin Print( "-- Start --" ); end; method void AnalysisTechnique_UnInitialized( elsystem.Object sender, elsystem.UnInitializedEventArgs args ) begin Print( "-- End --" ); end; method void AnalysisTechnique_WorkspaceSaving( elsystem.Object sender, elsystem.WorkspaceSavingEventArgs args ) begin Print( "-- Save --" ); end;
検証結果
Initializedイベント
・チャート分析ウィンドウの「分析テクニック(またはストラテジー)挿入」で挿入したいものを選択し、「分析テクニックとストラテジーを設定」ダイアログでOKを押すと発生する
WorkspaceSavingイベント
・チャート分析ウィンドウに挿入している状態でワークスペースの保存(Ctrl+S)を選択すると発生する
・続けてワークスペースの保存(Ctrl+S)を選択した場合は発生しない
・「分析テクニックとストラテジーを設定」ダイアログを開いた場合、そのままOKを選択した場合は発生しない
UnInitializedイベント
・「分析テクニックとストラテジーを設定」で状態をオフにするか削除すると、即発生される(ダイアログでOKを押さなくても)
・「分析テクニックとストラテジーを設定」で「設定」や「すべてのプロパティ」などを開き、何らかの設定を変更した場合、発生される(続けてAnalysisTechnique_Initializedイベントハンドラも発生される)
特にInitializedイベントは、フォームの初期設定や事前処理などに使えるので、トレーディングアプリを作るなら利用頻度が高いと思います。
AnalysisTechniqueクラスは、他にいくつかプロパティもあるので、イベントハンドラとうまく組み合わせて使っていきたいです。