Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1159

 
Vladimir Karputov:
Sei sicuro che lo scambio funziona di notte per il simbolo richiesto?

Non costringo il terminale a mandarmi dei tick in un momento specifico che non ha, mando solo una richiesta:

from=0,// la data da cui sono richiesti i tick.

count=0// numero di tick da ricevere

E mi manda la storia stessa, vero?

 
VANDER:

Non costringo il terminale a mandarmi dei tick in un momento specifico che non ha, mando solo una richiesta:

from=0,// la data da cui sono richiesti i tick.

count=0// numero di tick da ricevere

E mi manda la storia stessa, vero?

Se le negoziazioni sono chiuse per il simbolo richiesto (per esempio è notte) - da dove verranno i tick per il simbolo richiesto?
 

Controllato, per il simbolo principale RTS-12.19 su cui l'Expert Advisor è in esecuzione, l'ultimo tick era alle 23:59:30 e SBRF-12.19 alle 23:52:21 quindi non poteva scaricare i tick?

E quanto è interessante la funzione SymbolInfoTick che lo aiuta a diventare intelligente?

 
VANDER:

Controllato, per il simbolo principale RTS-12.19 su cui l'Expert Advisor è in esecuzione, l'ultimo tick era alle 23:59:30 e SBRF-12.19 alle 23:52:21 quindi non poteva scaricare i tick?

E quanto è interessante la funzione SymbolInfoTick che lo aiuta a capire?

Forum sul trading, sistemi di trading automatico e test di strategia

FAQ da principianti MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2019.12.08 13:20

Se l'offerta sul simbolo richiesto è chiusa (per esempio è notte) - da dove prenderà i suoi tick il simbolo richiesto?

 
VANDER:

Controllato, per il simbolo principale RTS-12.19 su cui l'Expert Advisor è in esecuzione, l'ultimo tick era alle 23:59:30 e SBRF-12.19 alle 23:52:21 quindi non poteva scaricare i tick?

E come è interessante la funzione SymbolInfoTick?

Ecco l'EA:

//+------------------------------------------------------------------+
//|                                                  CopyTicks_1.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.100"
#property description "Сравнение трёх режимов получения тиков"
//--- input parameters
input string   name  = "RTSSiZ9";      // символ по которому запрашиваем тики
input int      ticks = 3000;           // количество запрашиваемых тиков
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  SymbolSelect(name,true);
//--- succeed
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- массив для приема тиков
   MqlTick ExTicks[];
//--- запросим тики
   ResetLastError();
   int copied=CopyTicks(name,ExTicks,COPY_TICKS_ALL,0,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
  }
//+------------------------------------------------------------------+

In esecuzione su RTSSRZ9 (questo è SBRF-Dec19) - ecco le impostazioni:


Richiesta di zecche in RTSSiZ9 (questo è Si-Dec19).

Risultato:

2019.08.30 07:00:00   Получено тиков: -1 код ошибки: 4004
2019.08.30 07:00:01   Получено тиков: 2 код ошибки: 0
2019.08.30 07:00:01   Тик: 2019.08.30 07:00:00 bid: 22552.0 ask: 22697.0 last: 0.0 [0]
2019.08.30 07:00:01   Тик: 2019.08.30 07:00:01 bid: 22552.0 ask: 22697.0 last: 0.0 [1]
2019.08.30 07:00:02   Получено тиков: 3 код ошибки: 0
2019.08.30 07:00:02   Тик: 2019.08.30 07:00:00 bid: 22552.0 ask: 22697.0 last: 0.0 [0]
2019.08.30 07:00:02   Тик: 2019.08.30 07:00:02 bid: 22425.0 ask: 22856.0 last: 0.0 [2]
2019.08.30 07:00:02   Получено тиков: 4 код ошибки: 0
2019.08.30 07:00:02   Тик: 2019.08.30 07:00:00 bid: 22552.0 ask: 22697.0 last: 0.0 [0]

e così via ...


Cioè, sul server reale tutto funziona. Se non funziona per voi: 1. 1. Lavorare su un server reale, non su un server demo, 2. Controlla il tuo codice.

File:
 

Il conto è più che reale, ci faccio trading. Ho usato il tuo codice, anche impostato tutte le impostazioni esattamente e riderai, ecco il log completo:


2019.12.08 21:08:38.787 MetaTester 5 started on 127.0.0.1:3000
2019.12.08 21:08:38.790 initialization finished
2019.12.08 21:08:39.088 login (build 2265)
2019.12.08 21:08:39.120 4372 bytes of account info loaded
2019.12.08 21:08:39.120 1482 bytes of tester parameters loaded
2019.12.08 21:08:39.120 1212 bytes of input parameters loaded
2019.12.08 21:08:39.138 29043 bytes of symbols list loaded
2019.12.08 21:08:39.138 expert file added: Experts\CopyTicks_1.ex5. 16437 bytes loaded
2019.12.08 21:08:39.152 6116 Mb available, 76 blocks set for ticks generating
2019.12.08 21:08:39.152 initial deposit 10000.00 USD, leverage 1:100
2019.12.08 21:08:39.153 successfully initialized
2019.12.08 21:08:39.153 37 Kb of total initialization data received
2019.12.08 21:08:39.153 Intel Core i5-3450  @ 3.10 GHz, 8157 MB
2019.12.08 21:08:39.198 RTS-12.19: symbol to be synchronized
2019.12.08 21:08:39.199 RTS-12.19: symbol synchronized, 4120 bytes of symbol info received
2019.12.08 21:08:39.199 RTS-12.19: history synchronization started
2019.12.08 21:08:39.201 RTS-12.19: load 33 bytes of history data to synchronize in 0:00:00.000
2019.12.08 21:08:39.201 RTS-12.19: history synchronized from 2018.01.12 to 2019.12.06
2019.12.08 21:08:39.201 RTS-12.19: ticks synchronization started
2019.12.08 21:08:39.202 RTS-12.19: load 40 bytes of tick data to synchronize in 0:00:00.000
2019.12.08 21:08:39.202 RTS-12.19: history ticks synchronized from 2019.01.03 to 2019.12.05
2019.12.08 21:08:39.205 RTS-12.19,H1: history cache allocated for 2480 bars and contains 971 bars from 2018.01.12 13:00 to 2019.08.29 23:00
2019.12.08 21:08:39.205 RTS-12.19,H1: history begins from 2018.01.12 13:00
2019.12.08 21:08:39.207 RTS-12.19,H1 (Open-Broker): generating based on real ticks
2019.12.08 21:08:39.207 RTS-12.19,H1: testing of Experts\CopyTicks_1.ex5 from 2019.08.30 00:00 to 2019.11.26 00:00 started with inputs:
2019.12.08 21:08:39.207   name=SBRF-12.19
2019.12.08 21:08:39.207   ticks=3000
2019.12.08 21:08:39.263 SBRF-12.19: symbol to be synchronized
2019.12.08 21:08:39.263 SBRF-12.19: symbol synchronized, 4120 bytes of symbol info received
2019.12.08 21:08:40.615 RTS-12.19 : real ticks begin from 2019.01.03 00:00:00
2019.12.08 21:08:55.958 2019.08.30 00:03:46   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:56.877 2019.08.30 00:03:46   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:57.764 2019.08.30 09:52:14   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:58.739 2019.08.30 10:00:01   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:59.784 2019.08.30 10:00:01   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:09:04.628 2019.08.30 10:00:03   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:09:05.579 2019.08.30 10:00:04   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:09:06.596 2019.08.30 10:00:06   Получено тиков: -1 код ошибки: 4401

L'unica differenza è che inizia di notte, ma poi è lo stesso anche al mattino.

 
VANDER:

Il conto è più che reale, ci faccio trading. Ho usato il tuo codice, anche impostato tutte le impostazioni esattamente e riderai, ecco il log completo:


L'unica differenza è che inizia di notte, ma poi è lo stesso anche al mattino...

ERR_HISTORY_NOT_FOUND

4401

Storia richiesta non trovata

Da quale data e fino a quale data viene scambiatoSBRF-12.19? Queste date sono tra il 2019.08.30 e il 2019.11.26?

 
Vladimir Karputov:

ERR_HISTORY_NOT_FOUND

4401

Storia richiesta non trovata

Da quando viene scambiatoSBRF-12.19 e fino a quando? Queste date rientrano nell'intervallo 2019.08.30-2019.11.26?

Sì, succede in tutte le date


Lascia perdere, ho trovato una soluzione per me, usando la funzione

SymbolInfoTick(необходимый символ)

Poi CopyTicks() inizia a funzionare con esso, forse Openbox ha dei glitch su altri broker che non ho controllato, forse sarà utile a qualcuno.

 
VANDER:

Sì, lo fanno, succede in tutte le date.


Ok lascia perdere, ho trovato una via d'uscita per me, usa la funzione prima

Poi CopyTicks() inizia a funzionare con esso, forse ha dei glitch su altri broker che non ho controllato, forse sarà utile a qualcuno.

Chiaramente dipende dal server di trading - per me ha funzionato.
Forse non aggiornano la loro parte di server per dieci anni.
 
fxsaber :

Cosa impedisce di correggere il codice in modo che non ci siano avvertimenti?

Quando hai 600 avvertimenti, devi trovare linee con errori (in realtà ne ho di più se abilito la modalità strict)

E quasi tutti gli avvertimenti sono inutili. Perché molti di essi riguardano variabili nascoste o conversioni di tipo. Forse alcune persone pensano che si possa sbagliare, ma questo non è comune tra i programmatori esperti.

Mt4 era giustificato per i principianti. Ma l'attuale linguaggio mql5 è abbastanza sofisticato da avere uno scopo per i principianti. E i programmatori esperti non hanno bisogno di 600 righe su qualcosa fatto chiaramente per una ragione


Ovviamente questa è la mia opinione soggettiva, ma altre lingue ti lasciano decidere quanto livello di verbosità vuoi