Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 229
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
Grazie, c'è un'altra soluzione? Dopo di che l'EA apre e chiude immediatamente la posizione.
è necessario fissare il tempo sulla condizione
e non aggiornarlo fino alla chiusura della posizione
poi sottrarre all'ora corrente il tempo che avete memorizzato
, quando i secondi dati sono passati, chiudere le posizioni.
L'ho fatto
double op = CalculateProfit();
int time_waiting=0;
if (op >= Profit)
time_waiting = TimeLocal() + 10;
if (TimeLocal() < time_waiting)
{
CloseAll();
}
ma mi dà un errore
possibile perdita di dati a causa della conversione del tipo
non è un errore, ma un avvertimento: i dati possono essere persi durante la conversione da un tipo all'altro:
datetime time_waiting;
Cioè, non voglio che l'EA si chiuda appena vedo 2 sterline, ma un po' di più.
E cosa, sempre dopo 10 secondi il profitto è maggiore?)
Se non ti dispiace, per favore aiutami a sistemarlo...
Accettare la piena responsabilità del fatto che
ushort
Iltipo unsigned short è il tipo ushort, che ha anche una dimensione di 2 byte. Il valore minimo è 0, il valore massimo è 65.535.
int
Il tipo intero int ha una dimensione di 4 byte (32 bit). Il valore minimo è -2 147 483 648, il valore massimo è 2 147 483 647.
Ho fatto come hai detto tu, ma per qualche motivo dopo la chiusura l'Expert Advisor chiude un paio di trade, nonostante il fatto che ho uno slittamento di un'ora dopo la funzione CloseAll().
double op = CalculateProfit();
if (op >= Profit && LastTime == 0)
LastTime = TimeCurrent ();
if(LastTime > 0 && TimeCurrent () - LastTime >= Second)
{
CloseAll();
LastTime = 0;
SendNotification("Trade is over");
Sleep(60*60000);// 60.000 = 1 min
}