ChartApplyTemplate

指定されたファイルから特定のテンプレートをチャートに適用します。このコマンドはチャートメッセージキューに追加され、以前のすべてのコマンドが処理された後にのみ実行されます。

bool  ChartApplyTemplate(
   long          chart_id,     // Chart ID
   const string  filename      // Template file name
   );

パラメーター

chart_id

[in]チャートID。0は現在のチャートを意味します。

ファイル名

[入力]テンプレートを含むファイルの名前。

戻り値

コマンドがチャートキューに追加された場合はtrueを、それ以外の場合はfalseを返します。エラーの詳細を取得するには、GetLastError()関数を使用します。

注意

Expert Advisorはアンロードされ、新しいテンプレートが添付されているチャートに正常にロードされた場合、動作を継続できなくなります。

ライブトレーディングとDLLインポート

ユーザーは、チャートで起動されたmql4プログラムに対して次のアクションを許可または禁止できます。

  1. 取引操作(ライブ取引)の実行、
  2. DLLのインポート。

エキスパートアドバイザーの共通設定

ターミナルでは、構成されたチャートをテンプレートとして保存し、すべてのインジケーターとExpert Advisorを起動できます。したがって、テンプレート設定を他のすべてのチャートにすばやく適用できます。テンプレートを保存すると、起動されたプログラムの許可(ライブトレーディングとDLLインポート)も保存されます。テンプレートをチャートに適用するとき、これらの権限はセキュリティ上の理由により制限される場合があります。

ChartApplyTemplate()関数を使用してテンプレートを適用することにより起動されたExpert Advisorsに対して、ライブトレーディングおよびDLLインポート許可を拡張することはできません。

ChartApplyTemplate()関数を呼び出すmql4プログラムにトレードの許可がない場合、テンプレートを介して起動されたExpert Advisorも、テンプレートの設定に関係なくトレードできません。

ChartApplyTemplate()関数を呼び出すmql4プログラムに取引許可があり、テンプレート設定にそのような許可がない場合、テンプレートを介して起動されたExpert Advisorは取引できません。

テンプレートを使用する

MQL4言語のリソースでは、ChartSetInteger()関数を使用した色を含む複数のチャートプロパティを設定できます。

  • チャートの背景色。
  • 軸、スケール、OHLCラインの色。
  • グリッドの色。
  • ボリュームの色とオープンレベルの位置。
  • 強気ローソク足のアップバー、シャドウ、およびエッジの色。
  • 下降バーの色、影、および弱気のローソク足の端。
  • チャートラインと童子燭台の色。
  • 強気のローソク足本体の色。
  • 弱気のローソク足本体の色。
  • 入札価格ラインの色。
  • 売値ラインの色。
  • 最終取引価格のラインの色(Last);
  • ストップオーダーレベルの色(ストップロスとテイクプロフィット)。

また、チャート上に複数のグラフィカルオブジェクトインジケーターが存在する場合があります。必要なすべてのインジケータを含むチャートを一度セットアップしてから、テンプレートとして保存できます。このようなテンプレートは、どのチャートにも適用できます。

ChartApplyTemplate()関数は、以前に保存したテンプレートを使用するために意図され、そしてそれは任意MQL4プログラムで使用することができます。テンプレートを保存するファイルへのパスは、2番目のパラメーターとしてChartApplyTemplate()に渡されます。テンプレートファイルは、次のルールに従って検索されます。

  • バックスラッシュ「」セパレータ(「\」と表記)がパスの先頭に配置されている場合、テンプレートはパス_terminal_data_directory MQL4に関連して検索されます。
  • バックスラッシュがない場合は、ChartApplyTemplate()が呼び出される実行可能EX4ファイルに関連してテンプレートが検索されます。
  • 最初の2つのバリアントでテンプレートが見つからない場合、検索はterminal_directory Profiles Templates フォルダーで実行されます。

ここで、terminal_directoryはMetaTrader 4クライアントターミナルが実行されているフォルダーで、terminal_data_directoryは編集可能なファイルが保存されているフォルダーです。その場所はオペレーティングシステム、ユーザー名、コンピューターのセキュリティ設定によって異なります。通常、これらは異なるフォルダですが、場合によっては一致する場合があります。

terminal_data_directoryフォルダーとterminal_directoryフォルダーの場所は、TerminalInfoString()関数を使用して取得できます。

//— directory from which the terminal is started
   string terminal_path=TerminalInfoString(TERMINAL_PATH);
   Print(“Terminal directory:”,terminal_path);
//— terminal data directory, in which the MQL4 folder with EAs and indicators is located
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   Print(“Terminal data directory:”,terminal_data_path);

例えば:

//— search for a template in terminal_data_directoryMQL4
ChartApplyTemplate(0,“\first_template.tpl”))
 
//— search for a template in directory_of_EX4_file, then in folder terminal_data_directoryProfilesTemplates
ChartApplyTemplate(0,“second_template.tpl”))
 
//— search for a template in directory_of_EX4_fileMy_templates, then in folder terminal_directoryProfilesTemplatesMy_templates
ChartApplyTemplate(0,“My_templates\third_template.tpl”))

テンプレートはリソースではなく、実行可能なEX4ファイルに含めることはできません。

例:

//+——————————————————————+
//| Script program start function                                    |
//+——————————————————————+
void OnStart()
  {
//— example of applying template, located in MQL4Files
   if(FileIsExist(“my_template.tpl”))
     {
      Print(“The file my_template.tpl found in Files'”);
      //— apply template
      if(ChartApplyTemplate(0,“\Files\my_template.tpl”))
        {
         Print(“The template ‘my_template.tpl’ applied successfully”);
        }
      else
         Print(“Failed to apply ‘my_template.tpl’, error code “,GetLastError());
     }
   else
     {
      Print(“File ‘my_template.tpl’ not found in “
            +TerminalInfoString(TERMINAL_PATH)+“\MQL4\Files”);
     }
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">