이는 사용자가 특정 요일을 켜거나 끌 수 있는 거래일 필터입니다. 또한, 변동성이 심한 날에 거래를 원하지 않는 경우를 대비하여 사용자는 현재 및 전날의 비농업 급여 데이터를 켜거나 끌 수 있습니다.
또한 사용자는 크리스마스 휴일 및/또는 새해 휴일을 끌 수 있습니다. MQL4 기사에서 거래 시간을 일수로 제한하는 방법을 알아보세요. 어드바이저는 기간 동안에만 거래하도록 프로그래밍되어 있습니다. 특정 기간을 선택하고 변동성을 피하세요.
일요일부터 금요일까지
Bool: 각 특정 날짜에 거래할지 여부를 나타냅니다. 기본값은 true이며 매일 거래됩니다.
NFP_Friday
Bool: 비농업 급여 데이터인 매월 첫 번째 금요일인 금요일에 할지 여부 거래. 기본값은 일중 거래입니다.
NFP_ThursdayBefore
Bool: 금요일에 변동성이 큰 비농업 급여 데이터가 나오기 전 목요일에 거래하려고 하시나요? 기본값은 일중 거래입니다.
크리스마스 휴일
Bool: 해당 기간 동안 크리스마스 휴일 거래의 유동성이 낮은 12월에 사용자 정의 기간을 원하십니까? .
Christmas_DayBeginBreak
Double: 12월에 크리스마스 연휴가 시작되는 날로 필터링을 시작하는 날입니다. 기본값은 15이지만 원하는 날짜가 될 수 있습니다.
설날 연휴
Bool: 1월 초 맞춤 기간에 하시겠습니까? Trading, 설날 연휴 동안 유동성이 낮아짐.
NewYears_DayEndBreak
Double: 설 연휴가 끝나는 1월에 필터링을 중지하는 날입니다. 기본값은 3이지만 원하는 날짜가 될 수 있습니다.
MT4 코드 조각
extern string _7 = "—거래일—";
외부 부울 일요일= 참;
외부 부울 월요일 = 참;
외부 부울 화요일 = 참;
외부 부울 수요일 = 참;
외부 부울 목요일 = true;
외부 부울 금요일 = true;
외부 부울 NFP_Friday = true;
외부 부울 NFP_ThursdayBefore = true;
extern boolean ChristmasHolidays = true;
extern double XMAS_DayBeginBreak = 15;
extern boolean NewYearsHolidays = true;
extern double NewYears_DayEndBreak = 3;
< p>bool DaytoTrade(){
bool daytotrade = false;
if ( DayOfWeek() == 0 && 일요일) daytotrade = true;
if(DayOfWeek() == 1 && 월요일) daytotrade = true;
if ( DayOfWeek() == 2 && 화요일) daytotrade = true;
if (DayOfWeek() == 3 && 수요일) daytotrade = true;
if ( DayOfWeek() == 4 && 목요일) daytotrade = true;
if (DayOfWeek() == 5 && 금요일) daytotrade = true;
if ( DayOfWeek() == 5 && Day() < 8 && !NFP_Friday ) daytotrade = false;
if (DayOfWeek() == 4 && Day() < ; 8 && !NFP_ThursdayBefore) daytotrade = false;
if(Month() == 12 && Day() > XMAS_DayBeginBreak && !ChristmasHolidays ) daytotrade = false; < /p>
if(Month() == 1 && Day() < NewYears_DayEndBreak && !NewYearsHolidays) daytotrade = false;
반품(daytotrade);}
설명
날짜 필터 함수의 이름을 DaytoTrade()로 지정했습니다.
daytotrade(소문자) 부울 변수를 선언하고 false로 초기화합니다.
다음으로, 해당 요일에 거래해야 하는지 여부를 나타내는 각 요일에 대한 선이 있습니다. DayofWeek() 함수는 마지막으로 알려진 서버 시간을 기준으로 요일을 반환합니다.
0 = 일요일
1 = 월요일
2 = 화요일
3 = 수요일
4 = 목요일
5 = 금요일
6 = 토요일
각 줄의 논리는 다음과 같습니다. DayofWeek()가 (==) 일요일(0)이고 Sunday 외부 bool이 true(&& Sunday)인 경우 daytotrade bool은 true입니다. Sunday external bool이 수동으로 false로 설정된 경우 daytotrade는 false로 되돌아갑니다. 모든 날은 동일합니다.
다음으로 매월 첫 번째 금요일인 비농업 급여일을 필터링합니다.
마지막으로 크리스마스와 새해 연휴를 필터링합니다.
MT4 코드 사용
If (OrdersTotalMagicOpen()==0 && OpenBuy==true
&& DaytoTrade() ) {
//주문하기
}
필요한 사항 유일한 방법은 주문을 하기 위한 조건으로 DaytoTrade() 함수를 사용하는 것입니다. 그런 다음 주문을 하기 전에 거래 금지일(거짓으로 표시됨)과 휴일 거래 금지일(휴일 기간은 거짓으로 표시됨)을 선언했는지 확인합니다.
여기에서 설명한 대로 일반적으로 DaytoTrade() 함수를 TradeTime()과 함께 사용합니다.