いやー松山いいところですね。ごはんもおいしいし温泉が町中にあって楽しい場所でした。
ということでリフレッシュ?してブログ再開です。
本当に小ネタなのですが、MQLのコメント規約を読むまで気が付いていませんでした・・・。
いままで、自分流儀というか、C#のコーディング規約ベースでコメントを記入していました。
MQL4/5のコーディング規約は正直エレガントさに欠ける!と思っていました・・^^;;;; しかし、一部さすがにMQL4/5ベースに従うとよいことがあるようです。
で、それが、これ。パラメータのコメントです。 私のいままでコードですと、こんな感じで書いていました。
// 入力パラメータ 移動平均期間
input int MaPeriod = 10;
上記入力の場合のパラメータ設定画面はこんな感じになります。
これがMQL4/5規約ベースで書くと次ような形になります。
input int MaPeriod = 10; // 入力パラメータ 移動平均期間
このように記述すると、コメントが解析されて、パラメータ画面はこのようになります。
ブログランキングにご協力よろしくお願いいたしますm(_ _ )m
にほんブログ村
MQL5.comのページから、コードガイドラインを下記に抜粋します。
ちょっとたどりにくい箇所にあります。っていうかMQL5.comのコード登録時に出てくるガイドラインにしか見当たらないのですが、コード登録時に生成されるURLなのでリンクが作れない・・・・・。
にほんブログ村
MQL5.comのページから、コードガイドラインを下記に抜粋します。
ちょっとたどりにくい箇所にあります。っていうかMQL5.comのコード登録時に出てくるガイドラインにしか見当たらないのですが、コード登録時に生成されるURLなのでリンクが作れない・・・・・。
一般的な必須事項
-
クライアントターミナルに標準装備されている例を使ってください。ソースコードのフォーマッティングは参考として考えられます。
-
MetaEditor 5の中のスタイラーコマンドを使ってあなたのコードをプリフォーマットすることは必須です。
-
ファイル名はラテン文字のみ含まなくてはいけません。
-
ファイル名は意味のある英単語を表さなければいけません。例えば、issledovanie.mq5ではなく、research.mq5です。
-
クラス名は接頭にCで始めなくてはいけません。例えば、CSampleExpertです。
-
クラスメンバー名は接頭にm_で始めなくてはいけません。例えば、m_symbolです。
-
クラスメンバー名とメソッド名は意味のある英単語を表さなければいけません。例えば、schetではなく、m_accountです。
クライアントターミナルに標準装備されている例を使ってください。ソースコードのフォーマッティングは参考として考えられます。
MetaEditor 5の中のスタイラーコマンドを使ってあなたのコードをプリフォーマットすることは必須です。
ファイル名はラテン文字のみ含まなくてはいけません。
ファイル名は意味のある英単語を表さなければいけません。例えば、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がクライアントターミナルで起動された時に変数名ではなく、コメントの値を表示することができます。例:
すべてのあなたのコメントを英語で書くのが望ましいです。
クラス宣言やメソッド実装のコメントは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がクライアントターミナルで起動された時に変数名ではなく、コメントの値を表示することができます。例: