何事にも勢いって大切だと思うんです。
人生の決断をするときも。
既婚者の方ならば、「結婚」するときって、勢いの部分が強かったと思いませんか?
お相手の収入(ファンダメンタルズ分析)や、過去と将来性(テクニカル分析)をしっかり吟味した上で、判断された方もいらっしゃると思いますが、
多くの方は、勢いに任せた部分が高かったのではないでしょうか?
今回は、株価の勢いを売買のシグナルにする、プログラムを紹介します。
株式投資をするうえで、現在最強のトレードツールは マネックス証券の トレードステーション です。(個人評価)
その、トレードステーションを自由自在に操るには、イージーランゲージ[EasyLanguage]の知識が必要です。
イージーランゲージ[EasyLanguage]?
※すぐに実習(解説)記事に進みたい方は、このページ最初の 目次 3.<実習…> をクリックしてください。
イージーランゲージ[EasyLanguage]はプログラム言語
プログラム言語!? 「そんなの出来るはずない」 「聞いただけで鳥肌が立つ」と思う方が大半ですよね。
EasyLanguageとは?
トレードステーション上のほぼ全てのアクションは、EasyLanguageという独自の言語で構成されます。”Easy”と名付けられている通り、初歩的な英文で記述される非常にシンプルなプログラム言語になります。
例えば、移動平均線がゴールデンクロスした場合に買い注文を出すプログラムは、以下の一文で済むほどシンプルです。
”If FastAvg crosses over SlowAvg then Buy next bar at market ”
出所:https://info.monex.co.jp/tradestation/features/other/ マネックス証券の機能紹介ページ
簡単なんです。だって”Easy”って名前だから。。。。
イージーランゲージ[EasyLanguage]を学ぶには
簡単と言っても、EasyLanguageはプログラム言語です。
しっかり学びたい方におすすめなのが、マネックス証券の公開しているマニュアル
EasyLanguage ホームスタディコース(ガイドブック) です。
https://info.monex.co.jp/tradestation-support/manual.html#01; こちらのページでもらえます。
このブログでは、「EasyLanguage ホームスタディコース」の演習問題を実際に操作しながら解いてゆく、過程を紹介したいと思います。
モメンタム交差の投資戦略をプログラムする。
練習問題: *25 モメンタム交差
◇学習の目的: MRO 関数とユーザー定義真偽式を使用する。
◇詳細
モメンタムが現在の足を含めて 4足連続で下回っておらず、現在の足で0を上抜いたとき買い。
またはモメンタムが現在の足を含めて 4足連続で0を上回っておらず、0現在の足でを下抜いた時に売る。
モメンタムが 2足連続で下降したら決済売り(転売)、2足連続で上昇したら決済買い(買戻し)を行う。
さぁ、始めましょう。
EasyLanguage開発環境(エディタ)にコードを書き込みます
※EasyLanguage開発環境を起動させる方法は、この連載1のページ中頃をご覧ください。
ファイル名は #25 Momentum Cross という名前で新規にストラテジーを作成します。
Easy Language開発環境を開き、 ファイル ー 新規作成 ー ストラテジー で新規ストラテジーを作成します。
ファイル名は #25 Momentum Cross
テンプレートを選択(T)欄は(None)です。
エディターの準備が出来たら、下のプログラムコードを打ち込んでください。
(コードをコピーして貼り付けてもOK)
プログラムコードの中身はこちら===
Input: Length(10);
Vars: Mom(0), BullCx(false), BearCx(false);
Mom = Momentum(Close, Length);
BullCx = Mom crosses over 0;
BearCx = Mom crosses under 0;
If BullCx and MRO(BearCx,4,1) = -1 then Buy next bar at Close of this bar limit;
If BearCx and MRO(BullCx,4,1) = -1 then SellShort next bar at Close of this bar limit;
If Mom < Mom[1] and Mom[1] < Mom[2] then Sell next bar at market;
If Mom > Mom[1] and Mom[1] > Mom[2] then BuytoCover next bar at market;
プログラムコードここまで===
スポンサーリンク
貼り付けまたは、書き込みが終わったら、プログラムコードに間違いが無いか、チエックするボタンを押して確認します。(いつものやつですね)
0エラー、0警告ならOK。
誤りがあれば修正し、チエックするボタンを再度押します。
プログラムコードの意味
Input: Length(10);
インプット宣言文で初期値を指定して宣言しています。
インプット名が Length 初期値は 10 です。
Vars: Mom(0), BullCx(false), BearCx(false);
変数宣言文で初期値を指定して宣言しています。
変数名が Mom 初期値は 0 です。
変数名が BullCx 初期値は false です。
変数名が BearCx 初期値は false です。
この記事の連載では、はじめてのパターンが出来てきました。
BullCx と BearCx の 初期値は false です。
これは 真偽変数 と呼ばれるものです。
真偽(正しいか間違っているか)を格納する変数です。
false : 偽
true : 真
この真偽変数の使い方はのちほど説明しますね。
Mom = Momentum(Close, Length);
Momentum モメンタム(勢い)の関数です。
新しい関数が出てきたら、まずヘルプで調べましょう。
調べ方は、 Easy Language開発環境エディターの Momentum の上で右クリックでしたね。
今回のプログラムコードでは
Input: Length(10);
インプット名が Length 初期値は 10 です。
なので、初期設定では 10足前 の 終値 と比較しています
BullCx = Mom crosses over 0;
ここで先ほどの真偽変数が出てきました。
BullCx が真偽変数でしたね。
Mom は 下のコードで モメンタムが格納されている変数です。
Mom = Momentum(Close, Length);
Mom crosses under 0;
モメンタムが ゼロを 下抜いたか?
これが 真偽変数の
BullCx に 格納されます。
false : 偽
true : 真
BearCx = Mom crosses under 0;
これも 真偽変数の BearCx に
モメンタムが ゼロを 上抜いたか?
BearCx に 格納されます。
If BullCx and MRO(BearCx,4,1) = -1 then Buy next bar at Close of this bar limit;
MRO(BearCx,4,1)
MRO も 新しく出てきた関数です。 さっそく 右クリックーヘルプ ですね。
BearCx の状態が 過去 4足 の間に発生したか?
これを判断して、値を返します。(戻り値)
BearCx が 過去4足のうちに発生していなければ -1 を返します。
なので、
If BullCx and MRO(BearCx,4,1) = -1 then
もし BullCxが真 そして BearCxが過去4足のうちに発生していなければ、
Buy next bar at Close of this bar limit;
買い注文を出す。
このようになります。
If BearCx and MRO(BullCx,4,1) = -1 then SellShort next bar at Close of this bar limit;
上記と同様に、
もし BearCxが真 そして BullCxが過去4足のうちに発生していなければ、
Buy next bar at Close of this bar limit;
買い注文を出す。
If Mom < Mom[1] and Mom[1] < Mom[2] then Sell next bar at market;
現在の足のモメンタムが 1足前のモメンタムより小さく、
1足前のモメンタ ムが 2足前のモメンタムよりも小さい場合、
つまりモメンタムが 2足連続で下降した場合に決済売りの注文を出します。
出所:EasyLanguage ホームスタディコース p92
If Mom > Mom[1] and Mom[1] > Mom[2] then BuytoCover next bar at market;
現在の足のモメンタムが 1足前のモメンタムより大きく、
1足前のモメンタ ムが 2足前のモメンタムよりも大きい場合、
つまりモメンタムが 2足連続で上昇した場合に決済買いの注文を出します。
出所:EasyLanguage ホームスタディコース p92
チャートにストラテジーを適応させる
チャート上で右クリックし、 ストラテジーを挿入
今回作成した #25 Momentum Cross を選択して OKボタンを押します。
プログラムの動作が正しいか確認する為に、 以前作った インジケータ #11 Momentum をチャートに表示させています。
イージーランゲージ[EasyLanguage]で関数が大好きになる。 トレードステーションとイージーランゲージ[EasyLanguage]を学んで、株式投資で差をつける。9
チャートに売買のタイミングとモメンタムのインジケーターが表示されています。
せっかくなので、この投資戦略で利益が出るのか、検証してみましょう。
このグラフが、日経225連動型上場投資信託にこの戦略を適応したときの損益グラフです。
検証期間:2008年4月30日~2018年4月27日
最終的に大きくプラスになっていますが・・・・・
他のインジケーターと組み合わせる必要がありますね。
続きはこちらからどうぞ。
投資のリスク管理をプログラムする。トレードステーションとイージーランゲージ[EasyLanguage]を学び、株式投資で差をつける。26
動画で解説
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴20年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら
スポンサーリンク