English
中文
日本語
ID
Vietnam
한국어
Filipino
 
   カレッジ・ナビゲーション

MQL4で取引時間を1分取引または1時間取引チャートに制限する方法

MQL4 Limit Trading Time to Days

これは、ユーザーが特定の曜日をオンまたはオフにできる取引日フィルターです。 さらに、この不安定な日に取引したくない場合に備えて、ユーザーは当日と前日の NFP データをオンまたはオフにすることができます。


さらに、ユーザーはクリスマス休暇や新年休暇のために休業することがあります。 取引時間を日数に制限する方法については、MQL4 の記事をご覧ください。アドバイザーは取引のみを行うようにプログラムされています特定の時間帯での変動を避ける。

MQL4 取引時間を日数パラメータに制限する


日曜日から金曜日まで

ブール値: 取引時間を指定するかどうかを示します。特定の日付。 デフォルトは true で、毎日取引されます。


NFP_Friday

Bool: 非農業部門の雇用データである月の第 1 金曜日の金曜日に実行するかどうかトレード。 デフォルトはその日の取引です。


NFP_MondayBefore

Bool: 非農業部門の給与が変動する金曜日の前の木曜日に取引するかどうか。 デフォルトはその日の取引です。


クリスマス休暇

ブール: クリスマス休暇中の 12 月のカスタム定義期間トランザクションで流動性を低くしたいかどうか。


Christmas_DayBeginBreak

Double: これは、クリスマス休暇の開始日としてフィルタリングを開始する 12 月の日です。 デフォルトは 15 ですが、いつでも指定できます。


年末年始

ブール: 取引、年末年始休暇中は流動性が低い。


Newyears_DayEndBreak

Double: これは、年末年始の終わりである 1 月にフィルタリングを停止する日です。 デフォルトは 3 ですが、いつでも指定できます。


MT4 コード スニペット

extern string _7 = "—取引日—";

外部ブール日曜日= TRUE;

OUTER BOOL MONDAY = TRUE;

OUTER BOOL TUESDAY = TRUE;

OUTER BOOL WEDNESDAY = TRUE;

OUTER Boolean木曜日 = true;

外側のブール値 Friday = True;

外側のブール値 NFP_Friday = true;

外側のブール値 NFP_MondayBefore = true;

external bool ChristmasHolidays = true;

external double XMAS_DayBeginBreak = 15;

external bool NewyearsHolidays = true;

extern double Newyears_DayEndBreak = 3;

< p>

bool DaytoTrade(){

bool daytotrade = false;


if ( DayOfWeek() == 0 && Sunday) daytotrade = true;

if(DayOfWeek() == 1 && Monday) daytotrade = true;

if ( DayOfWeek() == 2 && Tuesday) daytotrade = true;

if(DayOfWeek() == 3 && Wednesday) daytotrade = true;

if ( DayOfWeek() == 4 && 木曜日) daytotrade = true;

if(DayOfWeek() == 5 && Friday) daytotrade = true;

if ( DayOfWeek() == 5 && Day() < 8 && !NFP_Friday ) daytotrade = false;

If (DayOfWeek() == 4 && Day() < ; 8 && !NFP_MondayBefore) daytotrade = false;

if(Month() == 12 && Day() > XMAS_DayBeginBreak && !ChristmasHolidays ) daytotrade = false; < /p>

if(Month() == 1 && Day() < Newyears_DayEndBreak && !NewyearsHolidays) daytotrade = false;


return(daytotrade);}


説明

日付フィルター関数を DaytoTrade() と名付けました。


daytotrade (小文字) bool 変数を宣言し、false に初期化します。


次に、曜日ごとに取引すべき曜日と取引すべきでない曜日を示す線があります。 DayofWeek() 関数は、最後に確認されたサーバー時間の曜日を返します:


0 = 日曜日

1 = 月曜日< /p>

2 = 火曜日

3 = 水曜日

4 = 木曜日

5 = 金曜日

6 = 土曜日< /p>


各行のロジックは以下の通りです。 DayofWeek() が (==) Sunday (0) で、Sunday のアウター ブールが true (&& Sunday) の場合、daytotrade bool は true になります。 Sunday の外部ブール値が手動で false に設定されている場合、daytotrade は false に戻ります。 どの日も同じです。


次に、非農業部門の給与計算日、つまり毎月の最初の金曜日をフィルタリングします。


最後に、クリスマスと年末年始の休暇をフィルタリングします。


MT4 コードの使用

If (OrdersTotalMagicOpen()==0 && OpenBuy==true

&& DaytoTrade() ) {

// 注文

}


必要なものやるべきことは、注文の条件として DaytoTrade() 関数を使用することだけです。 次に、注文を出す前に、取引禁止日 (この日は false として表示されます) と休日の取引禁止日 (休日期間は false として表示されます) を宣言しているかどうかがチェックされます。


通常、ここで説明する TradeTime() と組み合わせて DaytoTrade() 関数を使用します。