トレステ勉強会で頂いた「トレードステーション入門」が意外にイケてる! と 以前(リンクは下)ブログで紹介しました。
今回はその「トレードステーション入門」99ページ~106ページの記事に挑戦します。
□EasyLanguage の基本が分かる!! サンプルソース集
自分の手で EasyLanguage(イージーランゲージ)を 打ち込み、 投資戦略(ストラテジー)を作成する記事がありますので、 管理人 あしお が実際にやってみます。
記事を丸写しにはできないので、詳細は セミナーに参加するか、本屋さんで購入するなどして、書籍を手に入れてください。
参考文献:株式投資自動売買で儲ける システムトレード「トレードステーション入門」 (ブルーガイド・グラフィック) ムック 実業之日本社
□移動平均線クロスの投資戦略を書いてみる
(トレードステーション P101 サンプルソース1 より)
投資戦略の中で一番有名では?と思われる、株価の移動平均線クロスの戦略です。
〇戦略の概要
・短期の移動平均線が、長期の移動平均線を上に抜いたら 買い
・短期の移動平均線が、長期の移動平均線を下に抜いたら 売り
EasyLanguage(イージーランゲージ)のコードは下になります。
EasyLanguage(イージーランゲージ):以下 EL と 書く事もあります。
<ELコードは ここから>
Input: FastLen(13),SlowLen(30);
Vars: FastAvg(0),SlowAvg(0);
FastAvg = Average(Close,FastLen);
SlowAvg = Average(Close,SlowLen);
If FastAvg Crosses over SlowAvg then Buy next bar at market;
If FastAvg Crosses under SlowAvg then Sellshort next bar at market;
<ELコード ここまで>
始めて見る人は、何がなんだか分かりませんよね。
このコードを見ただけで、「もう無理っ!」て思いませんか?
そうですよね~。 でも、もう少しだけ我慢してください。
このブログページの最後まで目を通してもらえれば、
「今まで知らなかった(出来なかった)素晴らしい自動売買の世界に羽ばたけるかも」
と、思えるはずです。
※下の説明では、初心者(初学者)向けにあえて混乱を避けるために、簡素化して説明をしています。
<ELコード説明>
プログラム言語は、 人間とコンピュータが会話する「言葉」です。
人間と違って、コンピュータは少々頭が固いので、順を追って話さないと、うまく理解してくれません。 (当然ボディランゲージも通用しません・・・・笑うところです(*^^)v )
〇 Input: FastLen(13),SlowLen(30);
Input: は「これは後から変更できる変数ですよ」と言っています。
(Input: の後に続く FastLen(13),SlowLen(30) についての 宣言文)
FastLen(13) は
FastLen 短い移動平均の足数を入れる名前(名前はプログラムを作る人が勝手に決められます)
(13) カッコ内の数字が 何足分の移動平均にするかを指定しています。
つまりFastLen(13) とは 13足の移動平均 の 意味です。
SlowLen(30) は
SlowLen 長い移動平均の足数を入れる名前(名前はプログラムを作る人が勝手に決められます)
(30) カッコ内の数字が 何足分の移動平均にするかを指定しています。
つまりSlowLen(30) とは 30足の移動平均 の 意味です。
上のコードでは 短期の移動平均 FastLen(13) と 長期の移動平均 SlowLen(30) を 同じ行に書くために カンマ ”,” で 繋いでいます。
文の最後には 「文が終わりだよ」と トレステに教えるための 記号 セミコロン ” ; ” を入れます。
〇Vars: FastAvg(0),SlowAvg(0);
Vars: は「これは変数ですよ」と言っています。(Inputとの違いは後述)
FastAvg(0) は
FastAvg 短期の移動平均の数値を入れる変数の名前(名前はプログラムを作る人が勝手に決められます)
(0) カッコ内の数字が 初期値(プログラム内で計算する前に最初に指定しておく数値)。
つまりFastAvg(0) とは FastAvg という 変数 です。 初期値は ゼロ の 意味です。
SlowAvg(0) 長い移動平均の数値を入れる変数の名前(名前はプログラムを作る人が勝手に決められます)
(0) カッコ内の数字が 初期値(プログラム内で計算する前に最初に指定しておく数値)。
つまりSlowAvg(0) とは SlowAvg という 変数 です。 初期値は ゼロ の 意味です。
〇FastAvg = Average(Close,FastLen);
さて、ここからプログラムらしくなって来ました。
FastAvg = Average(Close,FastLen) は
変数 = 計算式 です。
イコール ”=” で 繋いでいますが、 イコールの 右側で計算した結果を 左側の変数に いれます。
イメージとしては こちらのほうが 分かりやすいと思います。
変数 ⇐ 計算式
計算式 の Average(Close,FastLen) は
平均を計算しなさい(計算する値は足の終値だぞ、指定した足の数で) と 言っています。
指定した足の数は プログラム1行目で指定した Input: FastLen(13),SlowLen(30); なので
平均を計算しなさい(計算する値は足の終値だぞ、足の数は13本だよ) と 言っています。
FastAvg = Average(Close,FastLen) の 意味は
FastAvg という名前の変数に 計算式 の答えを代入してね といっているのです。
〇SlowAvg = Average(Close,SlowLen);
こちらも同様です。
SlowAvg = Average(Close,SlowLen) の 意味は
SlowAvg という名前の変数に 計算式 の答えを代入してね といっているのです。
計算式は 平均を計算しなさい(計算する値は足の終値だぞ、足の数は30本だよ)
〇If FastAvg Crosses over SlowAvg then Buy next bar at market;
この文は長いのですが、言葉として分かりやすいと思います。(英単語が分かれば、意味が大体分かりますね)
If FastAvg Crosses over SlowAvg then Buy next bar at market;
もしも 短期の移動平均線が、長期の移動平均線を上に抜いたら 次の足で買い
このページ前半の戦略の概要で書いた文章そのままです。
※EasyLanguage(イージーランゲージ)のプログラムコードは、トレードステーションのチャートの足毎に実行(プログラム命令が1行目から最終行まで実行)されます
※チャートが 日足 の場合 このプログラムコードで自動売買したら、 翌日の前場の寄り付きで売買されることになります。
〇If FastAvg Crosses under SlowAvg then Sellshort next bar at market;
もしも 短期の移動平均線が、長期の移動平均線を下に抜いたら 次の足で売り
どうですか?
・ここまでなら余裕で分かった人
・うーん と ??マークだらけの人 色々だと思います。
??マークの人は、一日休んでからまたこのページを見てください。
きっと初日とは違う印象でプログラムコードが見えるはずです。
記事が長くなりましたので、この続きはまた後にしたいと思います。
もう少し先に進まないと、
「今まで知らなかった(出来なかった)素晴らしい自動売買の世界に羽ばたけるかも」
との思いは感じられないかもしれません。
ちょっと待ってくださいね。
それでは失礼します。