はじめに

 

日本株を完全自動売買(システムトレード)したい!

 

あなたが、日本株の自動売買(システムトレード)に興味を持った理由は、何でしょうか?

  • 平日は仕事をしているので、株の売買は自動で行いたい
  • 子育て真っ最中なので、株式トレードに集中できない
  • 自分のトレード手法で利益が出るのか検証したい
  • 株価の動きを分析したい
  • 自動売買(システムトレード)のシステムを作って、販売したい!
  • とにかくお金持ちになりたい!

などでしょうか?

 

そんなあなたにオススメしたいのが、マネックス証券のトレードステーションです。

画像の出所:マネックス証券

 

 

◇トレードステーションって何?

 

トレードステーション[Trade station]は、米国で先進性、機能性において数々の最高評価を受けてきたトレーディングツールです。

日本株の売買に対応させたものが、[マネックス証券のトレードステーション]なのです。

 

マネックス証券の特設HPはこちら。リンクはこちら

 

 

自分の考えたトレード手法を使って、株の売買を完全に自動で行う。

 

これを実現するには、マネックス証券の[トレードステーション]を使い、専用のプログラミング言語「Easy Language」を学べば良いのです。

 

「えっ! プログラミング言語!!」

「そんなの無理ムリ!」

「私は文系です!」

 

このように思う型が大半でしょう。

 

 

ここで現実を見てみましょう。

 

株式投資で勝っている人は、何割程度だと思いますか?

 

実は1割程度なのです。

 

「株で何割の人が損をしているのか?」ブログ記事にもしていますので、ご興味がある方はこちらをご覧下さい。リンクはこちら

 

 

普通の人が負け続けている株式投資の世界で、1割の勝ち組になるにはどうしたらよいと思いますか?

 

普通の人(9割の負け組)が出来ない事をやれるようになれば良いのです。

 

その、普通の人が出来ない事の1つが、システムトレード専用に開発された、プログラミング言語「Easy Language」を学ぶ努力です。

 

「Easy Languageを使って自動売買すれば、必ず利益が出るの?」

 

「必ず利益が出ます」そう言ったら、詐欺になってしまいます。

 

ただし、自信を持って言えるのは「負ける機会を減らす事が出来ます」です。

 

回りくどい言い方ですが、その理由の1つは[バックテストができるから]です。

 

 

◇バックテストとは?

 

あなたが、これなら勝てると思っている株の売買手法があったとします。

例えば、その売買手法で過去10年間トレードしていたら?

どのような結果になっていたのかを、シミュレートする事が出来るのです。

 

「必勝法だと思っていたら、勝っていたのはほん一時期だけだった」

そんな分析結果が出るかも知れません。

 

・バックテストの損益グラフの例

 

※もちろん、このバックテストも過去の株価の値動きを元に計算しているので、未来を完全に予測出来るものではありません。

 

 

では、どうやってEasy Languageを学べば良いのでしょうか?

※Easy Language[イージーランゲージ]とは、マネックス証券の高機能トレードツール「トレードステーション」に搭載された、ブログラム言語で、日本株の完全自動売買(システムトレード)を可能にします。

 

残念ながら2019年11月現在、プログラム初心者がEasy Language[イージーランゲージ]を学ぶ方法は多くありません。

 

プログラム初心者がEasy Languageを覚えるのには、次の手順で学習することをオススメします。

  1. 基本的な文法を覚える(最初は超基本のみ)
  2. 他の人が書いたプログラムコードを読む
  3. 自分の手でプログラムを書いてみる
  4. 分からないことを調べて、上記を繰り返す。

 

まず、手を動かす!!

 

これが王道ですし、結局一番の近道になるはずです。

 

 

これを実現するのに最適な教材が、マネックス証券が無料で提供している、

 

「EasyLanguage ホームスタディコース(ガイドブック)」 です。

 

※このページでは、「Easy Languageホームスタディコース」の内容をさらに、やさしく解説しています。

 

さぁ、あなたも一緒に次世代のトレードスキルを手に入れましょう!

 

 

「EasyLanguage ホームスタディコース」とは

「EasyLanguage ホームスタディコース(ガイドブック)」

マネックス証券のホームページからダウンロード出来る、マニュアルです。

全172ページのボリュームで、Easy Languageの開発環境の説明や、文法の解説、そして豊富な演習問題が掲載されています。

※ダウンロード方法は後述します。

 

ホームスタディコースについて

このホームスタディコースは、米国 TradeStation Securities の 2 日間の実地トレーニング

コースである EasyLanguage ブートキャンプをベースにして作成されたものを、日本株

版トレードステーションの仕様に沿って再編集したものです。

本書の目的は、トレードステーション の革新的なトレード専用言語である

EasyLanguage の基本的な知識を習得することです。独自のトレードアイディアを

EasyLanguage のインジケーターやストラテジーとして作成することができるようになり

ます。各章に添えられている事例、練習問題、チャレンジ問題を通して学習していきま

しょう。練習問題とチャレンジ問題では、実際にインジケーター、ショウミー、ペイン

トバー、ストラテジーを作成してください。

各章ごとに、EasyLanguage のエディターや EasyLanguage の語の説明があり、その後に

事例と練習問題が続きます。重要な章にはチャレンジ問題があります。

事例と練習問題では特定の銘柄が使用されていますが、EasyLanguage はどの市場のどの

銘柄に対しても適用することができます。

出所:Easy Languageホームスタディコース

 

「Easy Languageホームスタディコース」のダウンロード

Easy Languageホームスタディコースをダウンロードしてみましょう。

 

マネックス証券のサポートサイトに行きます。
(下の画像をクリックしても、サポートサイトに飛びます)

 

https://info.monex.co.jp/tradestation-support/manual.html#01

 

 

マネックス証券のサポートサイト内の、 ホームスタディコースPDF をクリックして、ダウンロードしてください

 

 

「Easy Languageホームスタディコース」は難しい?

 

「Easy Languageホームスタディコース」は、大変よく出来たマニュアルです。

でも、プログラム初心者には少し難しいかな? このような印象を受けました。

 

プログラム初心者が、一人で「Easy Languageホームスタディコース」をやりきることが出来るだろうか?

途中で挫折してしまわないか?

 

私は「日本のシステムトレードを盛り上げたい」と思っています。

日本のシステムトレード環境を劇的に向上させるのが、トレードステーションであり、Easy Languageだと確信しています。

 

一人でも多くの人に、「Easy Languageホームスタディコース」を修了して欲しい!

このような思いで、「Easy Languageホームスタディコース」を解説するページを作成しました。

 

私が実際に、演習問題をやりながら 「もう少し説明を加えた方が、初心者には分かりやすいかな?」 と思う点を補ったつもりです。

 

本家の「Easy Languageホームスタディコース」と一緒に、解説ページをご覧頂ければ、より一層理解が深まるはずです。

 

※演習問題毎に解説していますので、解説ページだけでも内容を理解できるように配慮しています。

 

 

最初にお伝えしましょう。

 

 

全172ページのボリュームがある「Easy Languageホームスタディコース」を一人で修了させるのは、簡単ではありません

 

 

でも、すべてをやり終えたあなたには、

 

他の個人投資家を凌駕する「分析力」

 

そして、自分の投資戦略を「完全自動売買」する力が備わっているはずです。

 

あなたの目の前に広がるのは、今までとは全く違った「未来」です

 

 

 

さぁ、一緒に頑張りましょう!

 

 

スポンサーリンク

 

 

解 説

 

Easy Languageホームスタディコースの目次に、

「何が出来るようになるか?(要約)」、「やさしく解説!ページ」、「動画で解説」、「テキスト・チラ見」、へのリンク を組み込みました。

 

こちらが、そのアイコンです。

 

目次の出所:マネックス証券 Easy Languageホームスタディコース(2016年11月版)

※…..後の数字は、Easy Languageホームスタディコースのページ番号です。

 

※しばらくの間、随時ページを更新しますので、定期的にご訪問ください。

 

 

アイコン紹介:「何が出来るようになるか?(要約)」

このページを学ぶ事で、「何が出来るようになるのか?」

Easy Languageホームスタディコースの、該当ページで学ぶ内容を簡単に紹介しています。

 

 

アイコン紹介:「やさしく解説!ページへのリンク」

解説部分には、「やさしく解説」の画像(リンク)が表示されていますので、クリックして頂ければ、解説ページに飛びます。

 

※やさしく解説は、16ページ「インジケーター」からです。

 

アイコン紹介:「動画で解説」ページ(youtube)へのリンク

おもに、「やさしく解説!」ページの内容を動画に編集しています。

 

アイコン紹介:「テキスト・チラ見」ページへのリンク

Easy Languageホームスタディコースは、全172ページのボリュームがあります。
このボリュームに圧倒される方がいるかも知れません。

 

このリンク先では、解説している該当ページだけを、見る事が出来ます。

※リンク先の「テキスト・チラ見」ページを見る事で、「Easy Languageホームスタディコース(ガイドブック)」をダウンロードすること無く、学習を進めることが出来ます。
ただし、「Easy Languageホームスタディコース(ガイドブック)」は、最初のページから通して学習することにより、より理解が深まるよう構成されていますので、マネックス証券のホームページからダウンロードすることを強くオススメします。

 

 

目 次

 

ホームスタディコースについて …. vi

ホームスタディコースについて

このホームスタディコースは、米国 TradeStation Securities の 2日間の実地トレーニング コースである EasyLanguage ブートキャンプをベースにして作成されたものを、日本株版トレードステーションの仕様に沿って再編集したものです。

本書の目的は、トレードステーション の革新的なトレード専用言語である EasyLanguage の基本的な知識を習得することです。独自のトレードアイディアを EasyLanguageのインジケーターやストラテジーとして作成することができるようになります。

出所:Easy Languageホームスタディコース

 

Easy Languageホームスタディコース該当ページチラ見

 

◇ホームスタディコース最初のページから、EasyLanguage の句読点 …. P13までの解説動画です。

 

 

1. EasyLanguage とは?…. 1

EasyLanguageはトレーダーのためのプログラム言語です。

トレーダーのアイディアをベ ースにインジケーターやストラテジーを作成するために使用される語、演算子、特殊文字の組合せです。

(中略)

EasyLanguageは、あるトレーダーが他のトレーダーに対して、トレードのアイディアを 簡単な英語で伝えるように書くことができる仕様になっています。

 

出所:Easy Languageホームスタディコース 1P

 

プログラム言語!? 英語!?

 

恐れることはありません。

 

EasyLanguageとは?

トレードステーション上のほぼ全てのアクションは、EasyLanguageという独自の言語で構成されます。”Easy”と名付けられている通り、初歩的な英文で記述される非常にシンプルなプログラム言語になります。

例えば、移動平均線がゴールデンクロスした場合に買い注文を出すプログラムは、以下の一文で済むほどシンプルです。

”If FastAvg crosses over SlowAvg then Buy next bar at market ”

 

出所:https://info.monex.co.jp/tradestation/features/other/ マネックス証券の機能紹介ページ

 

これなら出来そうですよね。

 

 

Easy Languageホームスタディコース該当ページチラ見

 

 

2. トレードステーション 開発環境 …. 2

トレードステーション上で EasyLanguage使用してインジケーターやストラテジーを作 成したり編集したりする時はいつでも、トレードステーション開発環境で作業を行うこ
とになります。

エディターや辞書など、簡単な特徴の説明です。

Easy Languageホームスタディコース該当ページチラ見

 

 

EasyLanguage エディター…. 3

Easy Languageを使う上で無くてはならないのがエディターです。

起動方法と簡単な機能説明など。

 

画像の出所:Easy Languageホームスタディコース

Easy Languageホームスタディコース該当ページチラ見

 

 

EasyLanguage プログラムのプロパティ設定…. 7

プロパティ設定では、既存または新規に作成されたインジケーターやストラテジーの表 示や計算に関する項目の設定をカスタマイズしたり初期設定を指定したりすることがで
きます。

出所:Easy Languageホームスタディコース

 

個別の設定方法は、実習の中で学べます。

 

Easy Languageホームスタディコース該当ページチラ見

 

 

3. 足の概念について理解する …. 9

EasyLanguageを使用する上で覚えておかなければならない基本的な原則は、トレードス テーションは足の単位で動作するということです(ティック、分、日の単位ではなく) 厳
密に言うと、分析が実行されるチャートを構成しているのは足です。

出所:Easy Languageホームスタディコース

 

地味ですが、大切なことが書かれています。

「トレードス テーションは足の単位で動作する」

 

Easy Languageで作成したプログラムも、原則として足の単位で動きます。

5分足チャートにEasy Languageプログラムを適応させると、5分ごとにプログラムが走ります。

 

Easy Languageホームスタディコース該当ページチラ見

 

 

 

注釈: 最大参照足数 …. 9

注釈: 最大参照足数– インジケーターやストラテジーは、計算開始前に最低限計算に必要 な足の数を要求します。この要求された足の数が最大参照足数と呼ばれています。チャ ート内で計算を始めるためには、チャートにこの最大参照足数より多い足が存在している必要があります。

出所:Easy Languageホームスタディコース P9

 

はじめはピンとこないかも知れませんが、オリジナルのプログラムを書き始めると、思わぬエラーの原因となる事があります。

 

たとえば、 200本足の移動平均線の計算をEasy Languageにさせる場合には、適応させるチャートに200本以上の足を表示させておく必要があります。

 

Easy Languageホームスタディコース該当ページチラ見

 

4. EasyLanguage の構成要素 – 語、文、式、句読点 …. 11

EasyLanguage 語…. 11

EasyLanguage 語 他の言語同様 EasyLanguageは語から成り立っています。EasyLanguageの語は次の 5つ
のカテゴリーに分けることができます。

出所:Easy Languageホームスタディコース

  • 予約語
  • 関数
  • ユーザー定義関数
  • スキップ語
  • 属性

実習の中で、自然に覚えられるでしょう。

 

Easy Languageホームスタディコース該当ページチラ見

 

 

EasyLanguage の式と文 …. 12

◎一般的な 2種類の式

◇ 数値式  :  数値式は数字値の参照や計算を行います。

例えば予約語 Highは、ある 数字値を参照するのでこれは数値式です。

更に Volume * 2 や、(High – Low) * .5 なども数値式です。

 

◇真偽式  :  2つの数値を比較して真か偽かを評価します。

例えば: Close = Open

終値は始値と等しい High > High[1] Date <> Date[1]

 

 

◎一般的な 4種類の文は以下のものです

 インプット宣言文

 変数宣言文

 変数代入文

 プロット文: インジケーター用

 

◎文の順序

EasyLanguageプログラムの検証を成功させるための一般的なガイドラインとして、文は 下記の順序で書かれている必要があります。

  1. インプット宣言文
  2. 変数宣言文
  3. 変数代入文
  4. プロット文: インジケーター用
  5. 売買文: ストラテジー用
  • 注釈: 意図的に他の順序で文を書く場合もあります。

 

出所:Easy Languageホームスタディコース

 

プログラム初心者はこの 文の順序 を、正しく守ることをオススメします。

 

EasyLanguage の句読点 …. 13

下記は EasyLanguageの句読点の一般的な使用例です。

これらの種類の句読点はこのホ ームスタディコースの全体を通して使われています。

; セミコロン —  文の末尾に使用します。

( ) 丸括弧 —  算術演算子利用時のグループ化に使用します。

, コンマ — リスト内のアイテムを区切ります。

[ ] 角括弧 — 過去の足の参照、プロット描画をずらして表示、または配列 の要素参照に使用します。

“ ” 複引用符 —  テキストまたはラベルをくくります (例: “プロット名”)。

: コロン—宣言部で使用します。

{ } 波括弧—中括弧の中にある記述(コメント)は EasyLanguageの命令とし て認識されません。

// ダブルスラッシュ — ダブルスラッシュの後に続く記述行(コメント 行) は EasyLanguageの命令として認識されません。

重要: EasyLanguageは、一般的に可読性向上の目的に使用される改行、スペース、段落を無視します。

出所:Easy Languageホームスタディコース

 

特に文末の  忘れがちなので注意してください。

 

5. プロット文 …. 14

チャートにインジケーターを表示させたり、レーダースクリーンのセルに何を表示させるのか。

これを指示するのがプロット分です。

 

インジケーターのプロット文の形式:

PlotN(数値式, “プロット名”);

Nには 1から 99まで割り振ることができます。

 

単純なプロット文の例:

Plot1(Open, “始値”);

 

出所:Easy Languageホームスタディコース

 

簡単な一文で、チャートに自由にインジケーターを表示させる事が出来ます。

最初は感動してしまいました。

 

 

6. インジケーター …. 16

さぁ、お待たせしました。

ここからがEasy Languageプログラムを実際に作成しながら学ぶ事になります。

 

 

トレードステーション には EasyLanguage で書かれているインジケーター、ショウミー、 ペイントバーそしてストラテジーが予め多数入っています。

 

これらを読むことで、プログラムの意味や、書き方の理解が早まることでしょう。

 

練習問題: *01 終値 …. 17

ローソク足チャートの終値を結ぶ線を表示させるプログラムを作成します。

 

クリックすると解説ページが表示されます。

 

上のアイコンクリックすると、YouTubeのページが表示されます。(音が出ます)

下の埋め込み動画でも、ご覧頂けます。

 

 

 

7. EasyLanguage ドキュメントのプロパティ設定 …. 20

Easy Languageを使って、チャートに出来高を表示させるプログラムを作成します。

 

練習問題: *02 出来高…. 22

クリックすると解説ページが表示されます。

 

 

上のアイコンクリックすると、YouTubeのページが表示されます。(音が出ます)

下の埋め込み動画でも、ご覧頂けます。

 

 

 

チャレンジ問題 1: *03 高値と安値 …. 24

 

8. 算術演算子 …. 25

算術演算子の使い方を学びます。

算術演算子 EasyLanguage はインジケーターやストラテジー等のプログラムの中で加算、減算、乗算、 除算を実行できます:

加算  +

減算  -

乗算  *

除算  /

出所:Easy Languageホームスタディコース

 

練習問題: *04 ローソク足の実体 …. 26

算術演算子を使って、ローソク足チャートの終値と始値の差を描画するプログラムを作成します。

 

クリックすると解説ページが表示されます。

 

上のアイコンクリックすると、YouTubeのページが表示されます。(音が出ます)

下の埋め込み動画でも、ご覧頂けます。

 

 

 

9. 演算の順序 …. 28

トレードステーションは加算、減算、乗算、除算の算術演算を 次のように実行します。

乗算と除算は左から右

続いて

加算と減算を左から右

丸括弧を使用するとこの順番を変更することができます。一番内側の丸括弧の中の演算 から先に実行されます。

1 + 5 * 3 + 4 = 20

(1 + 5) * (3 + 4) = 42

1 + (5 * (3 + 4)) = 36

演算順序を決める丸括弧を使用すると、同じ数値と記号を持つ丸括弧を使用しない式の結果と大きく異なります。

出所:EasyLanguage ホームスタディコース(ガイドブック) P28

 

練習問題: *05 半値 …. 29

学習の目的: 数値式で丸括弧を使用して正しい順序で演算を行う。

詳細: 足の半値を結ぶ線を描画する。

出所:EasyLanguage ホームスタディコース(ガイドブック)

 

クリックすると解説ページが表示されます。

上のアイコンクリックすると、YouTubeのページが表示されます。(音が出ます)

下の埋め込み動画でも、ご覧頂けます。

 

 

 練習問題: *06 出来高加重値幅…. 31

学習の目的: 数値式で丸括弧を使用して正しい順序で演算を行う。

Description: 足の値幅に出来高を乗算して出来高加重値幅を導く。

出所:EasyLanguage ホームスタディコース(ガイドブック)

 

クリックすると解説ページが表示されます。

 

上のアイコンクリックすると、YouTubeのページが表示されます。(音が出ます)

下の埋め込み動画でも、ご覧頂けます。

 

10. 過去の足のデータ参照 …. 32

参照したい予約語や変数に続けて、角括弧[ ] を書くことで過去の価格や値を参照するこ とができます

例:

5足前の終値:

Close[5]

12足前の値幅:

High[12] – Low[12]

以下も同じ結果になります

(High – Low)[12]

以下は全く違う結果になります

High – Low[12]

一番下の例は現在の足の高値から 12足前の安値の値を減算しています。

出所:Easy Languageホームスタディコース

 

練習問題: *07 変化比オシレーター…. 33

学習の目的: 過去の足のデータを参照する。

詳細: 現在の足の終値と 5足前の終値の変化比を描画するオシレーター。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

チャレンジ問題 2: *08 バンド …. 34

学習の目的: 角括弧を使用して過去の足のデータを参照する。

価格データの周りに 2つの線から形成されるバンドを描画する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「11. 数値変数」「ユーザー定義数値変数」 までを解説しています。

 

11. 数値変数 …. 35

ここでは、数値変数の使い方を学びます。

いよいよプログラムっぽくなってきましたね。

皆さん変数のイメージは?

 

x=y+z

 

数値変数一時的に数値を格納するです

 

※注意

数学的、プログラミング言語的には、もっとしっかりとした説明が必要だと思われます。

 

しかし、この解説ページが目指すのは、「プログラム初心者が、イージーランゲージを最短で使えるようになる事」です。

そして、「プログラム初心者が、トレードステーションとイージーランゲージを使って、株式投資で利益を得ること」です。

なので、この解説ページでは、あえて 箱 と表現します。

 

ユーザー定義数値変数…. 35

ユーザー定義数値変数

EasyLanguage ではユーザーが任意に名前を付けた変数を“宣言”するだけで使用すること ができます。
つまり既存の予約語などの語に、ユーザー自身の語を加えることができま す。
ユーザー自身が変数の名前を作成するので、その変数に代入される値に相応しい分 かりやすい言葉で変数名を表現できるでしょう。
ユーザー定義変数の場合、変数名は自動的に認識されるわけではないので、まず変数として宣言した後、宣言済み変数のよう に、数値式を変数に代入します。
宣言済み変数が 1ステップで使用できるのに対しユーザー宣言変数は 2ステップ、変数宣言文と変数代入文の作成、を必要とします。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「練習問題:*09バンド2」も解説しています。

※ひとつ上の解説ページと同じ内容です。

 

変数宣言文…. 35

変数を使うには、まず変数宣言文で変数の名前や初期値なとを指定します。

 

変数宣言文

この文は NetChange という名前の数値変数を初期値 0で宣言しています:
Variables: NetChange(0);

出所:Easy Languageホームスタディコース

 

変数代入文…. 35

変数代入文

この文は数値変数 NetChange へ数値式を代入しています:
NetChange = Close – Close[1];

出所:Easy Languageホームスタディコース

 

練習問題: *09 バンド 2 …. 36

学習の目的: ユーザー定義数値変数の変数宣言文と変数代入文を書く。

詳細: チャレンジ問題 2 *08 バンドの問題の一部をユーザー定義数値変数に置き換えて書く。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。※ひとつ上の解説ページと同じ内容です。

 

 

練習問題: *10 変化比オシレーター2 …. 38

学習の目的: ユーザー定義数値変数の変数宣言文と変数代入文を書く。

詳細: 練習問題*07変化比オシレーターの問題の一部をユーザー定義数値変数に置き換えて書く。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「定義済み数値変数」も解説しています。

 

定義済み数値変数…. 39

定義済み数値変数

定義済み数値変数は、予め EasyLanguageの中に入っている変数です。宣言文で宣言す ることなく、その変数に値や数値式を代入して使用することができます。

100個の変数名が数値変数として予約されています:

 

Value0 から Value99 まで

 

Value0 から Value99 までの 100個の変数は自動的に変数として認識されます。後は 変数宣言文を使用して変数に数値式を代入するだけです:

Value0 = 数値式;

 

例として、Value1 を変化比参照に使うには:

Value1 = Close – Close[1];

 

定義済み変数は可読性に欠けますが、直ぐに利用できる利便性が高い変数です。特に変数名を意識する必用がない場合に利用すると良いでしょう。

出所:Easy Languageホームスタディコース

 

※定義済み数値変数は、便利な反面あまり多用すると、どの変数にどの数値を代入したのか分かりにくくなるので注意してください。

 

 

スポンサーリンク

 

 

12. 関数の使用 …. 40

出ました。 関数です。

学生の頃この憎き関数に悩まされた方も多いのではないでしょうか?

 

でも、数学の関数が嫌いだった人でも、Easy Languageの関数は大好きになるかも知れません。

 

 

20日間の移動平均を算出するには、次のようなプログラムを書く必要があります。

 

Value1 = (Close + Close[1] + Close[2] + Close[3] + Close [4] + Close[5] + Close[6] + Close[7] + Close[8] + Close [9] + Close[10] + Close[11] + Close[12] + Close[13] + Close [14] + Close[15] + Close[16] + Close[17] + Close[18] + Close
[19])/20;

 

ところがEasy Languageの関数を使えば

 

Value1 = Average (Close, 20)

 

たったこれだけで良いのです。

 

 

どうですか? 好きになれそうな気がしてきませんか?

 

Easy Languageは株式投資用のプログラム言語なので、このほかにもテクニカル指標のMACDを算出する関数は、

 

MACD(Price, FastLength, SlowLength)

 

などなど、便利な関数が沢山用意されていますので、食わず嫌いは卒業して、夢のある関数の世界をのぞいてみましょう。

 

 関数は EasyLanguageのルールや命令の中で使用できます。

 平均や標準偏差等のような一般的な数学式と統計式は予め EasyLanguageに関数 として保存されています。

 RSI や ADX 等の一般的なテクニカル分析の計算式も 関数として保存されていま す。

 多くの関数でパラメータを指定する必要があります。

 ユーザー定義関数を作成することもできます。

出所:EasyLanguage ホームスタディコース(ガイドブック)

 

 

練習問題: *11 モメンタム …. 41

学習の目的: 関数を呼び出す。ユーザー定義数値変数を使用する。

詳細: 10期間の終値でモメンタムインジケーターを描画する。

出所:Easy Languageホームスタディコース

 

※「モメンタム」とは、株価の勢いを数値化したものです。

詳しくは、マネックス証券さんのページからどうぞ。

https://info.monex.co.jp/lounge/special1/2013/10/08-025239.html

 

クリックすると解説ページが表示されます。

 

練習問題: *12 ローソク足の実体の平均 ….. 43

学習の目的: 関数を呼び出す。ユーザー定義数値変数を使用する。

詳細: 練習問題*04 ローソク足の実体を応用して、ローソク足の実体の 10期間の平均値を描画する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「チャレンジ問題 3: *13 エンベロープ」 までを解説しています。

 

チャレンジ問題 3: *13 エンベロープ …. 45

学習の目的: 関数を呼び出す。ユーザー定義数値変数を使用する。

高値の 20期間移動平均線と安値の 20期間移動平均線を描画する。

出所:Easy Languageホームスタディコース

クリックすると解説ページが表示されます。

※ひとつ上の解説ページと同じ内容です。

 

 

13. インプット …. 46

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

なーんだ変数かぁ。

でも。

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

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

 

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

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

 

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

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

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

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

 

 

練習問題: *14 エンベロープ 2 …. 48

学習の目的: 固定値の変わりにインプットを使用する。

詳細: チャレンジ問題 3 *13 エンベロープ を応用して、移動平均線の期間をインプットで宣言する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

練習問題: *15 最高値と最安値…. 52

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

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

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

スポンサーリンク

 

 

14. 関係演算子 …. 55

関係演算子とは?

なんこんなに難しい呼び方にしたのでしょうね。

もはやイジメです!

 

関係演算子は 二つの対象が 「同じか」、「大きいか」、「小さいか」 調べるものです。

下の式はおなじみですね。

44

45

この  や  の事です。

 

 

EasyLanguageは 8つの関係演算子を 持っています。

 

◎ 6つの代表的な関係演算子はこれです。

 

 

◎株式売買のために開発されたEasyLanguageには2つのユニークな関係演算子加わります。

○前後の足を比較して交差を判別する関係演算子

Crosses over  は

下記 の場合を返します

現在の足ではx > y であり、1足前では x < y

 

Crosses under は

下記の場合を返します

現在の足ではx < yであり、1足前では x > y

 

上のチャートで 終値が「移動平均線を越えた」、「移動平均線を下回った」等の判定に使えます。

ワクワクしてきませんか?  後もう一息で売買プログラムが書けそうな気がしてきます。

 

クリックすると解説ページが表示されます。

※この解説ページで、「15. If…Then 文」 までを解説しています。

 

15. If…Then 文…. 57

とうとうやって来ました  if…then文 です。

ココまでの知識に加えて、if…thenが理解できれば、「私はプログラムを書けます」と言ってOKです。

 

”if” は 英語の ”もしも” の if です。

 

if と then の間に挟まれた 真偽式 が 真 ならば then 以降の命令 を実行します。

もしも ○△ ならば ◆▼ してね

となります。

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

16. EasyLanguage でアラートを出す…. 58

ある条件になったら、下のチャートの様に付箋のようなアラートを表示させる事が出来ます。

 

練習問題: *16 エンベロープ 2 アラート…. 59

学習の目的: If…then を使用してアラート条件を設定する。

詳細: 練習問題 *14 エンベロープ 2 を応用して、安値が上限線より高くなる、または高値が下限線より安くなった場合にアラートを出す。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

練習問題: *17 移動平均&バンド …. 62

学習の目的: If…then を使用してアラート条件を設定する 。インプット、変数、関数 を複数利用する。
詳細: このインジケーターは次の 3つの線を描画する:

 移動平均線   移動平均線の 1標準偏差上限線  移動平均線の 1標準偏差下限線

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

17. ショウミー …. 66

ショウミーはインジケーターと同様にチャート分析ウィンドウに描画する機能です。
イ ンジケーターと異なる点は、ショウミーは初期設定で点描画を行うことです。
任意の条件を満たした足に点描画を行うことで、その条件に該当する足をチャート上で認識しや すくしています。

出所:Easy Languageホームスタディコース

 

18. If…Then ブロック文…. 67

If…then 文の後には 1 つの実行式しか続けることができませんが、If…then ブロッ ク文の後には複数の実行式を続けることができます。
If…then ブロック文の実行式は begin と end の間に来ます。

これは、もし If…then の間の真偽式が真なら begin に 続く命令を実行し、end (セミコロンが続く)が見えるまでやめないようにということを トレードステーションに伝えています。

If 真偽式 then begin

実行式;

実行式;

実行式;

end;

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

練習問題: *18 期間値幅….. 68

学習の目的: If…then ブロック文を使用してショウミーを書く。Range 関数 と Highest 関数を使用する。
詳細: 現在の足の値幅が、1足前の 10期間の最大値幅のより大きいとき、ショウミーを描画する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

19. If…Then…Else 文と NoPlot 文…. 70

If…then…else 文は条件分岐を行って処理を分けるときに使用されます。

If…then 文 の真偽式が真の場合には後に続く 1つの命令を実行し、偽の場合には else に続く命令 を実行します。

 

If 真偽式 then

真の場合の実行式

else

偽の場合の実行式;

出所:Easy Languageホームスタディコース

 

 

ショウミーを書くとき、If…then…else 文と NoPlot 文の組み合わせは頻繁に使用さ れます。

足が形成される間に真偽式が真になったが、その後足の終わりにかけて真偽式 が偽に変わった場合に、描画を消すことができます。

If Close > Close[1] then

Plot1( Low, “上昇”)

else NoPlot(1);

例えば上記例では、現在の足の終値が 1足前の終値より高いときショウミーを描画します。

しかし、足の終わりまでに現在の足の終値が 1足前の終値より安くなればショウミ ーの描画は NoPlot 文によって削除されます。

NoPlot 文に続く丸括弧の中の数値 1 はPlot1 を表しています。

 

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

(チャレンジ問題 4: *19 弱気の終値….71)

※Easy Languageホームスタディコースの目次には記載されていませんが、上の解説ページで説明しています。

学習の目的: If…then…else ブロック文と NoPlot 文を使用してショウミーを描画する。 終値が値幅の 3分の 1より安いときショウミーを描画する。足が確定するまえに条件が偽になった場合に NoPlot 文でショウミーを削除する。

出所:Easy Languageホームスタディコース

 

20. ペイントバー …. 72

ペイントバーは条件を満たす足の実体部分またはヒゲを含めた足全体に色を付けるための機能です。

特に条件を満たす状態が過去から現在にかけて連続して発生しているとき、効果を発揮します。

散発的な事象の認識にはショウミーの方が適しています。

 

ペイントバーの描画には専用のプロット文を使用します。

PlotPB(開始値, 終了値, “プロット名”);

 

出所:Easy Languageホームスタディコース

 

練習問題: *20 モメンタムポジティブ….. 72

学習の目的: PlotPB 文を使用してペイントバーを描画する。

詳細: モメンタム値(モメンタムインジケーターはビルトインされています)が 0より大きい場合ペイントバーを描画すると同時にアラートを通知する。NoPlot 文も使用する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

21. 足の日付参照 …. 74

Easy Languageの日付形式は年の表し方が少々変わっています。

 

次の例は 2003年 12月 9日を EasyLanguage の日付形式で表しています。

1031209

0を 1900年、100を 2000年として 103は 2003年を表しています。

例えば、000は 1900 年、088は 1988年です。 12 は 12月を表しています。 09 は 9日を表しています。

予約語 Date がこの形式で足の日付を返します。

出所:Easy Languageホームスタディコース

 

練習問題: *21 曜日 …. 75

学習の目的: 日付参照を使用してペイントバーを描画する。

詳細: インプットで指定した曜日の足にペイントバーを描画する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

22. 足の時間参照 …. 76

インターバルに関わらず全ての足には時間情報が付加されています。

EasyLanguage は 24時間表記でその時間情報を参照することができます。

予約語 Time は次の形式で足の 時間を返します。:

Time > 1500

この真偽式は午後 3時以降に真になります。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「チャレンジ問題 5: *22 任意時間」 までを解説しています。

 

23. 論理演算子 …. 77

論理演算子は複数の真偽式を繋げる役割を果たします。

使用された論理演算子によって、全体の式が真であるためには、個々の真偽式のいくつかが真であればよいのか、あるい は、すべてが真でなければならないのかが決まります。

AND : 2つの真偽式が真であれば式全体が真になります。

High > High[1] AND Close > Close[1]

OR : 一方の式が真であれば式全体が真になります。

High > High[1] OR Close > Close[1]

論理演算子は左から右に計算されます。またANDはORに優先します。丸括弧で計算
式の評価の順番を変更することもできます。

出所:Easy Languageホームスタディコース

 

チャレンジ問題 5: *22 任意時間…. 78

学習の目的: 時間と論理演算子を使用してペイントバーを描画する。

前日 15時 30分から本日 10時 30分までの足の半値から安値までをペイントバーで描画する。

 

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

24. ストラテジー …. 79

やっとたどり着きました。

私たちがEasy Language学習している最終目的は、

トレードステーションに「自動売買をさせる事」又は「投資戦略のシミュレーション」です。

 

ストラテジーは、任意のルールに基づいた少なくとも 1つの売買文から成り立っていま す。ストラテジーは複数の売買文で構築することもできます。または 1つ 1つ別のストラテジーとして作成して、別々にチャート分析ウィンドウに適用することもできます。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「ストラテジーの注文シンタックス」 までを解説しています。

 

ストラテジーの注文シンタックス …. 79

EasyLanguageは注文を発注することができる 4つの注文シンタックスを持っています:

 Buy: 新規買い。ポジションを保持していない場合、新規で買いポジションを建 てます。売りポジションを保持している場合、ドテンして買いポジションを建て ます。

 SellShort: 新規売り。ポジションを保持していない場合、新規で売りポジショ ンを建てます。買いポジションを保持している場合、ドテンして売りポジション を建てます。

 Sell: 売却。買いポジションを決済します。

 BuyToCover: 買戻し。売りポジションを決済します。

 

注文シンタックスは次のタイミングで発注されます:

 Next bar at market = 次の足の始値

 Stop = 次の足でストップ注文条件を満たした瞬間

 Limit = 次の足で指値注文条件を満たした瞬間

 This bar on close = 現在の足の終値(バックテストのみ、リアルタイムでは次の足の始値で発注)

出所:Easy Languageホームスタディコース

 

練習問題: *23 ブレークアウト…. 81

代表的な「ブレークアウト戦略」をプログラミングします。

 

学習の目的: ストップ注文を発注するストラテジーを書く。 詳細: 8期間の最高値から一定値の価格に買いストップ注文を置く。また 8期間の最安
値から一定値の価格に売りストップ注文を置く。

出所:Easy Languageホームスタディコース

クリックすると解説ページが表示されます。

 

練習問題: *24 移動平均交差…. 88

実践的なエクジットの条件も追加します。

 

学習の目的: ストラテジー関連の予約語を使用してストラテジーを書く。

詳細: 短期移動平均線が長期起動平均線を上抜いたら買い、下抜いたら売り。

ポジショ ンを保持してから任意の足数過経後、そして任意の含み益に到達していなければ、ポジションを決済する。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

25. 真偽変数 …. 91

真偽変数を使うと真偽式を参照しやすくなります。他の変数同様、変数に代入された式 は 1つの足で 1度だけ計算すればよく、同じ足で何度参照しても重複して計算されるこ とがないので、変数の使用は EasyLanguageの効率を上げます。

真偽変数の利点:

 計算効率を上げる

 タイプミスを減らす

 可読性を上げる

注釈: EasyLanguageのプログラムの中で宣言と代入が行われた変数だけが参照することができる変数です。

出所:Easy Languageホームスタディコース

ユーザー定義真偽変数…. 91

ユーザー定義真偽変数 EasyLanguageではユーザー定義数値変数だけでなくユーザー定義真偽変数を使用するこ とができます。

ユーザー自身が変数の名前を作成するので、その変数に代入される値に 相応しい分かりやすい言葉で変数名を表現できるでしょう。

ユーザー定義数値変数と同等、まず始めにユーザー定義真偽変数を宣言します。しかし ユーザー定義数値変数と異なり、ユーザー定義真偽変数は真または偽で初期化する必要 があります。通常は”ある条件が偽になれば”ではなく”ある条件が真になれば”と思考するので、変数は偽で初期化します。その後に変数へ真偽式を代入する代入文を書きます。

出所:Easy Languageホームスタディコース

 

変数宣言文…. 91

変数宣言文 この宣言文は偽で初期化した UpBar という名前の真偽変数です:

Variables: UpBar(false);

1つの宣言文の中で、複数の真偽変数を宣言することができます。それだけでなく、次 のように数値変数と真偽変数を同じ宣言文の中で宣言することもできます:

Variables: NetChange(0), UpBar(false), DownBar(false);

出所:Easy Languageホームスタディコース

変数代入文…. 91

変数代入文 UpBar 変数へ真偽式を代入しています:

UpBar = Close > Close[1];

ユーザー宣言数値変数と同様、ユーザー宣言真偽変数を使用する準備が整うまでには 2つのステップが必要です。宣言、そして代入です。

出所:Easy Languageホームスタディコース

 

練習問題: *25 モメンタム交差…. 92

学習の目的: MRO 関数とユーザー定義真偽式を使用する。

詳細:モメンタムが現在の足を含めて 4足連続で 0を下回っておらず、現在の足で 0を 上抜いたとき買い、またはモメンタムが現在の足を含めて 4足連続で 0を上回っておら ず、0現在の足でを下抜いた時に売る。モメンタムが 2足連続で下降したら決済売り(転売)、2足連続で上昇したら決済買い(買戻し)を行う。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

チャレンジ問題 6: *26 転換点…. 95

学習の目的: 真偽式、指値注文のシンタックス、足のパターン認識を使用してストラテ ジーを書く。
足のパターンを定義して、売買シグナルの条件にする。

出所:Easy Languageホームスタディコース

 

定義済み真偽変数…. 96

定義済み数値変数は

Value0 から Value99 まで 100個あります。

 

同様に予め名前が定 義されている真偽変数も 100個あります。:

Condition0 から Condition99 まで

これらの名前は自動的に真偽変数として認識されるので、真偽式を代入するだけで直ぐ に使用できます:

 

変数代入文

Condition0 = 真偽式;

Condition1 は、現在の足の終値が 1足前の終値より高いかどうかという真偽式の評価 結果を参照しています:

Condition1 = Close > Close[1];

 

出所:Easy Languageホームスタディコース

 

 

26. ビルトインストップ…. 97

注文に関する内容です。 よく覚えておきましょう。

 

EasyLanguage は、頻度が高い決済注文の方式を予め定義したビルトインストップの予約語を幾つか持っています。

これまでの注文文は次の足で注文を発注していましたが、ビ ルトインストップの予約語はティックバイティック([ストラテジーの設定]の[計算]タブ にある[イントラバー注文の作成および計算を有効にする]の設定如何に関わらず)に評価 を実行します。

つまりエントリーした足でエグジットすることもできます

(中略)

ビルトインストップの利点は、予め定義された短い語だけでストラテ ジーにリスク管理を加えることができることです。
更にビルトインストップは、1つの 予約語で決済売りと決済買いの両方を実行します。

 

ビルトインストップの計算をポジション単位にするか、株数単位にするか設定する予約語です。

SetStopPosition – ポジション全体に対して計算

SetStopShare or SetStopContract – 株数に対して計算

 

出所:Easy Languageホームスタディコース

 

 

ビルトインストップの予約語には次の 5つがあります。

 

 SetBreakEven – 同値降り。含み益が発生したとき、成行注文をエントリー価格に発注します。

 SetDollarTrailing – 金額トレーリングストップ。最大含み益から任意の金額分離れた価格にストップ注文を発注します。最大含み益が増えれば、それだけ 逆指値価格も上がります(買いポジションの場合)。

 SetPercentTrailing – パーセントトレーリングストップ。任意の含み益到達後、最大含み益から任意のパーセント分離れた価格にストップ注文を発注します。 最大含み益が増えれば、それだけ逆指値価格も上がります(買いポジションの場合)。

 SetProfitTarget – 利益確定。任意の利益確定目標額の価格に指値注文を発 注します。

 SetStopLoss – 損切り。任意の損切り額の価格に達したとき、成行注文を発注します。

 

出所:Easy Languageホームスタディコース

 

ビルトインストップの予約語を使用しなくても、同様の決済注文を自分でプログラムすることが出来ます。

ただし、よほどの理由がない限り「ビルトインストップの予約語」を使用する事をオススメします。

 

※ビルトインストップは、1つの 予約語で「決済売り」と「決済買い」の両方を実行します。

 

クリックすると解説ページが表示されます。

※この解説ページで、「練習問題: *27 ブレークアウト 2」 までを解説しています。

 

練習問題: *27 ブレークアウト 2…. 98

学習の目的: ストラテジーでビルトインストップを使用する。

詳細: 練習問題 *23 Breakout を応用して、8期間の最高値から一定値の価格に買いスト ップ注文を置く。
また 8期間の最安値から一定値の価格に売りストップ注文を置く。ビルトインストップで決済を行う。

出所:Easy Languageホームスタディコース

 

より実践的な実習内容になってきました。

 

クリックすると解説ページが表示されます。※上の解説ページと同じ内容です。

 

練習問題: *28 RSI OB_OS ….100

学習の目的: HighestBarと LowestBar関数と、ビルトインストップを使用してストラテジーを書く。
詳細: RSIが 50より小さく直近の RSI の 7期間の中で3足前以前に RSIの最安値を付けたとき買い、RSIが 50より大きく直近の RSIの 7期間の中で 3足前以前に RSIの最高値を付けたとき売り。ビルトインストップを置く。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

 

27. 複数データ: 複数データ系列の参照…. 102

「A銘柄」、「B銘柄」そして「C銘柄」の値動きを分析して、A銘柄の売買注文を出す。 そんな事も出来ます。

 

1つのチャート分析ウィンドウには最大50までのデータ(分足など時系列足種の銘柄)を 追加することができます
シンボルにはデータ番号” Data1”から” Data50”までが割り振られます。
インジケーターは Data1 以外の計算をプログラム中で実行できるだけでなく Data1 以外の計算結果も描画することができますが、ストラテジーは Data1 以 外の計算をプログラム中で行うことができるだけで、売買シグナルは Data1 に対してのみ発注することができます。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「練習問題: *29 複数データ系列移動平均線」 までを解説しています。

練習問題: *29 複数データ系列移動平均線….103

学習の目的: 複数データ系列の参照。
詳細: Data1の終値が Data1の 20期間の終値移動平均線より高く、Data2の終値がData2の 50期間の終値移動平均線より高いとき買い。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

28. ダイナミック設定…. 105

インジケーターのさなどを指定します。

 

プロット文の描画色太さセルの背景はそれぞれ

SetPlotColorSetPlotWidthSetPlotBGColor という予約語を使用して設定することもできます。

チャート分析ウィンドウとレーダースクリーン :  SetPlotColor(プロット番号,色);

チャート分析ウィンドウ : SetPlotWidth(プロット番号, 太さ);

レーダースクリーン : SetPlotBGColor(プロット番号, 色);

出所:Easy Languageホームスタディコース

 

 

◎色を設定

SetPlotColor(プロット番号, 色)

※プロット番号は、 Plot番号の 1-99 までを指定できます。

 

◎色のパラメーター
EasyLanguage色を指定する事が出来ます。(16色)

Black
Blue
Cyan
Green
Magenta
Red
Yellow
White
DarkBlue
DarkCyan
DarkGreen
DarkMagenta
DarkRed
DarkBrown
DarkGray
LightGray

使用例 : SetPlotColor(1, yellow);

※その他 数値を指定することも出来ます。

 

クリックすると解説ページが表示されます。

※この解説ページで、「練習問題: *30 出来高検知」「29. 色のグラデーション 」までを解説しています。

 

練習問題: *30 出来高検知 ….106

学習の目的: SetPlotColor と SetPlotWidthを使用する。
詳細: 出来高に応じて、インジケーターの描画色と描画の太さを変化させる。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

29. 色のグラデーション …. 108

色や太さだけで無く、色にグラデーションを付けることも出来ます。

 

◎例

GradientColor(Value1, -10, 10, Red, Green);

Value1 の値が-10 から 10 の範囲にあるとき、色は赤から緑の範囲でグラデーションします。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

30. レーダースクリーンのプロット文 …. 109

これまでは、主にチャートにインジケーターを表示する実習をしてきましたが、ここではレーダースクリーンに適応させます。

 

クリックすると解説ページが表示されます。

※この解説ページで、「Exercise: *31 ローソク足の実体の平均 RS」までを解説しています。

Exercise: *31 ローソク足の実体の平均 RS….110

学習の目的: レーダースクリーン用のインジケーターを書く。
詳細: 足の実体の平均値に応じて強気と弱気という文字列をセルに表示します。
同時に 実体の平均値もセルに表示します。セルの背景色は実体の平均値に応じてグラデーションするようにします。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

31. 変数: 値の再代入…. 114

ある特定の条件になったら、変数の値を置き変える。

プログラムには、とても大切なテクニックです。

 

変数は、新しい値が再代入されるまで、過去の足から現在の足へと値を保持します。

変 数代入文が条件式を伴っていなければ、足毎に変数には新しい値が再代入されますが、 次のように、変数代入文が条件式を伴っていれば、条件式が真の場合にだけ変数に新し い値が再代入されます。

例:

If Time = SessionFirstBarTime(1, 1) then

Value1 = Close – Close[1];

日中足インターバルのチャートにおいて、現在の足の時間が 1番目のセッションの開始 時間の場合、つまり 1日に 1度だけ 1番目のセッションの開始時間の足で、現在の足の 終値と 1足前の終値の差分を計算して Value1 に代入します。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。※この解説ページで、「練習問題: *32 日中足の最高値と最安値」までを解説しています。

 

練習問題: *32 日中足の最高値と最安値 ….115

学習の目的: セッション時間の参照と変数への値の再代入。

詳細: 日中足チャートに、1番目のセッション時間の開始から現在の足までの最高値と最安値を描画する。

出所:Easy Languageホームスタディコース

 

この実習で学ぶプログラムは、実践のデイトレードで役立ちます

クリックすると解説ページが表示されます。

※上の解説ページと同じ内容です。

 

32. 変数: 事象の発生回数…. 117

この事象は過去に何回発生したのか?

システムトレードにとって大切な、「銘柄のクセを見つける」為に有効な方法を学べます。

 

クリックすると解説ページが表示されます。

※この解説ページで、「練習問題: *33 連続」までを解説しています。

 

練習問題: *33 連続 ….118

学習の目的: 事象の発生回数をカウントするために変数を使用する。

詳細: 終値の連続上昇と下落をカウントして表示する。RadarScreen用。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。※上の解説ページと同じ内容です。

※上の解説ページと同じ内容です。

 

練習問題: *34 高値と安値の更新 ….122

学習の目的: 事象の発生回数をカウントする変数とビルトインストップを使用するストラテジーを書く。

詳細: 安値の連続下落回数がインプットの LowsToBuy で設定した数以上になったとき 買い指値を発注、高値の連続上昇回数がインプットの HighsToSell で設定した数以 上になったとき売りの指値注文を発注する。

指値の価格はインプットの Pts で設定し たポイント分を、現在の足の終値の上下に+/-して置く。

ビルトインストップの利益確 定注文の利益額を ProfTgt で、損切り注文の損切り額を StopLoss でインプット宣言する。

出所:Easy Languageホームスタディコース

 

より実践的な実習内容になってきました。

 

33. EasyLanguage からのアウトプット表示: プリントログ…. 125

トレードステーション は EasyLanguageの Print 予約語を使用して書かれたプリント文を [印刷ログ]ウィンドウにアウトプットすることができます。

[印刷ログ]ウィンドウは初期設定でトレードステーション本体下部に表示されています。

メインメニューの[表示]→[EasyLanguage 印刷ログ]で表示することもできます。

(中略)

Print(“日付”,Date,“値 1”,Value1,“条件 1”,Condition1);

このプリント文は、日付、Value1 の値、そして Condition1 の値(真または偽)と、それぞれのラベル文字をプリントログウィンドウにアウトプットします。

出所:Easy Languageホームスタディコース

 

クリックすると解説ページが表示されます。

※この解説ページで、「EasyLanguage からのアウトプット表示: 分析コメント」「練習問題: *35 モメンタム交差 2」までを解説しています。

 

34. EasyLanguage からのアウトプット表示: 分析コメント…. 126

分析コメントウィンドウは、インジケーターやストラテジーのプログラムの中のコメン タリー文に書かれた、数値、真偽値、文字列を表示することができます。

分析コメント ウィンドウはインジケーターやストラテジーが入っているチャート分析ウィンドウ、レーダースクリーン、またはオプションスクリーンウィンドウから開くことができます。

(中略)

コメンタリー文は次のように書くことができます:

Commentary(“日付”,Date,“値 1”,Value1,“条件 1”,Condition1);

このコメンタリー文は日付、Value1 の値、そして Condition1 の値(真または偽)と、それぞれのラベル文字を分析コメントウィンドウにアウトプットします。

出所:Easy Languageホームスタディコース

 

コメントの例です。

 

クリックすると解説ページが表示されます

※上の解説ページと同じ内容です。

 

練習問題: *35 モメンタム交差 2….127

学習の目的: プリント文とコメンタリー文を使用して、プリントログウィンドウと分析 コメントウィンドウに情報をアウトプットする。

詳細: 練習問題*25 Momentum Crosを応用する。

モメンタムが現在の足を含めて 4足連 続で 0を下回っておらず、現在の足で 0を上抜いたとき買い、またはモメンタムが現在 の足を含めて 4足連続で 0を上回っておらず、0現在の足でを下抜いた時に売る。

モメ ンタムが 2足連続で下降したら決済売り(転売)、2足連続で上昇したら決済買い(買戻し)を行う。

出所:Easy Languageホームスタディコース

クリックすると解説ページが表示されます

※上の解説ページと同じ内容です。

 

付録 A…. 131

トレードステーション 開発環境….131

トレードステーション 開発環境の解説です。

トレードステーション開発環境はインジケーター、ストラテジー、関数などの EasyLanguageドキュメントを新規に作成したり編集したりすることに必要な全ての機能を備えています。

(中略)

トレードステーション開発環境は主に、ソースコードを書き込むエディター、アウトプ ットバー、ツールボックス、プロジェクト、Resource View、アウトライン化、プロパティ、辞書等の機能で構成されています。

エディターが機能の中心に、アウトプットバー はトレードステーション開発環境の下部に配置されています。

辞書等の機能はエディターの左右に格納されており、タブをクリックすることで前面に引き出すことができます。

出所:Easy Languageホームスタディコース

 

マネックス証券さんが開催した、「EasyLanguage 1日集中セミナー」(有料の会場型セミナー)では、講師の方が「トレードステーション開発環境のエディターは優秀なので、他のエディターを使用するメリットはあまりない」とおっしゃっていました。

 

付録 B: ….137

Volume と Ticksを中心とした、予約語についての解説です。

一般的に Volumeと言えば出来高を、Ticksと言えば約定数を表します。

EasyLanguageの 予約語 Volumeと予約語 Ticksの意味合いは少々異なり、ウィンドウの種類、銘柄の種 類、または銘柄のインターバルによって、返す値は異なります。

Ticksは更に予約語UpTicksと予約語 DownTicksの定義で分けることができます。

出所:Easy Languageホームスタディコース

 

付録 E: チャレンジ問題の模範解答….141

文字通り、チャレンジ問題の模範解答がまとめて記載されています。

(付録Bの次が付録Cでは無く、付録Eになっているのは、テキストの誤植だと思います)

 

追加 – 練習問題 … 147

追加練習問題: *100 EMAインジケーターを 1プロットテンプレートを利用し て作成する …. 147

追加練習問題: *101 MACDインジケーターを 2プロットテンプレートを利用し て作成する …. 150

追加練習問題: *103 RSI インジケーターを買われ過ぎ売られ過ぎテンプレート を利用して作成する …. 154

追加練習問題: *104 Kairi インジケーターをゼロベーステンプレートを利用し て作成する …. 158

追加練習問題: *200 BuyNextBarAtMarket ストラテジーを買い成行注文テンプ レートを利用して作成する ….. 162

追加練習問題: *201 乖離率ストラテジーを乖離率インジケーターと買い成行 注文テンプレートを利用して作成する …. 164

追加 – 主要な EasyLanguage用語・構文…. 166

Input

インジケーターやストラテジーのインプット設定で変数値を変更することができ る変数を宣言したり初期化するためのインプット変数宣言予約語。

(例) Inputs: Series(Close), Value(5), TrueOrFalse(False), Str(“文 字列”);

 

Variable

インジケーターやストラテジー内で使用することができる変数を宣言したり初期 化するためのユーザー変数宣言予約語。

(例) Variables: Series(Close), Value(5), TrueOrFalse(False), Str(“文字列”);

 

Condition1

定義済み真偽変数。Condition0 から Concition99 まで 100 個の変数が変数 宣言と初期化をしなくても利用できる。

(例) Condition1 = Close[0] Crosses Over AverageFC(Close,8) ;

 

Value1

定義済み変数。Value0 から Value99 まで 100 個の変数が変数宣言と初期化 をしなくても利用できる。

(例) Value1 = High[1] – Low[1];

Buy next bar at market 新規買い成行注文を発注する。

(例) Buy ( “新規注文名 ” ) next bar at market ;

Sell next bar at market 決済売り成行注文を発注する。

(例)
Sell ( “決済注文名 ” ) next bar at market ;

 

 

 

この記事を書いた人

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

あしおゆたか

投資歴20年の個人投資家

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

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

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

◇運営者情報はこちら

 

 

https://tradestation.life/blog/