Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1120

 

Ich habe einen EA, und ich möchte, dass er in der Lage ist, die Tage auszuwählen, an denen er handelt, und die nicht.

Mo - falsch

Di - wahr

Cp- ...

Bitte beraten Sie mich, wie ich das umsetzen kann?

 
RichLux:

Ich habe einen EA, und ich möchte, dass er in der Lage ist, die Tage auszuwählen, an denen er handelt, und die nicht.

Mo - falsch

Di - wahr

Cp- ...

Bitte beraten Sie mich, wie ich das umsetzen kann?

DayOfWeek

Gibt die fortlaufende Nummer des Wochentags der letzten bekannten Serverzeit zurück.

intDayOfWeek();

Zurückgegebener Wert

Fortlaufende Nummer des Wochentags (Sonntag-0,1,2,3,4,5,6).

Hinweis

Während des Tests wird die letzte bekannte Serverzeit simuliert.

Beispiel:

// arbeitet nicht an Wochenenden.
if(DayOfWeek()==0 ||DayOfWeek()==6)return(0);

 

DayOfWeek

Gibt die laufende Nummerdes Wochentags der letzten bekannten Serverzeit zurück.

Danke, das macht mehr Sinn.

Ich kann nicht herausfinden, wie ich die Auswahl von Handelstagen in externen Parametern implementieren kann. Im Einzelnen möchte ich, dass ein und derselbe Expert Advisor am Montag auf einem Handelspaar handelt und auf einem anderen nicht.

Wie schreibt man es in "extern" und implementiert es dann in eine Bedingung (if...else)?

 
RichLux:

DayOfWeek

Gibt die laufende Nummerdes Wochentags der letzten bekannten Serverzeit zurück.

Danke, das macht mehr Sinn.

Ich kann nicht herausfinden, wie ich die Auswahl von Handelstagen in externen Parametern implementieren kann. Im Einzelnen möchte ich, dass ein und derselbe Expert Advisor am Montag auf einem Handelspaar handelt und auf einem anderen nicht.

Wie schreibt man es in "extern" und implementiert es dann in eine Bedingung (if...else)?

Hier ein einfaches Beispiel, das den Handel nur am Montag erlaubt. Dieser Code funktioniert in MT4 und 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:

DayOfWeek

Gibt die laufende Nummerdes Wochentags der letzten bekannten Serverzeit zurück.

Danke, das macht mehr Sinn.

Ich kann jetzt nicht herausfinden, wie ich die Auswahl der Handelstage in den externen Parametern implementieren kann. Im Detail möchte ich, dass ein und derselbe EA am Montag mit einem Handelspaar handelt und nicht mit einem anderen.

Wie kann man es in "extern" schreiben und dann in Bedingung (if...else) implementieren?

Verwendung der Aufzählung ENUM_DAY_OF_WEEK

Ganz am Ende der Seite.

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

void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time);
if(time.day_of_week!=dayofweek)return; // OnTick() beenden, wenn der aktuelle Tag nicht gleich dem eingestellten Tag ist

// hier der Rest des EA-Codes
}
//+------------------------------------------------------------------+


...

Ich danke Ihnen!

Jetzt müssen wir uns wirklich damit auseinandersetzen, dass jedes Paar eine unterschiedliche Anzahl von "Arbeitstagen" hat.

Wahrscheinlich müssen Sie 5 Variablen eingeben:TagderWoche1,TagderWoche2,...?

Aber noch einmal: Was soll ich in die verbleibenden 2 Variablen eingeben, wenn es 3 Handelstage gibt?

 
Guten Tag, könnten Sie mir bitte sagen, wie ich dieses Problem lösen kann? Es gibt einen Code mit Eintrag auf M15, aber das Signal von H1 wird berücksichtigt. Während es auf H1 ein Signal gibt, gibt der Indikator auf M15 mehrere Signale. Die Frage ist, ob man sich auf ein einziges (d. h. das erste Signal) beschränken sollte.
Dateien:
nsm.txt  1 kb
 
RichLux:


...

Ich danke Ihnen!

Nun müssen wir uns aber damit auseinandersetzen, dass jedes Paar eine unterschiedliche Anzahl von "Arbeitstagen" hat.

Wahrscheinlich müssen Sie 5 Variablen eingeben:TagderWoche1,TagderWoche2,...?

Aber noch einmal, was sollen wir in den verbleibenden 2 Variablen angeben, wenn es 3 Handelstage gibt!

Wir können versuchen, es auf diese Weise zu tun:

#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);
  }
}

An Donnerstagen besteht ein Handelsverbot

Man kann es noch ein bisschen schöner machen, das hängt von der Aufgabe ab:

#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);
  }
}
//+------------------------------------------------------------------+
 
Hallo zusammen! Ich verwende den Delta-Indikator von clusterdelta.com in meinem MT4-Handel. Ich brauche einen Freiberufler, der es so einrichten kann, dass bei Erreichen eines bestimmten Schwellenwertes in den Indikatorwerten ein Alarm oder ein anderer Ton ausgegeben wird. Können Sie mir sagen, an wen ich mich in dieser Angelegenheit wenden kann?
 
Lexx1:
Hallo zusammen! Ich verwende den Delta-Indikator von clusterdelta.com in meinem MT4-Handel. Ich brauche einen Freiberufler, der es so einrichten kann, dass bei Erreichen eines bestimmten Schwellenwertes in den Indikatorwerten ein Alarm oder ein anderer Ton ausgegeben wird. Können Sie mir sagen, an wen ich mich in dieser Angelegenheit wenden kann?
Oben befindet sich ein blauer Balken mit vielen verschiedenen Buchstaben darauf. Suchen Sie das Wort "Freelance" und klicken Sie es an. Ich denke, Sie wissen, was Sie jetzt tun müssen.