今回は、EasyLanguage全般に関する小ネタです。(小ネタといいつつ、結構使えると思います)
ストラテジーのバックテストで、複数の銘柄ごとに最適なパラメータを得られたけれど、以下のような悩みをお持ちの方、必見。
・チャートで銘柄を変えるごとにストラテジーのパラメータ値を変えなきゃいけないのが面倒
・ストラテジーとセットで使う分析テクニックのパラメータ値も手動で合わせなきゃいけないのが面倒
通常は、ストラテジーに入力パラメータを設定
例えば移動平均線を利用した分析テクニックやストラテジーを自作する場合、計算足数などのパラメータはInputsで入力パラメータ化する事が多いと思います。
Inputs: inLength(5); Vars: varAvg(0); varAvg = AverageFC( Close, inLength ); Plot1( varAvg, "移動平均線" );
基本的にはこれで良いのですが、バックテストで銘柄コードごとにinLengthの最適値が得られているなら、If記述を活用する事により、手作業で入力パラメータを設定しなくてもEasyLanguage上で現在適用中の銘柄を自動判断し、対応するパラメータを使ってくれます。
例えば、以下のように銘柄ごとの「移動平均線の計算足数」が決まっている場合・・
銘柄コード | Length |
---|---|
1111-TS | 5 |
2222-TS | 14 |
3333-TS | 99 |
(その他) | 20 |
Symbolで現在適用されている銘柄コードを取得できるので、以下のようなEasyLanguageになります。
Vars: varLength(0), varAvg(0); If Symbol = "1111-TS" then varLength = 5 Else If Symbol = "2222-TS" then varLength = 14 Else If Symbol = "3333-TS" then varLength = 99 Else varLength = 20; varAvg = AverageFC( Close, varLength ); Plot1( varAvg, "移動平均線" );
こちらで書くメリットは、自作した分析テクニックやストラテジーを、どの銘柄でも、手作業による設定不要で、使える点です。
例えば、「1111-TS」の日足チャートにこの分析テクニックを適用すると、5日移動平均線が描画されますが、その状態で銘柄コードを「2222-TS」に変更すると、移動平均線が14日に自動で変更されるというわけです。
さらに、レーダースクリーンとチャートをカスタムシンボルリンクで繋げておけば、銘柄コードをクリックするごとに、最適化されたパラメータの分析テクニック&ストラテジーを適用したチャートが表示される・・といった事もできます。
色々と応用が利くので、ぜひ試してみてください。