EasyLanguage 基礎の基礎 プログラムの書き方⑩クロス

さて、前回の記事で移動平均が学べました。
こうなると、試してみたくなるのが投資戦略の定番中の定番、「ゴールデンクロス」です。
ゴールデンクロスで売買
ゴールデンクロス、つまり長期の移動平均を短期の移動平均が抜いたら買う、というのをEasyLanguageで書いてみましょう。
cross
EasyLanguageでは、このように「2つの値がクロスしたら」というのをcrossという予約語を使って判定できます。crossの代わりにcrossesでもOKです。
crossの後には、必ずAbove, Below, Over, Underのいずれかをつけなければいけません。
つまり、「上にクロスしたのか」、「下にクロスしたのか」を指定します。
コード例
では、やってみましょう。
Vars: MALong(0),MAShort(0); //移動平均を入れておく変数
Vars: periodShort(14); //短期移動平均の日数
Vars: periodLong(100); //長期移動平均の日数
MALong = Average (Close,periodLong); //長期移動平均を求める
MAShort = Average (Close,periodShort); //短期移動平均を求める
If MAShort crosses over MALong Then Buy 1000 shares next bar at market; //ゴールデンクロスで売買!
いかがでしょうか、「MAShort crosses over MALong」という箇所で、「短期移動平均が長期移動平均を追い抜いたら」というのを意味しています。
この箇所がtrueになれば、buyが執行されるのです。
デッドクロスで決済
され、ゴールデンクロスで買ってもちゃんと利食いしなければなりませんので、逆に、デッドクロスで決済するコードを書いてみましょう。
単純に逆にすればOKです。
If MAShort cross under MALong then Sell 1000 shares next bar at market; //デッドクロスで決済
EasyLanguage 基礎の基礎、次の記事はこちら
ちなみに前の記事はこちらから