「RSI」と言うテクニカル指標をご存じでしょうか。
これから株価が上昇するのか下降するのか、どちらの方向に勢いがあるのかを示してくれます。
RSIが70%~80%以上であれば買われすぎ、
RSIが30%~20%以下であれば売られ過ぎであると、判断される事が多いようです。
RSI(相対力指数)は、オシレーター系のテクニカル指標の代表格で、最も人気ある指標の一つです。パラボリック・DMI・ピボットなど数多くのテクニカル指標を生み出したミスターテクニカル分析とも言えるJ.W.ワイルダー(米国)が考案し、現在の相場の相対的な強弱(又は過熱感)を表す指標です。特徴としてボックス相場が続いているときの的中率は高いものの、上下に強いトレンドが出ると、売買シグナルが出ていたとしても、トレンドの勢いが止まらずに、結局ダマシに終わることがあります。
出所:マネックス・ユニバーシティ https://info.monex.co.jp/technical-analysis/indicators/005.html
今回は この「RSI」をつかった投資戦略をプログラムします。
株式投資をするうえで、現在最強のトレードツールは マネックス証券の トレードステーション です。(個人評価)
その、トレードステーションを自由自在に操るには、イージーランゲージ[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 ホームスタディコース」の演習問題を実際に操作しながら解いてゆく、過程を紹介したいと思います。
RSIとビルトインストップをつかって投資戦略をプログラムする。
Easy Languageにはビルトインストップの予約語が5つ準備されています。
SetBreakEven – 同値降り
含み益が発生したとき、成行注文をエントリー価格に発注します。
SetDollarTrailing – 金額トレーリングストップ
最大含み益から任意の金 額分離れた価格にストップ注文を発注します。最大含み益が増えれば、それだけ 逆指値価格も上がります(買いポジションの場合)。
SetPercentTrailing – パーセントトレーリングストップ
任意の含み益到達 後、最大含み益から任意のパーセント分離れた価格にストップ注文を発注します。 最大含み益が増えれば、それだけ逆指値価格も上がります(買いポジションの場合)。
SetProfitTarget – 利益確定
任意の利益確定目標額の価格に指値注文を発注します。
SetStopLoss – 損切り
任意の損切り額の価格に達したとき、成行注文を発注します。
ビルトインストップの計算をポジション単位にするか、株数単位にするか設定する予約語
SetStopPosition – ポジション全体に対して計算
SetStopShare or SetStopContract – 株数に対して計算
※初期設定は SetStopPosition です。
出所:Easy Languageホームスタディコース P97
練習問題: *28 RSI OB_OS
◇学習の目的: HighestBarと LowestBar関数と、ビルトインストップを使用してストラテ ジーを書く。
◇詳細: RSIが 50より小さく直近の RSI の 7期間の中で 3足前以前に RSIの最安値を付けたとき買い、RSIが 50より大きく直近の RSIの 7期間の中で 3足前以前に RSIの最高
値を付けたとき売り。ビルトインストップを置く。
EasyLanguage開発環境(エディタ)にコードを書き込みます
※EasyLanguage開発環境を起動させる方法は、この連載1のページ中頃をご覧ください。
ファイル名は #28 RSI OB_OS という名前で新規にストラテジーを作成します。
Easy Language開発環境を開き、 ファイル ー 新規作成 ー ストラテジー で新規ストラテジーを作成します。
エディターの準備が出来たら、下のプログラムコードを打ち込んでください。
(コードをコピーして貼り付けてもOK)
プログラムコードの中身はこちら===
Input: Length(14), StopAmt(50), BEAmt(50), TrlgAmt(100);
Var: xRSI(0);
xRSI = RSI( Close, Length );
If xRSI < 50 and LowestBar(xRSI, 7) >= 3 then Buy next bar at market;
If xRSI > 50 and HighestBar(xRSI, 7) >= 3 then SellShort next bar at market;
SetStopLoss(StopAmt);
SetBreakeven(BEAmt);
SetDollarTrailing(TrlgAmt);
プログラムコードここまで===
スポンサーリンク
貼り付けまたは、書き込みが終わったら、プログラムコードに間違いが無いか、チエックするボタンを押して確認します。(いつものやつですね)
0エラー、0警告ならOK。
誤りがあれば修正し、チエックするボタンを再度押します。
プログラムコードの意味
Input: Length(14), StopAmt(50), BEAmt(50), TrlgAmt(100);
インプット宣言文で初期値を指定して宣言しています。
インプット名が Length 初期値は 14
インプット名が StopAmt 初期値は 50
インプット名が BEAmt 初期値は 50
インプット名が TrlgAmt 初期値は 100
Var: xRSI(0);
変数宣言文で初期値を指定して宣言しています。
変数名が xRSI 初期値は 0 です。
xRSI = RSI( Close, Length );
RSIを求める関数です。
新しい関数が出てきたら、まずヘルプで調べましょう。
調べ方は、 Easy Language開発環境エディターの RSI の上で右クリックでしたね。
そして、変数 xRSI に 求めたRSIを代入しています。
If xRSI < 50 and LowestBar(xRSI, 7) >= 3 then Buy next bar at market;
※LowestBar は、それぞれ任意の期間の最安値を付けてからの 経過足数を返します。
If xRSI < 50 and LowestBar(xRSI, 7) >= 3 then Buy next bar at market;
もし、xRSI が 50 より小さい そして 7期間の中で3足前以前にRSIの最安値を付けた 場合、 次の足の始まりで買う
If xRSI > 50 and HighestBar(xRSI, 7) >= 3 then SellShort next bar at market;
※ HighestBar は、それぞれ任意の期間の最高値を付けてからの 経過足数を返します。
If xRSI > 50 and HighestBar(xRSI, 7) >= 3 then SellShort next bar at market;
もし、xRSI が 50 より大きい そして 7期間の中で3足前以前にRSIの最高値を付けた 場合、 次の足の始まりで売る
SetStopLoss(StopAmt);
損切り注文を発注する SetStopLoss
損切りのパラメータは StopAmt
SetBreakeven(BEAmt);
同値降り注文を発注する SetBreakeven
同値降りのパラメータは BEAmt
SetDollarTrailing(TrlgAmt);
金額トレーリングストップ SetDollarTrailing
最大含み益から任意の金 額分離れた価格にストップ注文を発注します。
最大含み益が増えれば、それだけ 逆指値価格も上がります(買いポジションの場合)。
トレーリングストップのパラメータは TrlgAmt
チャートにストラテジーを適応させる
チャート上で右クリックし、 ストラテジーを挿入
今回作成した #28 RSI OB_OS を選択して OKボタンを押します。
出所:Easy Languageホームスタディコース P101
キレイすぎる収益曲線
上のグラフは、この投資戦略を「トヨタ自動車」の日足チャートに適応したときの損益グラフです。
※手数料やスリップページは考慮していません
少々収益曲線がキレイすぎますねぇ。
もし実トレードでこのような結果が出れば、嬉しい限りです。
この点は、後日レポートします。
お疲れ様でした。
次の記事はこちらからどうぞ。
他の銘柄の値動きを参考にする株式投資戦略をプログラムする。トレードステーションとイージーランゲージ[EasyLanguage]を学び、株式投資で差をつける。28
動画で解説
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴20年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら
スポンサーリンク