Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1120
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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?
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)?
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() если текущий день не равен установленному дню
// тут остальной код советника.
}
//+------------------------------------------------------------------+
...
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.
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?
...
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);
default: return( true);
}
}
An Donnerstagen besteht ein Handelsverbot
Man kann es noch ein bisschen schöner machen, das hängt von der Aufgabe ab:
#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?