Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1159

 
Vladimir Karputov:
Tem a certeza de que a troca funciona para o símbolo solicitado à noite?

Não obrigo o terminal a enviar-me carraças a uma hora específica que não tem, apenas envio um pedido:

apartir de=0,// a data a partir da qual as carraças são solicitadas.

contagem=0// número de carrapatos a receber

E envia-me a própria história, não é verdade?

 
VANDER:

Não obrigo o terminal a enviar-me carraças a uma hora específica que não tem, apenas envio um pedido:

apartir de=0,// a data a partir da qual as carraças são solicitadas.

contagem=0// número de carrapatos a receber

E envia-me a própria história, não é verdade?

Se as negociações estiverem fechadas para o símbolo solicitado (por exemplo, é de noite) - de onde virão os carrapatos para o símbolo solicitado?
 

Verificado, para o símbolo principal RTS-12.19 no qual está a correr o Expert Advisor, o último tick foi às 23:59:30 e SBRF-12.19 às 23:52:21 para não poder descarregar os ticks?

E quão interessante é a função SymbolInfoTick ajudar a torná-la inteligente?

 
VANDER:

Verificado, para o símbolo principal RTS-12.19 no qual está a correr o Expert Advisor, o último tick foi às 23:59:30 e SBRF-12.19 às 23:52:21 para não poder descarregar os ticks?

E quão interessante é a função SymbolInfoTick que o ajuda a compreendê-la?

Fórum sobre Comércio, Sistemas de Comércio Automatizados e Testes de Estratégia

FAQ de Iniciantes MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2019.12.08 13:20

Se a licitação do símbolo solicitado estiver fechada (por exemplo, é noite) - onde é que o símbolo solicitado vai buscar as suas carraças?

 
VANDER:

Verificado, para o símbolo principal RTS-12.19 no qual está a correr o Expert Advisor, o último tick foi às 23:59:30 e SBRF-12.19 às 23:52:21 para não poder descarregar os ticks?

E como é interessante a função SymbolInfoTick?

Aqui está a 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,"]");
     }
  }
//+------------------------------------------------------------------+

A funcionar no RTSSRZ9 (isto é SBRF-Dec19) - aqui estão as definições:


Pedido de carraças no RTSSiZ9 (aqui é Si-Dec19).

Resultado:

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 assim por diante ...


Ou seja, no servidor real, tudo funciona. Se não funcionar para si: 1. Trabalhar num servidor real, não num servidor de demonstração, 2. Verifique o seu código.

Arquivos anexados:
 

A conta é mais do que real, eu negoceio com ela. Usei o vosso código, até defini exactamente todas as definições e rir-se-ão, aqui está o registo 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

A única diferença é que começa à noite, mas depois é a mesma coisa mesmo de manhã.

 
VANDER:

A conta é mais do que real, eu negoceio com ela. Usei o vosso código, até defini exactamente todas as definições e rir-se-ão, aqui está o registo completo:


A única diferença é que começa à noite, mas depois é a mesma coisa mesmo de manhã...

ERR_HISTORY_NOT_FOUND

4401

História solicitada não encontrada

A partir de que data e até que data é comercializada aSBRF-12.19? Estas datas são entre 2019.08.30 e 2019.11.26?

 
Vladimir Karputov:

ERR_HISTORY_NOT_FOUND

4401

História solicitada não encontrada

Desde quando é comercializada aSBRF-12.19 e até quando? Estas datas situam-se no intervalo 2019.08.30-2019.11.26?

Sim, acontece em todas as datas


Esqueça, encontrei uma solução para mim, usando a função

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

Depois CopyTicks() começa a trabalhar com ele, talvez o Openchat apresente falhas noutros corretores que eu não tenha verificado, talvez seja útil para alguém.

 
VANDER:

Sim, acontece, acontece em todas as datas.


Ok esqueça, já encontrei uma saída para mim, use a função antes

Depois CopyTicks() começa a trabalhar com ele, talvez ele se avarie com outros corretores que eu não tenha verificado, talvez seja útil para alguém.

Depende claramente do servidor de negociação - funcionou para mim.
Talvez não actualizem a sua parte do servidor durante dez anos.
 
fxsaber :

O que impede a fixação do código para que não haja avisos?

Quando se tem 600 avisos, é necessário encontrar linhas com erros (na verdade, tenho mais se activar o modo estrito)

E quase todos os avisos são inúteis. Porque muitas delas são sobre variáveis ocultas ou conversões de tipo. Talvez algumas pessoas pensem que se pode errar, mas isso não é comum entre programadores experientes.

Mt4 era justificado para principiantes. Mas a actual linguagem mql5 é suficientemente sofisticada para ter um propósito para os principiantes. E os programadores experientes não precisam de 600 linhas sobre algo claramente feito por uma razão


Obviamente que esta é a minha opinião subjectiva, mas outras línguas permitem-lhe decidir o nível verboso que pretende

Razão: