• 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初心者講座⑤ 条件分岐(If/Switch)について理解する

EasyLanguage初心者講座⑤ 条件分岐(If/Switch)について理解する

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

今回はEasyLanguageの2種類の条件分岐(If/Switch)について解説します。
条件分岐処理は最もよく使う処理の1つなので、ぜひマスターしてください。

もくじ

  • 今回作成するEasyLanguageプログラム
  • 今回学習する内容
  • 解説
    • インデント(字下げ)について
    • 条件分岐処理(If)について
    • 複数条件分岐処理(Switch)について
  • コードの説明
  • まとめ

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

<コード>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Input変数を宣言
Input:
kikan(25);
//Variable変数を宣言
Variable:
heikin(0);
 
//指定した期間の終値の移動平均を取得
heikin = Average(Close,kikan);
 
//平均線の傾きに応じてプロットの色を設定
If heikin > heikin[1] then begin
SetPlotColor(1, Red);
End;
If heikin < heikin[1] then begin
SetPlotColor(1, Cyan);
End;
 
//移動平均をプロット
Plot1(heikin,"移動平均");

今回作成するのは傾きによって色を変える移動平均線インジケーターです。
インジケーターを作成する際はスケール位置の変更を実施してください。

今回学習する内容

  • インデント(字下げ)について
  • 条件分岐処理(If)について
  • 複数条件分岐処理(Switch)について

解説

インデント(字下げ)について

インデントとはその名の通り字下げ機能のことです。
コード編集領域で「Tab」キーを押すことでインデントを行うことが出来ます。
後述のIfやSwitchの配下の処理をインデントするといった使い方とします。
インデントはコード見やすくするための機能で、必ずしなければいけないという訳ではありません。
「Tab」キーで何文字分インデントするかは、TradeStation開発環境の
「ツール」→「オプション」→「一般」の「タブストップ/インデントサイズ」
で設定することが出来ます。

条件分岐処理(If)について

条件分岐処理(If)とは、指定した条件によって、処理を分けることが出来る仕組みです。
使い方は以下のようになります。

If 条件① Then Begin
  条件①に合致した時に実行するコード
End
Else Begin

  条件①に合致しないときに実行するコード
End
;

条件分岐に使える関係演算子は以下のようになります。

  • 「>」     : より大きい
  • 「<」     : より小さい
  • 「=」     : 等しい
  • 「」    : 等しくない
  • 「>=」    : より大きいか等しい
  • 「」    : より小さいか等しい
  • 「Crosses over」    : 現在の足ではより大きいが、前の足ではより小さいか等しい
  • 「Crosses under」    : 現在の足ではより小さいが、前の足ではより大きいか等しい

また論理演算子は以下となります

  • 「And」    : 複数の条件をアンドで結合します
  • 「Or」    : 複数の条件をOr条件で結合します

 

<使用例1>

1
If Close > Open then Plot1(Close,"終値");  //陽線の時だけ終値をプロット

※上記のように1行で記載することが出来ます。その場合、beginとEndは不要になります。

<使用例2>

1
2
3
If Close > Open And Close = High then begin
Plot1(Close,"終値"); //陽線でかつ上髭がない時だけ終値をプロット
End;

※上記のように複数の条件を組み合わせて使用することが出来ます。

<使用例3>

1
2
3
4
5
6
7
8
9
If Close > Open then begin
Plot1(Close,"陽線"); //陽線の時はプロット1に終値をプロット
End
Else If Close < Open then begin
Plot2(Close,"陰線"); //陰線の時はプロット2に終値をプロット
End
Else If Close = Open then begin
Plot3(Close,"同時線");//同時線の時はプロット3に終値をプロット
End;

※上記のように複数パターンに条件分岐することが出来ます。

複数条件分岐処理(Switch)について

複数条件分岐処理(Switch)は複数の条件に処理を分けることが出来る仕組みです。
IFを組み合わせれば複数条件に分岐することが出来ますが、
条件が多い場合はSwitchを使った方がすっきりと記載することが出来ます。
使い方は以下のようになります。

Switch (①判定する値) Begin
Case ②条件:
②条件に合致した時に実行するコード

Default:

   ②条件に合致しないときに実行するコード
End
;

<使用例1>

1
2
3
4
5
6
7
8
9
10
11
12
13
Value1 = 5;
 
Switch(Value1) Begin
Case 1 to 3: //1-3のとき
Print("条件1");
 
Case 4, 7:  //4,7のとき
Print("条件2");
 
Default:    //上記以外のとき
Print("条件3");
End;

※上記のようにValue1の値によって複数条件に分岐することが出来ます。

コードの説明

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

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

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

5
6
7
//Variable変数を宣言
Variable:
heikin(0);

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

9
10
//指定した期間の終値の移動平均を取得
heikin = Average(Close,kikan);

パラメーターで指定された期間の終値の平均値を変数(heikin)に代入しています。

12
13
14
15
16
17
18
//平均線の傾きに応じてプロットの色を設定
If heikin > heikin[1] then begin
SetPlotColor(1, Red);
End;
If heikin < heikin[1] then begin
SetPlotColor(1, Cyan);
End;

平均線の傾きに応じてプロットの色を設定しています。
予約語SetPlotColorは以下のように使います。

SetPlotColor(プロットの番号,  色);

今回は「Plot1」の色を変更するので、プロットの番号には「1」を指定します。

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

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

まとめ

今回はEasyLanguageの2つの条件分岐処理について解説しました。
If文を組み合わせて使えば、Switch文と同じことが実現できるので
まずはIf文を使いこなせるようになるのが良いと思います。

条件分岐処理が使いこなせるようになれば、「インジケーターを使って
特定の条件に合致する銘柄を探す」といったことが簡単に出来るようになるので
ぜひマスターしてください。
今回の内容は以上となります。

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

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

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

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

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

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

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

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

Filed Under: Easylanguage Tagged With: Easylanguage, IF, Switch, 条件分岐

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 戦略的な投資家 | 免責事項