È possibile distinguere un oggetto grafico creato manualmente da un oggetto creato da un indicatore o EA?
Nella funzione
OBJPROP_HIDDEN
Barrare il nome di un oggetto grafico dal menu del terminale "Charts" - "Objects" - "List of Objects". Il valore true permette di nascondere un oggetto non necessario dalla lista. Di default true è impostato per gli oggetti che visualizzano gli eventi del calendario, la storia del trading, così comequelli creati dal programma MQL5. Per vedere tali oggettigrafici e accedere alle loro proprietà, cliccate su "All" nella finestra "List of Objects".
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д. Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
Era necessario scoprire all'interno di un mqh se qualcosa era stato chiamato prima da un altro mqh. Il mqh non è consapevole della presenza dell'altro. Uno di loro potrebbe essere dentro e uno no.
Tutto sommato, il problema è insolito (per me). Ha risolto il problema in un modo un po' grossolano.
void f1()
{
SetUserError(0);
}
void f2()
{
if(_LastError == ERR_USER_ERROR_FIRST)Print("f1() была вызвана.");
elsePrint("f1() не была вызвана");
}
voidOnStart()
{
f1();
f2();
}
Penso che sia una pratica molto cattiva, ma funziona.
Era necessario scoprire all'interno di un mqh se qualcosa era stato chiamato prima da un altro mqh. Il mqh non è consapevole della presenza dell'altro. Uno di loro potrebbe essere dentro e uno no.
Tutto sommato, il problema è insolito (per me). Ha risolto il problema in un modo un po' grossolano.
Penso che sia una pratica molto cattiva, ma funziona.
L'uso di _LastError ha un problema irrisolvibile, quando si collegano librerie di terze parti, c'è una probabilità non nulla di collisione dei codici di errore utente. In alternativa a mantenere il proprio lastError. O una variabile globale, avvolta da includeguard in tutti gli mqh, o una singola variabile.
PS. La funzione Sleep() in MQL5 non è un reindirizzamento alla funzione win api ::Sleep(). Per essere più precisi, se il valore è inferiore a 100, è un reindirizzamento. Ma sopra i 100 è un ciclo con win api slip al suo interno in modo che possa essere interrotto da IsStopped.
C'è un punto più sottile. Se i millisecondi <=0, aggiungiamo 1. Cioè, non chiamiamo mai ::Sleep(0).
È già stato dimenticato. Vero solo per MT5. In MT4 Sleep(0) può sospendere il terminale.
La variante typedef perde di un fattore tre. Ho rifiutato di usarlo dove è fondamentale. Per esempio, per TC lo stesso OrdersTotal è chiamato almeno una volta ad ogni tick di passaggio dell'ottimizzatore.
In modalità debug la situazione è invertita. Quindi, ha senso usare typedef in MT4 per l'accelerazione.
È possibile distinguere un oggetto grafico creato manualmente da un oggetto creato da un indicatore o EA?
Nella funzione
OBJPROP_HIDDEN
Barrare il nome di un oggetto grafico dal menu del terminale "Charts" - "Objects" - "List of Objects". Il valore true permette di nascondere un oggetto non necessario dalla lista. Di default true è impostato per gli oggetti che visualizzano gli eventi del calendario, la storia del trading, così comequelli creati dal programma MQL5. Per vedere tali oggettigrafici e accedere alle loro proprietà, cliccate su "All" nella finestra "List of Objects".
bool
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Biblioteche: Esperto
fxsaber, 2020.10.09 04:55
Ho evidenziato un posto importante nel codice. Senza di esso non c'è applicazione del modello fino alla fine dello script.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
MT5 e la velocità in azione
Anton, 2020.10.08 11:00
Diverso significato e diverso meccanismo di esecuzione. 0 - evento in coda del "proprio" grafico. -1 - evento nella propria coda.
Alla fine della settimana la mia testa non è già buona.
Ho un ticket di una posizione aperta su una copertura in mt5, per esempio 123456
Voglio calcolare un profitto dopo che la posizione è chiusa, e non posso farlo.
Lo faccio, ma ricevo solo commissioni...
Come posso ottenere il profitto di una posizione chiusa con un biglietto?
Prova a selezionare meglio i trade usando HistorySelectByPosition().
Era necessario scoprire all'interno di un mqh se qualcosa era stato chiamato prima da un altro mqh. Il mqh non è consapevole della presenza dell'altro. Uno di loro potrebbe essere dentro e uno no.
Tutto sommato, il problema è insolito (per me). Ha risolto il problema in un modo un po' grossolano.
Penso che sia una pratica molto cattiva, ma funziona.
Era necessario scoprire all'interno di un mqh se qualcosa era stato chiamato prima da un altro mqh. Il mqh non è consapevole della presenza dell'altro. Uno di loro potrebbe essere dentro e uno no.
Tutto sommato, il problema è insolito (per me). Ha risolto il problema in un modo un po' grossolano.
Penso che sia una pratica molto cattiva, ma funziona.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
MT5 e la velocità in azione
fxsaber, 2020.10.20 12:28
Un totale intermedio per una macchina che si scarica velocemente.
La rilevanza dei dati di prezzo è molto ambigua per coloro che fanno trading utilizzando barre e indicatori.
Le zecche e i tumblr sono difficili da essere in tempo reale.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Peculiarità di mql5, consigli e trucchi
Slava, 2018.09.20 15:40
PS. La funzione Sleep() in MQL5 non è un reindirizzamento alla funzione win api ::Sleep(). Per essere più precisi, se il valore è inferiore a 100, è un reindirizzamento. Ma sopra i 100 è un ciclo con win api slip al suo interno in modo che possa essere interrotto da IsStopped.
C'è un punto più sottile. Se i millisecondi <=0, aggiungiamo 1. Cioè, non chiamiamo mai ::Sleep(0).
È già stato dimenticato. Vero solo per MT5. In MT4 Sleep(0) può sospendere il terminale.
Ma ho deciso di confrontare prima le prestazioni, usando un semplice esempio.
Il risultato.
La variante typedef perde di un fattore tre. Ho rifiutato di usarlo dove è fondamentale. Per esempio, per TC lo stesso OrdersTotal è chiamato almeno una volta ad ogni tick di passaggio dell'ottimizzatore.
In modalità debug la situazione è invertita. Quindi, ha senso usare typedef in MT4 per l'accelerazione.