前回の「市場トレンドを売買ルールに入れる」では、以下のように市場トレンドを判定しました。
ストラテジ対象銘柄のうち、値上がりした銘柄が一定数以上
今回は、もっと単純に 日経平均を利用して市場トレンドを判断する方法を考えます。
【免責事項】
・本ブログの内容において、正当性を保証するものではありません。
・本ブログを利用して損失を被った場合でも一切の責任を負いません。
・最終的な決定は、ご自身の判断(自己責任)でお願い致します。
・本ブログの内容において、正当性を保証するものではありません。
・本ブログを利用して損失を被った場合でも一切の責任を負いません。
・最終的な決定は、ご自身の判断(自己責任)でお願い致します。
日経平均を利用して市場トレンドを判断する
String型@作用素
コード中で日経平均の値を参照するために、String型@作用素 を利用します。
string型@作用素は、以下のようにstring型の式を{}で囲って式に対して指定します。対象の式に組み込み関数があると、組み込み関数の対象となる銘柄が値で指定した証券コードの銘柄になります。
ーマニュアルより
Protraでは一般に銘柄ごとにコード内容が実行されますが、String型@作用素を使えば 他銘柄の値を参照することができます。
リンク先の例でも示されている通り、Protraでは証券コード”1001″に日経平均が割り当てられています。これを利用して市場トレンドを判断してみます。
実装
早速 実装してみましょう。コードは非常に簡潔に書くことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#日経平均のx日平均を計算 x = 5 if !{-(x-1)}{"1001"}Close return end j = -1 sumNikkei = 0 while j + 1 < x j = j + 1 sumNikkei = sumNikkei + {-j}{"1001"}Close end avgNikkei = sumNikkei / x #買い条件 if (avgNikkei*1.0 < {"1001"}Close) |
当日を含む5日間の日経平均終値の平均値より 当日の日経平均終値が大きい場合、短期的に市場が上昇トレンドにあると判断し、買い付けます。
xを変更して計算期間を変えたり、avgNikkeiに乗算する係数の調整が可能です。
きちんと上昇トレンドを評するためには、上昇率を計算した方が良いかもしれませんね。是非いろいろ試してください!
まとめ
String型@作用素を使うと、以下のような応用も考えられます。
- 日経平均は上昇しているのに、値下がりしている出遅れ銘柄を探す
- 値動きの相関が高い銘柄同士を比較し、利ザヤを狙う
機会があれば、記事にしてご紹介します。