コロナで入場規制しているのに、選手団にコン〇ームを無料配布と聞いて、テレビを2度見してしまったセレブパンダだお。
よく使う関数はライブラリにすると便利だよっていうお話です。
こんな人が対象です。
- 毎回同じロジックをコピペで使っている。
- 複数人で開発をする。
ライブラリのサンプル
変数が重複して、コンパイルでは警告が発生する例を書きますね。
#ifndef PANDALIB_COMMON
#define PANDALIB_COMMON
// M1が切り替わったかどうか判定する。
bool isNewBar()
{
static datetime s_dt = 0;
datetime s_curdt = iTime(NULL, PERIOD_M1, 0);
if (s_dt != s_curdt)
{
s_dt = s_curdt;
return(true);
}
return false;
}
#endif /* PANDALIB_COMMON*/
これは、1分足が切り替わった際に一度だけ処理をしたい場合に使う判定関数です。
頻繁につかうため、関数にします。ただ、関数だと毎回コピペしないといけません。
そんな時、ライブラリ関数にすると、再利用が簡単です。
上記のコードをcommon.mqhというファイル名で保存し、MT4がインストールされているMQL4\Include\pandalibフォルダに保存します。
Includeフォルダの直下に保存してもよいですが、他のライブラリと名前が重複することを避けてpandalibフォルダを作成し、そこに保存します。
ライブラリの利用方法
ソースファイルの先頭部にIncludeでライブラリを指定してください。
拡張子はmq4ではなくmqhです。注意してください。
#include <pandalib\Common.mqh>
//+------------------------------------------------------------------+
//| サンプル.mq4 |
//| Copyright 2020, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#include <pandalib\Common.mqh>
#property copyright "Copyright CelebPanda"
#property version "1.00"
#property strict
#property indicator_chart_window
int start(){
if (isNewBar()){
Print("ライブラリのテスト");
}
}
では、まただお。