• 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初心者講座⑥ ループ処理(For/While)ついて理解する

EasyLanguage初心者講座⑥ ループ処理(For/While)ついて理解する

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

今回はEasylanguageのループ処理(For/While)について解説します。
ループ処理は前回の条件分岐処理と並んでよく使う処理なので、ぜひマスターしてください。

もくじ

  • 今回作成するEasylanguageプログラム
  • 今回学習する内容
  • 解説
    • ループ処理とは
    • ループ処理(For)について
    • ループ処理(While)について
  • コードの説明
  • まとめ

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

<コード>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//Input変数を宣言
Input:
kikan(25);
//Variable変数を宣言
Variable:
heikin(0),
goukei(0),
count(0);
 
//指定した期間の終値の合計値を計算
goukei = 0;
For count = 0 to kikan - 1 begin
goukei = goukei + Close[count];
end;
 
//平均値を計算
heikin = goukei/kikan;
 
//平均線の傾きに応じてプロットの色を設定
If heikin > heikin[1] then begin
SetPlotColor(1, Red);
End;
If heikin < heikin[1] then begin
SetPlotColor(1, Cyan);
End;
 
//移動平均をプロット
Plot1(heikin,"移動平均");

インジケーターを作成する際はスケール位置の変更を実施してください。
前回と同じ傾きによって色を変える移動平均線インジケーターですが
今回は組み込み関数を使わず、ループ処理を使って平均線の値を計算しています。

今回学習する内容

  • ループ処理とは
  • ループ処理(For)について
  • ループ処理(While)について

解説

ループ処理とは

ループ処理とは特定の条件の間、特定の処理を繰り返すための仕組みです。
ここではEasyLanguagの2つのループ処理(For/While)について解説します。

ループ処理(For)について

ループ処理(For)とは特定の処理を特定の回数繰り返すための仕組みです。
決まった回数だけ処理を実行する場合はForを使のが便利です。

For  変数(カウント用)  = 開始値  To  終了値  Begin
実行する処理
End;

変数の開始値を「1」、終了値を「5」に設定した場合、ループするたびに
変数の値が1、2、3・・・と1ずつ加算されながら処理が繰り返され、変数の値が
5になるとループが終了します。(処理は計5回実行されます)
Toの部分をDownToにすることで、変数を1ずつ減算することが出来ます。
また、Breakを使うことでループをカウントの途中でループを終了することが出来ます。

<使用例1>

1
2
3
4
5
6
7
8
9
Variable:
count(0),
goukei(0);
 
goukei = 0;
//現在値(Close[0])から順に9本前の終値(Close[9])まで計10本分の終値合計を計算
For count = 0 to 9 begin
goukei = goukei + Close[count];
End;

※変数(count)を加算しながらループします

<使用例2>

1
2
3
4
5
6
7
8
9
Variable:
count(0),
goukei(0);
 
goukei = 0;
//9本前の終値(Close[9])から順に現在値(Close[0])まで計10本分の終値合計を計算
For count = 9 Downto 9 begin
goukei = goukei + Close[count];
End;

※変数(count)を減算しながらループします

<使用例3>

1
2
3
4
5
6
7
8
9
10
11
Variable:
count(0),
goukei(0);
 
goukei = 0;
For count = 0 to 9 begin
goukei = goukei + Close[count];
If count = 4 then begin
Break; //count=4になった時点でループを終了
End;
End;

※カウントが4になった時点でループを終了します

ループ処理(While)について

ループ処理(While)とは特定の条件の間、特定の処理を繰り返すための仕組みです。
条件を指定する場合、必ず終了するような条件を指定しないとプログラムが無限ループしてしまいます。
カウント用の変数を用いて条件を指定する場合、変数の加算・減算処理はWhileの中に記載する必要があります。
Forと同様で、Breakを使うことでループを終了することが出来ます。

while  条件  Begin
実行する処理
End;

<使用例1>

1
2
3
4
5
Value1 = 5;  //カウント用の変数
While  Value1 > 0 Begin
Print(Value1);
Value1 = Value1 - 1;   //カウント用の変数を減算
End;

※Value1の値が0より大きい間だけ処理を続けます。
上記のコードでは5回の処理が実行されます。

 

コードの説明

今回作成したインジケーターのコードの解説です。

1
2
3
//Input変数を宣言
Input:
kikan(25);

期間をパラメーターとして入力できるようにInput変数を宣言しています。
カッコ内で指定した値(25)が初期値(デフォルト値)となります。

5
6
7
8
9
//Variable変数を宣言
Variable:
heikin(0),
goukei(0),
count(0);

プログラム中の計算結果を保存するための変数を宣言しています。

11
12
13
14
15
//指定した期間の終値の合計値を計算
goukei = 0;
For count = 0 to kikan - 1 begin
goukei = goukei + Close[count];
end;

パラメーターで指定された期間の終値の合計値を計算しています。
ループ処理の中でローソク足を指定期間分遡って終値を足し合わせています。
12行目ですが、変数には前回の実行結果が残っているので必ず「0」を代入しなおす必要があります。
このあたりの動きがわかりづらい人は、初心者講座②と初心者講座③を読んでみてください。

17
18
//平均値を計算
heikin = goukei/kikan;

合計値を期間で割って平均値を計算し、結果を変数(heikin)に代入しています。

20
21
22
23
24
25
26
//平均線の傾きに応じてプロットの色を設定
If heikin > heikin[1] then begin
SetPlotColor(1, Red);
End;
If heikin < heikin[1] then begin
SetPlotColor(1, Cyan);
End;

平均線の傾きに応じてプロットの色を設定しています。

28
29
//移動平均をプロット
Plot1(heikin,"移動平均");

移動平均をプロットしています。

まとめ

今回はEasyLanguageのループ処理について解説しました。
ループ処理自体はそれほど難しくはないと思いますが、コード中でループ処理を使うと
インジケーター動きと合わさって2重ループのような状態になるので
インジケーターの動きをしっかり理解していないと混乱してしまいます。

インジケーターの動きは初心者講座②で詳しく解説していますので、
まだ読まれてない方は、ぜひ一度目を通してみてください。

今回の内容は以上となります。

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

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

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

僕の無料FX研修ウェビナーでは、次世代の勝てるFXトレーダーになるためのノウハウやツールだけを厳選し、まとめて解説しています。

  • リスク金額の入力とチャー上のドラッグ操作だけで完璧な分割発注ができる最強の発注EA
  • 季節性アノマリーチャート(全通貨ペア/全先物/全仮想通貨/株銘柄)
  • 高機能なプライスアクションインジケーター

など他では決して手に入らないすごいツールを無料で入手できます。

無料FX研修ウェビナーへのご参加はこちらからどうぞ。

無料FX研修ウェビナーであなたが入手する最強の発注EA↓

Filed Under: Easylanguage Tagged With: Easylanguage, For, While, ループ

EURNZDの季節性アノマリー

FXのアノマリー 7月25日からの週に注目すべき通貨ペア

今週のFXアノマリーをまとめました。 過去15年間の日足を分析し、今週上がりやすい/下がりやすいという明確なアノマリーのある通貨ペアをまとめています。今週のデイトレードやスイングトレードの通貨ペア選びに役立ててください。 […]

EURNZDの季節性アノマリー

FXのアノマリーのポイント 7月17日からの週

過去15年のFXアノマリーで今週のねらい目ポイントを解説します。 AUDCHFが下がりやすいアノマリー AUDCHFは7月23日から8月23日まで下がりやすいアノマリーがあります。 7月から8月は下落する傾向があるのが分 […]

AUDUSDのアノマリーチャート

FXのアノマリー 今週の注目 7月11日~の週

今週のFXのアノマリーで注目すべきポイントをまとめました。過去15年間のアノマリーを調べて見つかった高確率のFXアノマリーです。 AUDUSDが上がりやすいアノマリー AUDUSDには7月11日~7月21日ごろまで上がり […]

DXY米ドルインデックスのアノマリー

FXのアノマリーで狙いたい通貨ペア 7月4日からの週

過去15年のFXアノマリーを分析し、今週狙いたい通貨ペアを探しました。 今週は第三四半期の始まり、新しい月の始まりなので、大きく流れが変わるかもしれません。 なぜなら、ここまで強かった米ドルと、ここまで弱かった日本円に興 […]

EURRUB

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

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

NZDCADのアノマリー

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

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

About ロボ

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

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