株式投資をするうえで、現在最強のトレードツールは マネックス証券の トレードステーション です。(個人評価)
その、トレードステーションを自由自在に操るには、イージーランゲージ[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 ホームスタディコース」の演習問題を実際に操作しながら解いてゆく、過程を紹介したいと思います。

 

前回に引き続きインプットについての話です。

 

おさらい

インプットはEasy Language開発環境のエディター以外でも値を変更できる変数です。

 

トレードステーションでは非常に便利な変数なのです。

例えば、移動平均線をチャートに描画するプログラムを作成したとします。

 

何足の移動平均線にするか。 後から変更できれば便利ですよね。

チャート上で右クリックして、「分析テクニックの設定」から自由に変更が可能です。

 

更に、移動平均線クロスで売買するプログラムを作成したとします。

どの長期と短期の足数の組み合わせが、より多くの利益を生むのか検証したい場合、上の手順で数字を手作業で入れ替えて検証しても良いのですが、疲れそうですね。

トレードステーションでは、この組み合わせを自動でやってくれる「最適化」という機能があります。

この最適化を利用するには、インプット変数でプログラムを書く必要があります。

 

 

インプットの使い方

インプット宣言文で初期値を指定して宣言します。

 

Input: インプット名 (初期値);

 

Input: Factor(1.005);

インプットを宣言

インプット名(ここではFactorとしています:任意に決められます)

初期値を指定

 

<練習問題: *15最高値と最安値>

「Easy Language ホームスタディコース」P52より

 

学習の目的: インプットを使用する。関数 Highest と Lowest を使用する。

詳細: 期間 nの最高値と最安値の、期間と価格をインプットにする。

#15 Trailing Hi Lo という名前で新規にインジケーターを作成してください。

このインジ ケーターは期間 nの最高値と最安値を描画します。結果的にチャート上では 2つの線で

チャネルが形成されます。期間 nの初期値は 8 にします。

 

初めて出てくる関数 Highest と Lowest

 

Highest は 最高値を計算する関数です

Lowest は 最安値を計算する関数です

 

関数の説明は、後回しにします。

 

 

EasyLanguage開発環境(エディタ)にコードを書き込みます

EasyLanguage開発環境を起動させる方法は、この連載1のページ中頃をご覧ください。

 

 

プログラムコードここから

 

Input: HiPx(High), LoPx(Low), TrlgBars(8);

Vars: HighLine(0), LowLine(0);

HighLine = Highest(HiPx, TrlgBars);

LowLine = Lowest(LoPX, TrlgBars);

Plot1(HighLine, “最高値”);

Plot2(LowLine, “最安値”);

 

プログラムコードここまで

 

 

書き込みが終わったら、プログラムコードに間違いが無いか、チエックするボタンを押して確認します。(いつものやつですね)

 

 

スポンサーリンク

 

 

初めて出てくる関数 Highest と Lowest  の使い方

 

この関数の使い方の説明を後回しにしたのは、Easy Language開発環境(エディター)の ヘルプ を呼び出したかったからです。

 

調べるのは簡単です。 調べたい関数(今回はHighest)にカーソルを合わせ右クリック。 「の定義(D)XXXXXXX」をクリックします。

※下の図では調べたい関数 Highest 全体を選択していますが、 カーソルが先頭(H)にあっても、途中にあっても検索出来ます。

 

あーら簡単! ヘルプが起動し目的のHighestの説明が表示されています。

 

 

ヘルプの要約

Highest (Function)

Highest 関数は、一定範囲のバーについて、最高値を返します。

 

□構文

Highest(Price, Length)

 

□戻り値(ダブル)

一定範囲の Length バーで見つかった最高のPrice。

 

□パラメーター

Price

価格、関数および公式のうち、バーのどの値を評価するかを指定します。

※分かりにくいので後で説明します。

 

Length

考慮するバーの数を設定します。(期間を指定します。)

 

Priceの追加説明

Price  は 価格 や 出来高 などが入りますので、データのタイプは 数値 です。

入力されるのは

Close、High、Low、Open、Volume などのバーの値を指定できます。

 

また、次のような数学的計算の場合もあります。

( High + Low) / 2、または RSI、Stochastic、あるいは ADX などの数値関数。

 

□例

次の例は、最後の 20 バーについて計算された最高の Close + Open 値を Value1 に代入します。

Value1 = Highest(Close + Open, 20);

 

 

Lowest も ほぼ同様です。

 

 

プログラムコードの意味

 

Input: HiPx(High), LoPx(Low), TrlgBars(8);

Vars: HighLine(0), LowLine(0);

HighLine = Highest(HiPx, TrlgBars);

LowLine = Lowest(LoPX, TrlgBars);

Plot1(HighLine, “最高値”);

Plot2(LowLine, “最安値”);

 

 

Input: HiPx(High), LoPx(Low), TrlgBars(8);

Input: で インプットを宣言します。

HiPx(High) インプット名 HiPx(任意に決められます) 初期値は High(高値)

LoPx(Low) インプット名 LoPx(任意に決められます) 初期値は Low(安値)

TrlgBars(8)  インプット名 TrlgBars(任意に決められます) 初期値は 8

 

Vars: HighLine(0), LowLine(0);

Vars: で ユーザー定義数値変数 を宣言します。 箱を作って、名前を付けます。

HighLine(0) ユーザー定義数値変数名 HighLine(任意に決められます) 初期値は 0

LowLine(0)  ユーザー定義数値変数名 LowLine(任意に決められます) 初期値は 0

 

HighLine = Highest(HiPx, TrlgBars);

 

・関数Highestの構文

Highest(Price, Length)

 

 

今回は インプットで次のように宣言しています。

HiPx=High(高値)、TrlgBars=(期間:8)

よって

Highest(高値, 期間8)

つまり、ローソク足 8足 の内、最も高い「高値」を Highest関数で取得します。

そして、HighLine変数に代入します。

 

LowLine = Lowest(LoPX, TrlgBars);

Highest関数と同様に、

Lowest(LoPX, TrlgBars) は

Lowest(安値, 期間8)

つまり、ローソク足 8足 の内、最も安い「安値」を Lowest関数で取得します。

そして、Lowest変数に代入します。

 

 

Plot1(HighLine, “最高値”); Plot2(LowLine, “最安値”);

代入された

HighLine : ローソク足 8足 の内、最も高い「高値」

LowLine : ローソク足 8足 の内、最も安い「安値」

をチャートにプロットします。

 

 

 

チャートに表示させます

チャート上で右クリックし 「分析テクニックを挿入」をクリック

インジケーター タブから 先ほど作成したファイル名を選んでOKボタンを押します。

 

下のチャートの用に、ローソク足の下に折れ線グラフが表示された場合は、

チャート上で右クリックし、「分析テクニックの設定」 インジケーター名(#15 Trailing Hi Lo)を選択し、「設定」ボタンを押します。

 

「スケーリング」タブ スケール位置 を 元データーに軸を合わせる に変更して OKボタンを押します。

 

ローソク足に折れ線グラフが重なりました。

 

 

新高値・新安値ブレイクを判定する為には

上のチャートでは、高値の折れ線グラフと、安値の折れ線グラフの間に、ローソク足が収まっています。

ローソク足と折れ線グラフの交差で、新高値・新安値ブレイクを判定する為にはどうすれば良いでしょうか?

 

今のプログラムコード

HighLine = Highest(HiPx, TrlgBars);

LowLine = Lowest(LoPX, TrlgBars);

 

Easy Languageでは、ローソク足の古いものから新しいものへ順に計算(処理)します。

チャートで言えば左から右へ、ローソク足1足づつ、計算(処理)するのです。

上のプログラムコードでは、計算している今の足も含めた、最高値・最安値を算出しているので、ローソク足と新高値・新安値のラインが交差することはありません。

※ローソク足以外の足種でも同様です

 

ではどうすれば良いでしょうか?

 

一つ前までのローソク足で 最高値・最安値を算出しチャートにプロットすれば良いのです。

一つ前のローソク足で計算するには、 [1] を付ければ良かったですね。

HighLine = Highest(HiPx, TrlgBars)[1];

LowLine = Lowest(LoPX, TrlgBars)[1];

 

チャートに表示させてみます。

これなら、新高値・新安値ブレイクをチャートで判定する事が出来ます。

売買するプログラムコードを追加すれば、新高値・新安値ブレイクで売買するストラテジーとなります。

 

 

今回の記事は以上です。

お疲れ様でした。

 

 

この続きはこちらからどうぞ。

関係演算子と if…then文を使う。 トレードステーションとイージーランゲージ[EasyLanguage]を学んで、株式投資で差をつける。13

 

この記事を書いた人

ゆたかドットらいふ編集部

あしおゆたか

投資歴20年の個人投資家

机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。

スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。

◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション

◇運営者情報はこちら

 

 

スポンサーリンク