Errori, bug, domande - pagina 2096
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Hmm. Beh lo trovi ))))
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnTick()
{
int s[];
CopySpread(_Symbol,_Period,0,1,s);
Print(s[0]);
}
Allora chi vi ha detto che il campo dello spread della barra attuale è uguale allo spread attuale o, per esempio, al minimo?
UsaSymbolInfoTick, le barre sono un rudimento storico.
Allora chi vi ha detto che il campo dello spread della barra attuale è uguale allo spread attuale o per esempio al minimo?
Usa SymbolInfoTick, le barre sono un rudimento storico.
CopySpread - ricorda il minimo - ha detto la pratica, che nella maggior parte dei casi risulta essere il criterio di verità. Da esso si stabilisce che la barra 2017.10.23 01:00 CopySprea=-3, in quanto non c'era meno quando si controllavano i tick.
Chiamerei le barre - uno strumento molto necessario per analizzare il passato.
SymbolInfoTick è corretto, ma è davvero il motivo per lasciare CopySpread sbagliato? Capisco che 1 pt. - è un'inezia, credo, e fissarlo elementare s=s-1. Questo è tutto )
SymbolInfoTick - mostra correttamente, ma è davvero necessario lasciare CopySpread sbagliato a causa di questo? Capisco che 1 pt. - è un'inezia, penso, che è elementare correggerlo s=s-1. Questo è tutto )
Prima di eseguire il tester, guarda la storia della barra per vedere se ha uno spread negativo. È un campo storto su niente.
Se gli sviluppatori di oggi si inventassero MqlRates, ci sarebbero campi normali invece di questa merda. Ma non hanno tempo per riconsiderare questa struttura e ne hanno già fatto ogni sorta di assurdità. Quindi, abbiamo un rudimento di storia. E ora si tireranno dietro questo fardello per tutto il tempo.
CopySpread - ricorda il minimo - ha detto la pratica, che nella maggior parte dei casi si dimostra essere il criterio di verità. Da esso si stabilisce che la barra 2017.10.23 01:00 CopySprea=-3, poiché non c'era meno quando si controlla per tick.
Chiamerei le barre - uno strumento molto necessario per analizzare il passato.
SymbolInfoTick è corretto, ma è davvero il motivo per lasciare CopySpread sbagliato? Capisco che 1 pt. - è un'inezia, credo, e fissarlo elementare s=s-1. Questo è tutto )
Se fai attenzione, puoi guardare i minuti e vedere che l'ultimo valore di spread viene ricordato quando appare una nuova barra.
Se fai attenzione, puoi guardare i minuti per vedere che l'ultimo valore di spread viene ricordato quando appare una nuova barra.
Guardando più da vicino - sono d'accordo, ma in parte.
Codice dell'esperto:
void OnTick() {
int s[];
CopySpread(_Symbol,_Period,0,1,s);
Print(s[0]);
MqlTick last_tick;
if(SymbolInfoTick(Symbol(),last_tick)) { Print(last_tick.time,": Bid = ",last_tick.bid, " Ask = ",last_tick.ask," SP = ",DoubleToString(last_tick.ask-last_tick.bid,5)); }
}
Ecco una stampa di un minuto - prima la diffusione da CopySpread. Poi calcolato da Ask-Bid
2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17729 SP = 0.00014
2018.01.01 11:55:00.494 2017.10.23 01:00:00 9
2018.01.01 11:55:00.494 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17724 SP = 0.00009
2018.01.01 11:55:00.510 2017.10.23 01:00:00 9
2018.01.01 11:55:00.510 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17716 Ask = 1.17726 SP = 0.00010
...........
2018.01.01 11:55:01.023 2017.10.23 01:00:30 1
2018.01.01 11:55:01.023 2017.10.23 01:00:30 2017.10.23 01:00:30: Bid = 1.17704 Ask = 1.17705 SP = 0.00001
2018.01.01 11:55:01.876 2017.10.23 01:00:30 -1
2018.01.01 11:55:01.876 2017.10.23 01:00:30 2017.10.23 01:00:30: Bid = 1.17707 Ask = 1.17705 SP = -0.00002
2018.01.01 11:55:01.893 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.893 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17703 SP = -0.00004
2018.01.01 11:55:01.909 2017.10.23 01:00:31 -3
2018.01.01 11:55:01.909 2017.10.23 01:00:31 2017.10.23 01:00:31: Bid = 1.17707 Ask = 1.17704 SP = -0.00003
2018.01.01 11:55:01.925 2017.10.23 01:00:32 -3
...........
2018.01.01 11:55:02.293 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.293 2017.10.23 01:00:48 2017.10.23 01:00:48: Bid = 1.17702 Ask = 1.17707 SP = 0.00005
2018.01.01 11:55:02.309 2017.10.23 01:00:48 -3
2018.01.01 11:55:02.309 2017.10.23 01:00:48 2017.10.23 01:00:48: Bid = 1.17703 Ask = 1.17707 SP = 0.00004
2018.01.01 11:55:02.325 2017.10.23 01:00:49 -3
2018.01.01 11:55:02.325 2017.10.23 01:00:49 2017.10.23 01:00:49: Bid = 1.17707 Ask = 1.17707 SP = 0.00000
Cioè il valore di CopySpread sulla barra corrente = minimo.
Ma nella storia del bar l'ultimo valore è davvero sparito.
<DATA> <ORA> <APERTURA> <ALTO> <BASSO><CHIUSURA> <TICKVOL> <VOL> <SPREAD>
2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0
La maggior parte delle volte (min 10 controllati), ma anche qui ci sono degli inconvenienti.
Ecco il problema descritto sopra su 2017.10.23 00:53
Nella storia.
2017.10.23 00:53:00 1.17685 1.17725 1.17685 1.17725 8 0 9
E sulle zecche:
2018.01.01 11:54:59.009 2017.10.23 00:53:43 48
2018.01.01 11:54:59.009 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17724 Ask = 1.17733 SP = 0.00009
2018.01.01 11:54:59.025 2017.10.23 00:53:43 48
2018.01.01 11:54:59.025 2017.10.23 00:53:43 2017.10.23 00:53:43: Bid = 1.17725 Ask = 1.17736 SP = 0.00011
2018.01.01 11:54:59.041 2017.10.23 00:53:43 48
2018.01.01 11:54:59.041 2017.10.23 00:53:43 2017.10.23 10.23 00:53:43: Bid = 1.17725 Ask = 1.17737 SP = 0.00012 <<<<<<---------- ultima barra tick 2017.10.23 00:53
2018.01.01 11:54:59.057 2017.10.23 00:54:11 9
2018.01.01 11:54:59.057 2017.10.23 00:54:11 2017.10.23 00:54:11: Bid = 1.17728 Ask = 1.17737 SP = 0.00009 <<<<<<---------- prima barra di tick 2017.10.23 00:54 - qui corrisponde
Controllato la versione che lo spread dal primo tick della barra successiva va nella storia. Non confermato:
Storia
2017.10.23 00:59:00 1.17717 1.17723 1.17709 1.17715 14 0 3
1° tick della barra successiva
Storia2018.01.01 11:55:00.478 2017.10.23 01:00:00 14
2018.01.01 11:55:00.478 2017.10.23 01:00:00 2017.10.23 01:00:00: Bid = 1.17715 Ask = 1.17729 SP = 0.00014
2017.10.23 01:00:00 1.17715 1.17720 1.17693 1.17707 64 0 0
1° tick della barra successiva
2018.01.01 11:55:02.342 2017.10.23 01:01:03 1
2018.01.01 11:55:02.342 2017.10.23 01:01:03 2017.10.23 01:01:03: Bid = 1.17707 Ask = 1.17708 SP = 0.00001
Tutto sommato - un po' di casino con gli spread (
...
Tutto sommato - un po' di confusione sugli spread (
MT4 b1090, molte decine di simboli in Market Watch, diversi grafici aperti. terminal.exe sta mangiando 0-1% di CPU.
MT5 b1730, solo GBPUSD MetaQuotes-Demo in Market Watch, nessun grafico. terminal64.exe sta mangiando 2-3% di CPU.
È normale?
MT4 b1090, molte decine di simboli in Market Watch, diversi grafici aperti. terminal.exe sta mangiando 0-1% di CPU.
MT5 b1730, solo GBPUSD MetaQuotes-Demo in Market Watch, nessun grafico. terminal64.exe sta mangiando 2-3% di CPU.
È normale?
L'argomento è venuto fuori diverse volte. MT5 è un po' più impegnativo per la CPU perché trasmette più informazioni.
Ma non è corretto confrontare entro l'1-2%.
L'argomento è venuto fuori diverse volte. MT5 è leggermente più intensivo per la CPU perché trasmette più informazioni.
Ma non è corretto confrontare entro l'1-2%.
Diversi browser con decine di schede aperte in modalità di lettura mangiano zero. È strano quando un terminale completamente vuoto consuma come un client torrent. E non cambia se si scollega internet dal computer.
Diversi browser con decine di schede aperte in modalità di lettura mangiano zero. È strano quando un terminale completamente vuoto consuma come un client torrent. E non cambia se lo scolleghi dal computer.
Non è corretto paragonarlo a un browser. Le schede in background, per quanto posso vedere, non consumano affatto risorse.
E il terminale riceve i tick e costruisce una serie temporale, indipendentemente dal fatto che il grafico sia attivo o meno, in modo che quando si passa ad esso, mostra le informazioni attuali senza ritardi.
Ma non sto davvero difendendo MT, solo sottolineando che nessuno si è mai preso la briga di fare un confronto completo con tutti i calcoli per il service-desk.