【MQL5】5分で書ける通貨ペア情報のチャート表示

EA制作お役立ち記事

スポンサーリンク
スポンサーリンク

通貨ペア情報について。

EA(自動売買プログラム)を作成するにあたり、取引対象となる通貨ペアを把握することは重要になってきます。

スプレッドや、AskやBidの、スワップ値・・・等、自明なものから、「そんな情報があったんだ!」というものまでたくさんあります。

自明なものだろうが、マニアックなものであろうが、それは人間が認識する時の経験則に基づいた切り分けであって、コンピュータにはそのような区別はできませんから、適切なコーディングを行って、それらを伝える必要があります。

通貨ペア情報をPCに正確に伝達することは、自分のEAを思惑通りに動作させる肝となります。

取得した通貨ペア情報を各種変数に格納し、それをコメント出力して可視化する事によって、プログラムに不備がないかどうかを突合することが容易になります。

通貨ペア情報を取得するには、SymbolInfoInteger(),SymbolInfoDouble(),SymbolInfoString()などの、SymbolInfo…関数を使います。

通貨ペア情報のチャート表示のロードマップ

以下の手順でコードを記述していきます

  • OnTick()内に必要な通貨ペア情報を取得する記述を行う。
  • コメント関数を使って、取得した通貨ペア情報をチャート上に表示する記述を行う

OnTick()内に必要な通貨ペア情報を取得する記述を行う

今回はSymbolInfoIntegerとSymbolInfoDouble関数を使っていきます。

第1引数に、チャートにセットする通貨ペア、

第2引数に、取得したい通貨ペアプロパティを指定します。

下記サンプルコード以外にもたくさんあるので、

お暇なときに、MQL5リファレンスシンボルプロパティを参照頂ければと思います。

void OnTick()
   {
      //スプレッド情報を取得
      long spreadInfo=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
      
      //現在値(買い)を取得
      double askInfo=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
      
      //スワップ情報(買い)を取得
      double swapLongInfo=SymbolInfoDouble(_Symbol,SYMBOL_SWAP_LONG);
      
      //スワップ情報(売り)を取得
      double swapShortInfo=SymbolInfoDouble(_Symbol,SYMBOL_SWAP_SHORT);
      
      
      //1日の最高直近価格を取得
      double lastHighInfo=SymbolInfoDouble(_Symbol,SYMBOL_LASTHIGH);
      
      //1日の最低直近価格を取得
      double lastLowInfo=SymbolInfoDouble(_Symbol,SYMBOL_LASTLOW);
      
      //約定に必要な最小ボリューム情報を取得
      double minVolumeInfo=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
      
      //約定可能な最大ボリューム情報を取得
      double maxVolumeInfo=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
      
      //ボリュームのステップ幅(=約定エラーにならない最小限の変化幅)情報を取得
      double volumeStepInfo=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
      

コメント関数を使って、取得した通貨ペア情報をチャート上に表示する記述を行う

Comment関数を使ってチャート上に表示が必要なデータを記述していきます。

★”\n”というのは「改行」を実現させる為の記述です。

この記述を入れると該当箇所の部分で改行がなされます。

 Comment(
      "スプレッド: ",spreadInfo,"\n",
      "現在値(買い): ",askInfo,"\n",
      "スワップ情報(買い): ",swapLongInfo,"\n",
      "スワップ情報(売り): ",swapShortInfo,"\n",
      "1日の最高直近価格: ",lastHighInfo,"\n",
      "1日の最低直近価格: ",lastLowInfo,"\n",
      "約定に必要な最小ボリューム: ",minVolumeInfo,"\n",
      "約定可能な最大ボリューム: ",maxVolumeInfo,"\n",
      "ボリュームのステップ幅: ",volumeStepInfo,"\n"
      
      
      );//Comment
      
      
      
      
      
   }//void OnTick()

全体のプログラムコード

#property copyright "MQL5ssei"
#property link      "https://mqlinvestmentlab.com/"
#property strict  
//+-----------------------------


void OnTick()
   {
      //スプレッド情報を取得
      long spreadInfo=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD);
      
      //現在値(買い)を取得
      double askInfo=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
      
      //スワップ情報(買い)を取得
      double swapLongInfo=SymbolInfoDouble(_Symbol,SYMBOL_SWAP_LONG);
      
      //スワップ情報(売り)を取得
      double swapShortInfo=SymbolInfoDouble(_Symbol,SYMBOL_SWAP_SHORT);
      
      
      //1日の最高直近価格を取得
      double lastHighInfo=SymbolInfoDouble(_Symbol,SYMBOL_LASTHIGH);
      
      //1日の最低直近価格を取得
      double lastLowInfo=SymbolInfoDouble(_Symbol,SYMBOL_LASTLOW);
      
      //約定に必要な最小ボリューム情報を取得
      double minVolumeInfo=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
      
      //約定可能な最大ボリューム情報を取得
      double maxVolumeInfo=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
      
      //ボリュームのステップ幅(=約定エラーにならない最小限の変化幅)情報を取得
      double volumeStepInfo=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
      
      Comment(
      "スプレッド: ",spreadInfo,"\n",
      "現在値(買い): ",askInfo,"\n",
      "スワップ情報(買い): ",swapLongInfo,"\n",
      "スワップ情報(売り): ",swapShortInfo,"\n",
      "1日の最高直近価格: ",lastHighInfo,"\n",
      "1日の最低直近価格: ",lastLowInfo,"\n",
      "約定に必要な最小ボリューム: ",minVolumeInfo,"\n",
      "約定可能な最大ボリューム: ",maxVolumeInfo,"\n",
      "ボリュームのステップ幅: ",volumeStepInfo,"\n"
      
      
      );//Comment
      
      
      
      
      
   }//void OnTick()

サンプルコードの挙動は以下のようになります。

最後までお読みいただきありがとうございました<(_ _)>

※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる

<MQL5でEAを作ろう講座>

をメインコンテンツとして展開しています。

【言語基礎編】

【中級実際にEAを作ろう編】

【発展編・MT5用EAを作る工程をカスタマイズしていく】

第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。

コメント

タイトルとURLをコピーしました