• Skip to primary navigation
  • Skip to main content
  • ホーム
  • このサイトについて
  • 著者について

戦略的な投資家

FXや株の投資戦略を追求するサイト

  • コース一覧
  • RVGS1.0
  • 値動きの特徴
    アノマリー/時間帯
  • FX為替の予想
    • ドル円(USDJPY)の予想
    • ポンド円(GBPJPY)の予想
    • ユーロドル(EURUSD)の予想
    • AUDUSDの予想
    • EURJPY(ユーロ円)予想
    • CHFJPY(スイスフラン円)予想
    • EURUSD(ユーロドル)予想
    • GBPUSD(ポンドドル)予想
    • ゴールド(XAUUSD)の予想
  • プライスアクション
    攻略の完全マップ
    • 初心者向けのプライスアクション講座 はじめに~目次
    • プライスアクション完全マップ【裁量トレードから自動売買まで】
    • デイトレードとスキャル
  • FX完全マップ
    • FXの予想
    • マクロファンダ
  • MT4のすべて
    • インジケーター
  • エリオット波動
    • エリオット波動完全マップ
  • 株式投資
    • 株の暴落を攻略する方法
    • コロナショックの暴落は投資チャンス【具体的な銘柄/ETF選びとタイミング】
You are here: Home / Easylanguage / EasyLanguage初心者講座② Print文でプログラムの動きを理解する(超重要)

EasyLanguage初心者講座② Print文でプログラムの動きを理解する(超重要)

By ロボ | 更新日 2019年6月19日

EasyLanguageのプログラムはローソク足ごとに処理が実行されます。
この動きは慣れてしまえば簡単ですが、はじめのうちは少し戸惑う事があると思います。
基礎講座②ではPrint文を使ってEasyLanguageのプログラムの動きについて詳しく説明します。

もくじ

  • 今回作成するEasyLanguageプログラム
  • 今回学習する内容
  • 解説
    • 予約語:Print
    • 添字(そえじ)
    • EasyLanguageプログラムの動きについて
      • インジケーターの処理の流れ
      • 過去のデータの参照とMaxbarsback
  • まとめ

今回作成するEasyLanguageプログラム


<コード>

1
2
Plot1[0](Close[0], "終値");
Print(Close[0]);

今回はこのインジケーターを使ってEasyLanguageプログラムの動きについて説明をします。
今回の内容はEasyLanguageプログラミングを理解するうえで最も重要なことの一つです。
少しややこしい部分もありますが、出来るだけわかりやすく説明しますので
しっかり理解するようにしてください。
ここさえ理解出来てしまえば、今後のEasyLanguage学習をスムーズに進めることが出来ると思います。

今回のコードは「EasyLanguage印刷ログ」へ値を出力するので
以下の操作で印刷ログを表示してください。


TradeStationのメニューバーから「①表示」→「②EasyLanguage印刷ログ」にチェックを入れます。


印刷ログ(赤枠)が表示されればOKです。

 

今回学習する内容

  • 予約語Printについて
  • 添字(そえじ)について
  • EasyLanguageプログラムの動きについて

EasyLanguageプログラムの動きの解説の前に、まずはコード中で使用している
「Print」と「添字」について簡単に解説をします。

 

解説

予約語:Print

パラメーターで指定した値を出力することが出来ます。
出力先はデフォルトでは「印刷ログ」となります。
Printの使い方は以下のようになります。

Print(①出力先, ②~出力する値);

①出力先(省略可)

値の出力先を指定します。
出力先には「ファイル(CSVファイル等)」や「プリンタ」を指定することが出来ます。
出力先を指定せず省略した場合は、デフォルトの「印刷ログ」に出力されます。

②~出力する値

パラメーターとして指定した値を出力します。
②,③,④…とカンマ区切りで複数の値をつなげて出力することも出来ます。

<使用例1>

1
Print(File("C:\BPDATA\Data.csv"), Close);

※CSVファイル[C:\BPDATA\Data.csv]に終値が出力されます。

 

<使用例2>

1
Print(Open, "-" , High, "-" , Low, "-" , Close);

※印刷ログに4本値(始値-高値-安値-終値)を出力します。

 

添字(そえじ)

添字とは、配列の要素を指し示すための通し番号のことで、
具体的には、Plot1[0]やClose[0]の[0]の部分のことを言います。
配列の詳細についての説明は割愛しますが、連続したデータを扱うための仕組みで
ほとんど全てのプログラム言語で実装されている仕組みです。
EasyLanguageではこの配列という仕組みを使って過去のデータの履歴を管理しています。
0が一番新しいデータになり、0の部分を増やしていくことで過去のデータを参照できます。
例えばClose[1]とすることで、1つ前のローソク足の終値を参照することが出来ます。
なお、添字が0の場合は省略することが出来ます。
(CloseとClose[0]は同じ値になります)

 

EasyLanguageプログラムの動きについて

インジケーターの処理の流れ

インジケーターをチャートに適用した際、まずはチャートに読み込まれているローソク足の
数だけインジケーターの処理が実行され、その後、ティック(歩み値)が発生したり、
新しいローソク足が作成されたりしたタイミングで都度処理が実行されます。
※他の分析テクニックやストラテジーの場合も基本的には同じ動きになります。

今回作成したインジケータで具体的な処理の流れを見てみましょう。
今回は処理の流れが見えやすいように、チャートに読み込む足の数を
10本に設定しています。
(確定済みの過去10本と未確定の1本で計11本のローソク足が表示されます)

 

この設定のチャートに今回作成したインジケーターを適用すると以下のようになります。

<印刷ログに出力された内容>

1
2
3
4
5
6
7
8
9
10
108.07
108.15
108.46
108.39
108.20
108.45
108.52
108.50
108.39
108.21

チャート上には一番最初のローソク足を除く、計10本の足にラインが引かれ
印刷ログには計10行のデータが出力されました。
この処理が先ほど記載した「まずはチャートに読み込まれているローソク足の
数だけインジケーターの処理が実行される」という部分です。

もう少し詳細に処理の流れを見ていきましょう。

<印刷ログの内容>

1
108.07

インジケーターの1回目の処理が実行された状態です。
処理は古いローソク足から順に実行されていきますが、一番最初の足は無視されるので、
今回のインジケーターでは1回目の処理は左から2本目の足で実施されます。
1回目の処理が行われた状態では、2本目のローソク足が一番新しいデータ(=添字が[0])になるので、
Close[0]は2本目のローソク足の終値の108.07になり、
Plot1[0]によって値がプロットされる位置は、2本目のローソク足の位置になります。

 

<印刷ログの内容>

1
2
3
4
5
108.07
108.15
108.46
108.39
108.20

少し処理を進めて、5回目の処理が実行された状態です。
5回目の処理が実施された状態では左から6本目のローソク足が一番新しいデータになるので、
Close[0]は6本目のローソク足の終値の108.20になり、
Plot1[0]によって値がプロットされる位置は、6本目のローソク足の位置になります。
ちなみにこの5回目の処理が実施された状態でClose[1]の値を参照すると
左から5本目の足の終値(108.39)となります。


<印刷ログの内容>

1
2
3
4
5
6
7
8
9
10
108.07
108.15
108.46
108.39
108.20
108.45
108.52
108.50
108.39
108.21

最後のローソク足まで処理が実行された状態です。
チャートにインジケータが適用されると、まずはこの状態になります。
市場が動いていないときはここで処理が終了となりますが、
市場が動いているときには「その後、ティック(歩み値)が発生したり、
新しいローソク足が作成されたりしたタイミングで都度処理が実行される」
の部分が実行されます。

 


<印刷ログの内容>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
108.07
108.15
108.46
108.39
108.20
108.45
108.52
108.50
108.39
108.21
108.20
108.19
108.20
108.19

※11行目以降がティックの発生で出力された値

インジケーターを適用してから少し時間がたった状態です。
ティックが発生するたびに印刷ログにClose[0]の値が出力されます。
Plot1[0]がプロットされる位置は最後のローソク足の位置なので、
新しい足が出来るまではティックが発生するたびにPlot1[0]の値が上書き更新されます。
なので、相場が動いている状態でこのインジケーターを表示すると
終値(=Close[0])の値の変化に合わせて最後のラインの位置が上下するような動作をします。

 

過去のデータの参照とMaxbarsback

移動平均線に代表されるようなほとんどのインジケーターは過去のデータを参照します。
過去のデータはClose[3]のように添字の数値を変更することで参照することが出来ます。
ここでは、過去のデータを参照した場合のインジケーターの動きについて説明します。

まずは、コードを以下のように書き換えます。
<コード>

1
2
Plot1[0](Close[3], "終値");
Print(Close[3]);

 


<印刷ログの内容>

1
2
3
4
5
6
7
8
108.29
108.07
108.15
108.46
108.39
108.20
108.45
108.52

ラインが描かれ始める位置(=1回目の処理が実行された位置)が後ろに移動しました。
なぜこのようになるのかを確認してみましょう。

 

Close[3]は処理を実行しているローソク足から左に3本分移動した位置のローソク足の終値です。
一番最初のローソク足は無視されるので、Close[3]のデータを最初に参照できるのは
1回目の処理が実行された位置になるのがわかると思います。

このようにインジケーターが過去の情報を参照する場合は、過去のデータを参照できる位置から
処理を始める仕組みになっています。
そして、インジケーターが過去何本分のデータを参照するかは予約語の「Maxbarsback」の値を参照することで
確認ができます。

以下のようにコードを変更してMaxbarsbackの値を印刷ログに出力してみます。

<コード>

1
2
Plot1[0](Close[3], "終値");
Print(Maxbarsback);

 

<印刷ログの内容>

1
2
3
4
5
6
7
8
   1.00
   4.00
   4.00
   4.00
   4.00
   4.00
   4.00
   4.00

Maxbarsbackは4に設定され、Maxbarsbackの本数分経過した足から処理が
実行されていることがわかると思います。
最初に1が出力されていますが、Maxbarsbackを自動検出する設定になっている場合は
一度最小値の1で一度処理を実行した後、適切な値が設定されるようです。

ちなみにMaxbarsbackの値は、デフォルトでは自動検出になっていますが、
以下のインジケーターの設定から手動で設定することも出来ます。

 

まとめ

今回のポイントは以下の通りです。
EasyLanguageプログラムでは

  • チャートに読み込まれているローソク足の数だけインジケーターの処理が実行される
  • 全てのローソク足の処理が実行された後は、ティック(歩み値)が発生したり、
    新しいローソク足が作成されたりしたタイミングで都度処理が実行される
  • 過去のデータを参照する場合は、そのデータを参照可能な位置から処理が始まる

今回は以上です。

最後までお読みいただき、ありがとうございました。

このブログはFXのかなり深い内容をお伝えしていますので、一通り読んでいただければ、相当な力がつきます。

ただ記事数がとても多いので、全て読むのは大変かもしれません。

僕のFX無料メール講座では、僕のFX手法のエッセンスを分かりやすくかみ砕いて説明し、勝つために必要なことを厳選してお送りします。

サンチャゴのFX無料メール講座はこちらからどうぞ

Filed Under: Easylanguage Tagged With: Easylanguage, Print, 初心者

EURRUB

FXのアノマリーで狙いたい通貨ペア 6月27日~の週

6月27日からの週に、FXアノマリーの分析で狙いたい通貨ペアをまとめました。 今週からロシアルーブル(RUB)が弱くなるアノマリーがあります。 EURRUBが上がりやすいアノマリー EURRUB(ユーロルーブル)は6月2 […]

NZDCADのアノマリー

今週のFXのアノマリー 6月20日

今週、アノマリー的にねらい目のFX通貨ペアについて解説します。 過去15年の日足データを基に分析して見つけたアノマリーです。 NZDCADが上がりやすいアノマリー NZDCADは6月19日~6月24日頃まで上がりやすいア […]

ドル円USDJPYの季節性アノマリー

FXのアノマリー通貨ペア 6月6日からの週

FXの通貨ペアで、6月6日からの週に勝ちやすそうなアノマリーの存在する通貨ペアをピックアップしました。 デイトレやスイングトレードのトレードアイデアの立案に役立ててください。 USDCAD(米ドルカナダドル)が下がりやす […]

ポンドドルの季節性アノマリー(過去22年間の日足データで分析)

FXのアノマリー通貨ペア 5月30日からの週

FXで今週勝ちやすそうなアノマリーがある通貨ペアについて書いています。 今週はUSDが弱くなる、つまりドルストレートの通貨ペアが上がりやすいアノマリーがあります。 ユーロドル(EURUSD)が上がりやすいアノマリー ユー […]

キリンホールディングス株の5月のアノマリー

株のアノマリー銘柄 5月23日からの週

日本株のアノマリー銘柄です。今週買うとアノマリー的に有利そうな銘柄をピックアップしました。 対象は日経225に採用されている銘柄です。過去15年の日足を使ってアノマリーを分析しました。 キリンホールディングス(2503) […]

AUDNZDの5月のアノマリー

FXのアノマリー通貨ペア 5月23日~の週

今週勝ちやすそうなFXのアノマリー通貨ペアについて解説します。 過去15年の日足データを使ったアノマリーの分析を基にしています。今週のデイトレやスイングトレードに役立つ情報です。 AUDUSDのアノマリー AUDUSDは […]

About ロボ

株のシステムトレーダー。エクセルを使った株のサヤ取り自動売買システムが専門。

Copyright © 2019 戦略的な投資家 | 免責事項