Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 103
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
Per esempio, copiare l'intero file.
1. Quando un ordine viene aperto, scrivere il biglietto nella variabile di livello globale o statico, e poi monitorare questo ordine fino a quando è di colore blu, oops, fino a quando viene chiuso dal confronto OrderCloseTime() > 0. Se il tempo di chiusura è maggiore di zero, l'ordine è chiuso.
2. La sostituzione dell'operatore GOTO è molto più efficiente. Leggete la documentazione sulle funzioni.
C'è modo di mostrarmi un esempio? Come faccio ad aspettare la chiusura del trade precedente?
double loss = 100;
int start()
{
int order;
if(OrdersTotal()==0)
{
order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх
order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз
}
return(0);
}
//+------------------------------------------------------------------+
C'è modo di mostrarmi un esempio? Come faccio ad aspettare la chiusura del trade precedente?
double loss = 100;
int start()
{
int order;
if(OrdersTotal()==0)
{
order = OrderSend(Symbol(),OP_BUY,Lot,Ask,1*Point,Ask-loss*Point,Ask+loss*Point); // Вверх
order = OrderSend(Symbol(),OP_SELL,Lot,Bid,1*Point,Bid+loss*Point,Bid-loss*Point); // Вниз
}
return(0);
}
//+------------------------------------------------------------------+
La più semplice è la sequenza di azioni. Prima si cerca di fare qualcosa con un ordine già aperto e poi, se non c'è un ordine aperto, si cerca di impostarlo.
Dividiamo la gestione delle posizioni e l'apertura di un nuovo ordine in due funzioni separate definite dall'utente. Poi nella funzione OnTick() controlla la presenza di ordini aperti e chiama una o l'altra funzione a seconda del risultato ottenuto.
A parole è così:
{
if(OrdersTotal() > 0)
открытие();
else
сопровождение();
}
bool открытие()
{
// здесь код открытия
}
bool сопровождение()
{
// здесь код сопровождения
}
Questo è il caso se il conto prevede, ma più spesso è il caso di lavorare di altri Expert Advisors o di aprire ordini manualmente.
Posso selezionare programmaticamente la data di inizio della storia del conto nel terminale?
È possibile. Questo sarà il primo ordine nella storia con il tipo 6 - operazione di equilibrio.
Non ho bisogno del primo ordine nella storia ... la storia è aperta al massimo ho bisogno della storia da una certa data ... che imposterò programmaticamente (apparentemente la domanda è stata semplificata a scapito dei dettagli)
Ma la domanda è ancora "snella", quindi dirò che dovremmo saltare gli ordini il cui orario di apertura è precedente a quella "data specifica".
La risposta è anche che si può.
Ma la questione rimane ancora "snella", quindi direi che dovremmo saltare gli ordini il cui tempo di apertura è precedente a questa "data certa" ... naturalmente non mi è venuto in mente ... ma 7 anni è un numero molto grande di ordini ...
la domanda è sottolineata in rosso nello screenshot ... quindi la domanda non è semplificata?
Naturalmente non mi è venuto in mente di filtrare per data ... ma in 7 anni ci sono un sacco di ordini .
Nello screenshot, la domanda è sottolineata in rosso e bisogna mettere una certa data lì... quindi la domanda non è snellita?
Cosa vuoi fare esattamente in modo programmatico?
Non capisco la tua domanda :(
Cosa vuoi fare esattamente in modo programmatico?
dove è sottolineato in rosso, inserisci la data ed essenzialmente clicca ok... determina la profondità della storia nel rapporto