Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1120
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ho un EA, voglio che sia in grado di scegliere in quali giorni fare trading e in quali no.
Lun - falso
Mar - vero
Cp- ...
Si prega di consigliare come implementarlo?
Ho un EA, voglio che sia in grado di scegliere in quali giorni fare trading e in quali no.
Lun - falso
Mar - vero
Cp- ...
Si prega di consigliare come implementarlo?
DayOfWeek
Restituisce il numero sequenziale del giorno della settimana dell'ultima ora conosciuta del server.
intDayOfWeek();
Valore restituito
Numero sequenziale del giorno della settimana (domenica-0,1,2,3,4,5,6).
Nota
Durante i test, viene simulato l'ultimo orario noto del server.
Esempio:
// non lavora nei fine settimana.
if(DayOfWeek()==0 ||DayOfWeek()==6)return(0);
DayOfWeek
Restituisce il numero di sequenzadel giorno della settimana dell'ultima ora conosciuta del server.
Grazie, questo ha più senso.
Ora non riesco a capire come implementare la selezione dei giorni di trading nei parametri esterni. In dettaglio, voglio che uno stesso Expert Advisor operi su una coppia di scambi il lunedì e non su un'altra.
Come scriverlo in "extern" e poi implementarlo in condizione (if...else)?
DayOfWeek
Restituisce il numero di sequenzadel giorno della settimana dell'ultima ora conosciuta del server.
Grazie, questo ha più senso.
Ora non riesco a capire come implementare la selezione dei giorni di trading nei parametri esterni. In dettaglio, voglio che uno stesso Expert Advisor operi su una coppia di scambi il lunedì e non su un'altra.
Come scriverlo in "extern" e poi implementarlo in condizione (if...else)?
Ecco un semplice esempio che permette di fare trading solo il lunedì. Questo codice funziona in MT4 e 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
Restituisce il numero di sequenzadel giorno della settimana dell'ultima ora conosciuta del server.
Grazie, questo ha più senso.
Ora non riesco a capire come implementare la selezione dei giorni di trading nei parametri esterni. In dettaglio, voglio che uno stesso Expert Advisor faccia trading su una coppia di trade il lunedì, e non su un'altra.
Come scriverlo in "extern" e poi implementarlo in condizione (if...else)?
Utilizzare l'enumerazione ENUM_DAY_OF_WEEK
Alla fine della pagina.
void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time);
if(time.day_of_week!=dayofweek)return; // esce da OnTick() se il giorno corrente non è uguale al giorno impostato
// qui il resto del codice EA
}
//+------------------------------------------------------------------+
...
Grazie!
Davvero, ora dobbiamo affrontare il punto, che ogni coppia ha un numero diverso di giorni "lavorativi".
Probabilmente è necessario inserire 5 variabili:giorno della settimana1,giorno della settimana2,...?
Ma di nuovo, cosa dovrei inserire nelle restanti 2 variabili se ci sono 3 giorni di trading?
...
Grazie!
Ora, però, dobbiamo affrontare il fatto che ogni coppia ha un numero diverso di giorni "lavorativi".
Probabilmente è necessario inserire 5 variabili:giorno della settimana1,giorno della settimana2,...?
Ma di nuovo, cosa dovrei inserire nelle restanti 2 variabili se ci sono 3 giorni di trading!
Possiamo provare a farlo in questo modo:
#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);
}
}
C'è un divieto di trading il giovedì
Si può fare un po' più bello, tutto dipende dal compito:
#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);
}
}
//+------------------------------------------------------------------+
Ciao a tutti! Uso l'indicatore delta di clusterdelta.com nel mio trading MT4. Ho bisogno di un freelancer che possa fare in modo che quando una certa soglia nei valori dell'indicatore viene raggiunta, venga emesso un allarme o qualche altro suono. Può dirmi chi contattare per questo?