Erros, bugs, perguntas - página 1804

 
Comentários não relacionados com este tópico foram movidos para"Quaisquer perguntas de novatos sobre MQL4, ajuda e discussão sobre algoritmos e códigos".
 
fxsaber:
O sono só é necessário quando o símbolo não está no Market Watch. Para todos os símbolos que estão no Market Watch antes (e durante) o indicador, não são necessários deslizes.
Estou a ver.
 

1531 - os travões Metaquotes-Demo não desapareceram.

Pedido e resposta

Request.action = TRADE_ACTION_DEAL (1)
Request.magic = 0
Request.order = 0
Request.symbol = #KO
Request.volume = 1.0
Request.price = 40.31
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY (0)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Position
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 117613087
Result.order = 133997293
Result.volume = 1.0
Result.price = 40.31
Result.bid = 40.28
Result.ask = 40.31
Result.comment = Request executed 345.781 + 26.356 ms
Result.request_id = 5712
Result.retcode_external = 0

A OrderSend levou 345 ms, e foram precisos 26 ms para que a ordem e negócio correspondente ficassem disponíveis na história. Isto é, uma sincronização muito lenta que nunca tinha visto antes.

Diário de bordo padrão

2017.02.14 22:26:46.767 Trades  '5122740': prices for #KO 1.00
2017.02.14 22:26:46.852 Trades  '5122740': accepted prices for #KO 1.00
2017.02.14 22:26:46.852 Trades  '5122740': answer prices for #KO 1.00 40.28 / 40.31 in 86.046 ms (0.190 ms on server)
2017.02.14 22:26:46.852 Trades  '5122740': request buy 1.00 #KO at 40.31
2017.02.14 22:26:47.107 Trades  '5122740': accepted request buy 1.00 #KO at 40.31
2017.02.14 22:26:47.107 Trades  '5122740': deal #117613087 buy 1.00 #KO at 40.31 done (based on order #133997293)
2017.02.14 22:26:47.107 Trades  '5122740': order #133997293 buy 1.00 / 1.00 #KO at 40.31 done in 345.709 ms (3.022 ms on server)

O novo tronco está agora em 1531! Por favor explique neste caso, o que é o quê.

ZZY log quase imediatamente após a desaceleração.

2017.02.14 22:26:47.433 Trades  '5122740': prices for #KFT 1.00
2017.02.14 22:26:47.503 Trades  '5122740': accepted prices for #KFT 1.00
2017.02.14 22:26:47.506 Trades  '5122740': answer prices for #KFT 1.00 49.17 / 49.20 in 70.980 ms (4.166 ms on server)
2017.02.14 22:26:47.506 Trades  '5122740': request buy 1.00 #KFT at 49.20
2017.02.14 22:26:47.583 Trades  '5122740': accepted request buy 1.00 #KFT at 49.20
2017.02.14 22:26:47.583 Trades  '5122740': deal #117613092 buy 1.00 #KFT at 49.20 done (based on order #133997299)
2017.02.14 22:26:47.583 Trades  '5122740': order #133997299 buy 1.00 / 1.00 #KFT at 49.20 done in 149.304 ms (3.015 ms on server)

Estes são caracteres requisitados, pelo que as ordens de mercado são mais lentas do que outras.

 

Os travões no TRADE_ACTION_REMOVE.

Request.action = TRADE_ACTION_REMOVE (8)
Request.magic = 0
Request.order = 134003202
Request.symbol =
Request.volume = 0.0
Request.price = 0.0
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 0
Request.type = ORDER_TYPE_BUY (0)
Request.type_filling = ORDER_FILLING_FOK (0)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134003202
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 290.089 + 0.005 ms
Result.request_id = 10078
Result.retcode_external = 0
FL      0       23:02:46.797    Trades  '5122740': buy limit 1.00 Si-3.17 at 56288
GG      0       23:02:46.849    Trades  '5122740': accepted buy limit 1.00 Si-3.17 at 56288
PR      0       23:02:46.852    Trades  '5122740': order #134003202 buy limit 1.00 / 1.00 Si-3.17 at market done in 54.423 ms (0.342 ms on server)
PR      0       23:02:46.854    Trades  '5122740': cancel order #134003202 buy limit 1.00 Si-3.17 at 56288
LL      0       23:02:47.142    Trades  '5122740': accepted cancel order #134003202 buy limit 1.00 Si-3.17 at 56288
CE      0       23:02:47.144    Trades  '5122740': cancel #134003202 buy limit 1.00 Si-3.17 at market done in 290.050 ms (1.400 ms on server)
HH Olhando através do livro de bordo do terminal não deu de forma alguma estas linhas. Tinha de as retirar directamente do ficheiro.
 
Erro [Sem preços] no local
2017.02.14 23:18:41.442 '5122740': failed instant buy 1.00 EURPLN at 4.30632 (deviation: 100) [No prices]

Como é que não há preço, há mesmo um preço no tronco?!

Consulta

2017.02.14 23:18:41.442 Request.action = TRADE_ACTION_DEAL (1)
2017.02.14 23:18:41.442 Request.magic = 0
2017.02.14 23:18:41.442 Request.order = 0
2017.02.14 23:18:41.442 Request.symbol = EURPLN
2017.02.14 23:18:41.442 Request.volume = 1.0
2017.02.14 23:18:41.442 Request.price = 4.30632
2017.02.14 23:18:41.442 Request.stoplimit = 0.0
2017.02.14 23:18:41.442 Request.sl = 0.0
2017.02.14 23:18:41.442 Request.tp = 0.0
2017.02.14 23:18:41.442 Request.deviation = 100
2017.02.14 23:18:41.442 Request.type = ORDER_TYPE_BUY (0)
2017.02.14 23:18:41.442 Request.type_filling = ORDER_FILLING_RETURN (2)
2017.02.14 23:18:41.442 Request.type_time = ORDER_TIME_GTC (0)
2017.02.14 23:18:41.442 Request.expiration = 1970.01.01 00:00:00
2017.02.14 23:18:41.442 Request.comment = My Position
2017.02.14 23:18:41.442 Request.position = 0
2017.02.14 23:18:41.442 Request.position_by = 0
2017.02.14 23:18:41.442 Result.retcode = 10021
2017.02.14 23:18:41.442 Result.deal = 0
2017.02.14 23:18:41.442 Result.order = 0
2017.02.14 23:18:41.442 Result.volume = 0.0
2017.02.14 23:18:41.442 Result.price = 0.0
2017.02.14 23:18:41.442 Result.bid = 0.0
2017.02.14 23:18:41.442 Result.ask = 0.0
2017.02.14 23:18:41.442 Result.comment = No prices 0.028 + 0.000 ms
2017.02.14 23:18:41.442 Result.request_id = 0
2017.02.14 23:18:41.442 Result.retcode_external = 0
2017.02.14 23:18:41.442
2017.02.14 23:18:41.442 SymbolInfoDouble(Symb,::SYMBOL_BID) = 4.30151
2017.02.14 23:18:41.442 SymbolInfoDouble(Symb,::SYMBOL_ASK) = 4.30632
 
fxsaber:
Erro [Sem preços] no local
2017.02.14 23:18:41.442 '5122740': failed instant buy 1.00 EURPLN at 4.30632 (deviation: 100) [No prices]

Como pode não haver preços, mesmo no diário de bordo?!

Recebi recentemente o mesmo erro na minha conta real. Tentei fazer uma encomenda, mas o servidor não a executou.

Estou actualmente a comunicar com o apoio técnico de uma empresa muito famosa na L... Neste momento estou a conversar com o apoio técnico de uma empresa muito conhecida L. (a nossa correspondência é confidencial, não lhe chamarei isso), eles explicam que o tempo de execução no seu servidor de negociação é o mesmo para ordens de saída do MT4 (eles têm o MT4) que foi enviado pelo FIX e é de cerca de 1-6ms. Depois, perguntei-lhes qual foi o tempo gasto em 40-50 ms. no comércio a partir do MT4, desde o momento de enviar a ordem e obter uma resposta cerca de 40-60 ms. Eles encolhem com tolerância, tal como procuram a latência da rede, eu digo-lhes o ping 1-2ms, e eles encolhem novamente. A conclusão é que a parte do servidor do MT4/5 é lenta. Agora novos registos mostram-no. Compreendo que o tempo não pode ser "limpo" como o FIX, mas pelo menos deve ser da mesma ordem.
 
Andrey Dik:
SZY. Neste momento estou a falar com o apoio técnico de uma empresa muito famosa na L... (Não sei porque não lhes vou ligar, explicam que o tempo de execução no seu servidor de negociação é o mesmo que para as ordens que saem do MT4 (têm MT4) que são enviadas pelo FIX e é cerca de 1-6ms. Depois, perguntei-lhes qual foi o tempo gasto em 40-50 ms. no comércio a partir do MT4, desde o momento de enviar a ordem e obter uma resposta cerca de 40-60 ms. Eles encolhem com tolerância, tal como procuram a latência da rede, eu digo-lhes o ping 1-2ms, e eles encolhem novamente. A conclusão é que a parte do servidor do MT4/5 é lenta. Agora novos registos mostram-no. Compreendo que o tempo não pode ser "limpo" como o FIX, mas pelo menos deve ser da mesma ordem.

EM L... tinham em mente que quando recebem uma ordem no seu sistema, o tempo de execução no próprio sistema e o seu envio de volta é minúsculo. Podem obter a encomenda a partir do servidor MT4 ou através do FIX e do seu outro API. O próprio servidor MT4 gasta muitas dezenas de ms para o seu processamento interno, que não está ligado de forma alguma à execução.

Era uma vez o tempo mínimo em MT4 era de 150 ms. Parece que algo foi seriamente afinado, já que se tornou 40-60. Mas o MT5 é visivelmente mais rápido. Agora posso ver nos registos quanto tempo o servidor trabalhou. Tudo o que resta é compreender em que é gasto o tempo principal.

 
Comentários não relevantes para este tópico foram movidos para "CopiarFechar porquê um erro?".
 

Erro de compilação: não pode aceder f() //2

typedef void (*fn)();
#import "Test.ex5"
        void f(); //1
#import
void f() {} //2
void OnStart()
{
        fn g1 = Test::f; //нормально
        fn g2 =       f; //Error: 'f' - cannot resolve function address
}
 
@Slawa, por favor clarifique, existem restrições à escrita dos amortecedores indicadores fora da função OnCalculate()? Será tudo escrito correctamente no caso de buffers de escrita em funções: OnTimer(), OnBookEvent(), OnChartEvent()?

Razão: