포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 1120

 

어드바이저가 있는데 거래할 요일과 하지 않을 요일을 선택할 수 있는 기능이 있었으면 합니다.

월 - 거짓

여 - 사실

CP-...

이것을 구현하는 방법을 알려주십시오.

 
RichLux :

어드바이저가 있는데 거래할 요일과 하지 않을 요일을 선택할 수 있는 기능이 있었으면 합니다.

월 - 거짓

여 - 사실

CP-...

이것을 구현하는 방법을 알려주십시오.

요일

마지막으로 알려진 서버 시간 의 요일 일련 번호를 반환합니다.

int DayOfWeek ();

반환 값

요일의 서수(Sunday-0,1,2,3,4,5,6) .

메모

테스트할 때 마지막으로 알려진 서버 시간이 시뮬레이션됩니다.

예시:

   // 주말에는 작동하지 않습니다.
   if ( DayOfWeek ()==0 || DayOfWeek ()==6) return (0);

 

요일

마지막으로 알려진 서버 시간 의 요일 일련 번호를 반환합니다.  

덕분에 더 명확해졌습니다.

이제 외부 매개변수에서 거래일을 선택하는 기능을 구현하는 방법을 알 수 없습니다. 더 자세히 설명하자면, 동일한 Expert Advisor가 월요일에 한 거래 쌍에서 거래하고 다른 거래 쌍에서 거래하지 않기를 바랍니다.

"extern"에 작성한 다음 조건(if...else)에서 구현하는 방법은 무엇입니까?

 
RichLux :

요일

마지막으로 알려진 서버 시간 의 요일 일련 번호를 반환합니다.  

덕분에 더 명확해졌습니다.

이제 외부 매개변수에서 거래일을 선택하는 기능을 구현하는 방법을 알 수 없습니다. 더 자세히 설명하자면, 동일한 Expert Advisor가 월요일에 한 거래 쌍에서 거래하고 다른 거래 쌍에서 거래하지 않기를 바랍니다.

"extern"에 작성한 다음 조건(if...else)에서 구현하는 방법은 무엇입니까?

다음은 월요일에만 거래를 허용하는 간단한 예입니다. 이 코드는 MT4 및 MT5에서 작동합니다.

//+------------------------------------------------------------------+
//|                                                       test08.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link        "https://www.mql5.com/ru/users/sergey1294"
#property version    "1.00"
#property strict

input ENUM_DAY_OF_WEEK dayofweek= MONDAY ;

MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   TimeToStruct ( TimeCurrent (),time);
   if (time.day_of_week!=dayofweek) return ; // выйдем из OnTick() если текущий день не равен установленному дню
  
   // тут остальной код советника.
  }
//+------------------------------------------------------------------+


...

 
RichLux :

요일

마지막으로 알려진 서버 시간 의 요일 일련 번호를 반환합니다.  

덕분에 더 명확해졌습니다.

이제 외부 매개변수에서 거래일을 선택하는 기능을 구현하는 방법을 알 수 없습니다. 더 자세히 설명하자면, 동일한 Expert Advisor가 월요일에 한 거래 쌍에서 거래하고 다른 거래 쌍에서 거래하지 않기를 바랍니다.

"extern"에 작성한 다음 조건(if...else)에서 구현하는 방법은 무엇입니까?

ENUM_DAY_OF_WEEK 열거형 사용

페이지 맨 끝에서.

Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
 

무효 OnTick ()
{
//---
TimeToStruct ( TimeCurrent (), 시간);
if (time.day_of_week!=dayofweek) return ; // 현재 날짜가 설정된 날짜와 같지 않으면 OnTick() 종료

// 여기에 EA 코드의 나머지 부분이 있습니다.
}
//+----------------------------------------------- --------------------+


...

고맙습니다!

사실, 이제 각 쌍의 "작업"일이 다른 순간과 함께 운동해야합니다.

5개의 변수를 입력해야 할 수도 있습니다. dayofweek1, dayofweek2,...?

하지만 다시 3거래일이 있다면 나머지 2개의 변수에 무엇을 표시해야 할까요!?

 
안녕하세요! 문제에 대한 해결책을 제안하십시오. M15에 입력된 코드가 있지만 H1의 신호가 고려됩니다. 신호가 H1에 매달려 있는 동안 M15의 표시기는 여러 신호를 제공합니다. 문제는 하나(즉, 첫 번째 신호)로 제한하는 것입니다.
파일:
nsm.txt  1 kb
 
RichLux :


...

고맙습니다!

사실, 이제 각 쌍의 "작업"일이 다른 순간과 함께 운동해야합니다.

5개의 변수를 입력해야 할 수도 있습니다. dayofweek1, dayofweek2,...?

하지만 다시 3거래일이 있다면 나머지 2개의 변수에 무엇을 표시해야 할까요!?

다음과 같이 시도할 수 있습니다.

#property strict

//-
enum YesNo {
_no       = 0 , // NoTrade
_yes      = 1    // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;   // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
//--

 // здесь какой-то код, например закрытие

  ... 

 // проверка запрета на торговлю
   if (TradeAllow()) return ;
   // далее код
  
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct ( TimeCurrent (),time);
   switch (time.day_of_week) {
   case 1 : return (!day1);
   case 2 : return (!day2);
   case 3 : return (!day3);
   case 4 : return (!day4);
   case 5 : return (!day5);
   defaultreturntrue );
  }
}

목요일에는 거래가 금지됩니다.

조금 더 아름답게 만들 수 있습니다. 모두 작업에 따라 다릅니다.

#property version    "1.00"
#property strict

//-
enum YesNo {
_no       = 0 , // No trade
_yes      = 1    // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;   // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
{
//--
   if (TradeAllow()) {
    ClosePos(); // Только закрытие
  } else {
    ClosePos(); // Закрытие
    OpenPos();   // Открытие
    Function()   // Ещё что-то
  }
  
//-
}
//+------------------------------------------------------------------+
//| Функция закрытия                                                 |
//+------------------------------------------------------------------+
void ClosePos()
{
   // код
}

//+------------------------------------------------------------------+
//| Функция открытия                                                 |
//+------------------------------------------------------------------+
void OpenPos()
{
   // код
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct ( TimeCurrent (),time);
   switch (time.day_of_week) {
   case 1 : return (!day1);
   case 2 : return (!day2);
   case 3 : return (!day3);
   case 4 : return (!day4);
   case 5 : return (!day5);
   default : return ( true );
  }
}
//+------------------------------------------------------------------+
 
안녕하세요 여러분! 나는 MT4에서 거래할 때 clusterdelta.com 의 델타 지표 를 사용합니다. 지표 값의 특정 임계값에 도달하면 경고가 트리거되거나 다른 방식으로 소리 신호가 방출되도록 만들 수 있는 프리랜서가 필요합니다. 이 질문에 대해 누구에게 연락해야 하는지 알려주시겠습니까?
 
Lexx1 :
안녕하세요 여러분! 나는 MT4에서 거래할 때 clusterdelta.com의 델타 지표를 사용합니다. 지표 값의 특정 임계값에 도달하면 경고가 트리거되거나 다른 방식으로 소리 신호가 방출되도록 만들 수 있는 프리랜서가 필요합니다. 이 질문에 대해 누구에게 연락해야 하는지 알려주시겠습니까?
맨 위에 파란색 줄무늬가 있고 그 위에 더 많은 다른 글자가 있습니다. 거기에서 "Freelance"라는 단어를 찾아 클릭하십시오. 나아가 무엇을 해야 할지 분명하다고 생각합니다.