今回学習するのは、次の2点です。
・値が代入されている変数に、ある条件が整った場合に値を再代入
・セッション時間を取得(そのローソク足のある場の始まり時間を取得)
これにより、日中足の最高値と最安値をチャートに描画するプログラムを作成します。
デイトレードで役立つこと、うけあいです。
株式投資をするうえで、現在最強のトレードツールは マネックス証券の トレードステーション です。(個人評価)
その、トレードステーションを自由自在に操るには、イージーランゲージ[EasyLanguage]の知識が必要です。
イージーランゲージ[EasyLanguage]?
イージーランゲージ[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 ホームスタディコース」の演習問題を実際に操作しながら解いてゆく、過程を紹介したいと思います。
変数へ値を再代入する
変数は、新しい値が再代入されるまで、過去の足から現在の足へと値を保持します。
変数代入文が条件式を伴っていなければ、足毎に変数には新しい値が再代入されますが、
次のように、変数代入文が条件式を伴っていれば、条件式が真の場合にだけ変数に新し い値が再代入されます。例:
If Time = SessionFirstBarTime(1, 1) then Value1 = Close – Close[1];
日中足インターバルのチャートにおいて、現在の足の時間が 1番目のセッションの開始 時間の場合、
つまり 1日に 1度だけ 1番目のセッションの開始時間の足で、現在の足の 終値と 1足前の終値の差分を計算して Value1 に代入します。
出所:Easy Languageホームスタディコース P114
セッション時間を取得
SessionFirstBarTime と言う予約語(関数)を使用して、指定されたセッションの最初のバーの時間を返します。
ローソク足 の存在する 場 の 最初のバーの時間、 つまり場の始まり時間を取得します。
わかりにくい表現ですいません。
新しい関数が出てきたら、ヘルプで調べましょう。
SessionFirstBarTime
Easy Languageエディターに SessionFirstBarTime と 打ち込み、 その文字の上で 右クリックで調べられます。
すぐにヘルプの画面が現れます。
うーん。 ヘルプを読んでもスッキリ理解できませんね。
こんな場合は、プログラムコード内でどのように使われているかを見るのが理解の早道です。
練習問題のプログラムコードを見てみましょう。
練習問題: *32 日中足の最高値と最安値
◇学習の目的: セッション時間の参照と変数への値の再代入。
◇詳細: 日中足チャートに、1番目のセッション時間の開始から現在の足までの最高値と 最安値を描画する。
EasyLanguage開発環境(エディタ)にコードを書き込みます
EasyLanguage開発環境を起動させる方法は、この連載1のページ中頃をご覧ください。
ファイル名は #38 Intraday H and L という名前で新規にインジケータを作成します。
Easy Language開発環境を開き、 ファイル ー 新規作成 ー インジケーター で新規インジケーターを作成します。
エディターの準備が出来たら、下のプログラムコードを打ち込んでください。
(コードをコピーして貼り付けてもOK)
プログラムコードの中身はこちら===
Var: DHigh(0), DLow(0);
If Time = SessionFirstBarTime(1, 1) then begin
DHigh = High;
DLow = Low;
end
else begin
If High > DHigh then
DHigh = High;
If Low < DLow then
DLow = Low;
end;
If DLow <> 0 then begin
Plot1(DHigh, “当日高値”);
Plot2(DLow, “当日安値”);
end;
プログラムコードここまで===
スポンサーリンク
貼り付けまたは、書き込みが終わったら、プログラムコードに間違いが無いか、チエックするボタンを押して確認します。(いつものやつですね)
0エラー、0警告ならOK。
誤りがあれば修正し、チエックするボタンを再度押します。
プログラムコードの意味
Var: DHigh(0), DLow(0);
変数宣言文で初期値を指定して宣言しています。
変数名が DHigh 初期値は 0 です。
変数名が DLow 初期値は 0 です。
If Time = SessionFirstBarTime(1, 1) then begin
ここで予約語の SessionFirstBarTime の登場です。
そして新たな予約語 Time が出てきました。
早速ヘルプを見てみましょう。 Time の上で右クリックでしたね。
フムフム。 予約語 Time の名前が示すとおりです。
If Time = SessionFirstBarTime(1, 1) then begin
Time は 今の足の時間
SessionFirstBarTime(1, 1) は セッションの始まりの時間
この If文では、
「今、プログラムで評価している足がセッションの最初の足だった場合に、
begin 以降のプログラムを実行しなさい」 と言う 条件判断をしています。
東京取引所で売買されている株にこのプログラムを適応した場合は、
セッションの始まりの時間は 9時 なので、
今、プログラムで評価している足が 9時 ならば、begin 以降のプログラムを実行
と言う 条件判断をしているのです。
DHigh = High;DLow = Low;
上の if文 による条件判断が 真 の場合に実行されます。
DHigh = High;
変数名 DHigh に その足の高値 を代入します。
DLow = Low;
変数名 DLow に その足の安値 を代入します。
プログラムが評価している足が、セッションの最初の足の場合に実行される事になります。
else begin
上の if文 による条件判断が 偽 の場合に begin 以降が実行されます。
If High > DHigh then DHigh = High;
プログラムで評価している足が、セッションの高値を更新した場合に、
その高値の価格を 変数 DHigh に 代入します。
If Low < DLow then DLow = Low;
プログラムで評価している足が、セッションの安値を更新した場合に、
その安値の価格を 変数 DLow に 代入します。
If DLow <> 0 then begin
DLow 変数の数値が ゼロ 以外の場合 に begin 以降が実行されます。
Plot1(DHigh, “当日高値”); Plot2(DLow, “当日安値”);
そのセッションの 高値 安値 を プロットします。
チャートにインジケーターを適応させる
チャート上で右クリックし、 分析テクニックを挿入
今回作成した #38 Intraday H and L を選択して OKボタンを押します。
チャートに表示されました。
当日の高値と安値が表示されるので、デイトレードの際に重宝しそうです。
お疲れ様でした。
次の記事はこちらからどうぞ。
特定の事象が何回起こったかを数える。トレードステーションとイージーランゲージ[EasyLanguage]を学び、株式投資で差をつける。32
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴20年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら
スポンサーリンク