2015年11月10日火曜日

[MT4プログラミング]小ネタ 入力パラメータの説明を置き換える。

金曜日と月曜日はブログもお休みいただいて、ちょっと松山まで行ってきました。無事帰ってきました^^
いやー松山いいところですね。ごはんもおいしいし温泉が町中にあって楽しい場所でした。

ということでリフレッシュ?してブログ再開です。

本当に小ネタなのですが、MQLのコメント規約を読むまで気が付いていませんでした・・・。
いままで、自分流儀というか、C#のコーディング規約ベースでコメントを記入していました。


MQL4/5のコーディング規約は正直エレガントさに欠ける!と思っていました・・^^;;;;  しかし、一部さすがにMQL4/5ベースに従うとよいことがあるようです。


で、それが、これ。パラメータのコメントです。 私のいままでコードですと、こんな感じで書いていました。

// 入力パラメータ 移動平均期間
input int MaPeriod = 10;

上記入力の場合のパラメータ設定画面はこんな感じになります。


これがMQL4/5規約ベースで書くと次ような形になります。

規約ではinputパラメータのコメントは行末に記載すると指定されています。 こんな感じです。

input int MaPeriod = 10; // 入力パラメータ 移動平均期間

このように記述すると、コメントが解析されて、パラメータ画面はこのようになります。

ブログランキングにご協力よろしくお願いいたしますm(_ _ )m
にほんブログ村 為替ブログへ
にほんブログ村

MQL5.comのページから、コードガイドラインを下記に抜粋します。
ちょっとたどりにくい箇所にあります。っていうかMQL5.comのコード登録時に出てくるガイドラインにしか見当たらないのですが、コード登録時に生成されるURLなのでリンクが作れない・・・・・。

一般的な必須事項

  • クライアントターミナルに標準装備されている例を使ってください。ソースコードのフォーマッティングは参考として考えられます。
  • MetaEditor 5の中のスタイラーコマンドを使ってあなたのコードをプリフォーマットすることは必須です。
    Preformatting source code using the 'Styler' command.
  • ファイル名はラテン文字のみ含まなくてはいけません。
  • ファイル名は意味のある英単語を表さなければいけません。例えば、issledovanie.mq5ではなく、research.mq5です。
  • クラス名は接頭にCで始めなくてはいけません。例えば、CSampleExpertです。
  • クラスメンバー名は接頭にm_で始めなくてはいけません。例えば、m_symbolです。
  • クラスメンバー名とメソッド名は意味のある英単語を表さなければいけません。例えば、schetではなく、m_accountです。

コメント

  • すべてのあなたのコメントを英語で書くのが望ましいです。
  • クラス宣言やメソッド実装のコメントは3行のブロックの形でなければいけません。例:
    //+------------------------------------------------------------------+
    //| MACD Sample expert class                                         |
    //+------------------------------------------------------------------+
    class CSampleExpert
      {
    ..........
    //+------------------------------------------------------------------+
    //| Initialization and checking for input parameters                 |
    //+------------------------------------------------------------------+
    bool CSampleExpert::Init()
      {
    ..................
  • ブロックコメントを使ってメソッド実装のキー段階を記述してください。例:
    .................
    //--- create MACD indicator
       if(m_handle_macd==INVALID_HANDLE)
          if((m_handle_macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE))==INVALID_HANDLE)
            {
             printf("Error creating MACD indicator");
             return(false);
            }
    .................
  • 変数の初期化のすぐ後に入力パラメーターのコメントを付けてください。この方法を使えばEAがクライアントターミナルで起動された時に変数名ではなく、コメントの値を表示することができます。例:
    Comments for the input parameters in source code
    Comments for the input parameters when adding Expert Advisor on chart