Erros, bugs, perguntas - página 2095

 

Há um novo insecto no testador de propagação. Está presente no modo visual, bem como no modo padrão (o perito vê as margens infladas).

Pode verificar executando o perito em MA a partir dos exemplos padrão, com parâmetros padrão.

Para algumas datas o spread é alargado de 2-5 para 200-500 para o dia inteiro, das 0:00 às 23:59. Verifiquei-o em 2 empresas de corretagem, o problema provavelmente não está nas cotações mas no próprio testador.

Aqui está um exemplo para a data de 16.10.2017. O teste deve ser realizado a partir de 16.10.2017. No fundo está o terminal com a carta rolada até essa data - a propagação lá está no intervalo normal.

Outro exemplo sobre outro exemplo. OUTRO EXEMPLO DE OUTRA EMPRESA DE CORRETAGEM

Utilizo um Expert Advisor que controla a propagação e são estes 200 a 500 que vê. Como resultado, funciona o dia inteiro sem seguir o algoritmo.

A outra data encontrada é 19.09.2017. O teste foi realizado de Setembro até hoje - cerca de 20-30% dos dias, com uma dispersão das previsões em excesso. Serragem de previsão excessiva até ao ano 2000.

Envio para SD.

PS. Respondido. Será fixado no novo edifício.
 
elibrarius:

...

Envio para SD.

Também à espera de uma resposta sobre esta questão:

Aberto, Início: 2017.12.16 14:36, #1911211

 

OrderSend on MetaQuotes-Demo pendura - por vezes funciona durante alguns segundos, por vezes o guião não pode ser removido (apenas fechando o terminal).

 
Vários erros em TRADE_ACTION_CLOSE_BY
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  MqlTradeRequest Request = {0};
  MqlTradeResult Result;      
      
  Request.action = TRADE_ACTION_CLOSE_BY;
  Request.position = OrderSend(_Symbol, OP_SELL, 0.01, Bid, 100, 0, 0);
  Request.position_by = OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, 0);

  Request.symbol = _Symbol; // Если убрать эту строку, то сообщения в логе изменятся

  Print(OrderSend(Request, Result)); // false
}

Resultado

'7489613': instant sell 0.01 GBPUSD at 1.34334 (deviation: 100)
'7489613': accepted instant sell 0.01 GBPUSD at 1.34334 (deviation: 100)
'7489613': deal #176902665 sell 0.01 GBPUSD at 1.34334 done (based on order #193547458)
'7489613': order #193547458 sell 0.01 / 0.01 GBPUSD at 1.34334 done in 73.458 ms
'7489613': instant buy 1.00 GBPUSD at 1.34342 (deviation: 100)
'7489613': accepted instant buy 1.00 GBPUSD at 1.34342 (deviation: 100)
'7489613': deal #176902666 buy 1.00 GBPUSD at 1.34342 done (based on order #193547459)
'7489613': order #193547459 buy 1.00 / 1.00 GBPUSD at 1.34342 done in 76.044 ms
'7489613': failed close position #193547459 buy 0.99 GBPUSD by position #193547458 [Invalid request]


Na realidade, tudo se sobrepõe perfeitamente, mas apenas nos registos existem mensagens erradas, e o retorno da OrderSend é negativo. Se remover a linha realçada na fonte, pode ver uma mensagem completamente inadequada nos registos.

 

ME Styler bug MT4/MT5

 #define  f(x) x   //пробел вначале строки и перед конечным выражением
#define  f(x) x    //стилизатор удалил пробел в начале строки. Пробел перед конечным выражением остался

 #define  f(x) (x)   //пробел вначале строки и перед конечным выражением, ЗАКЛЮЧЕННЫМ В СКОБКИ
#define  f(x)(x) //стилизатор удаляет не только пробел в начале строки, но и разделяющий пробел между аргументом и конечным выражением. 

//В итоге компилятор выдает ошибку во втором случае
//'(' - unexpected in macro definition

 

Reais carrapatos M1. Quando o spread é negativo na janela de dados do testador (modo vis.), o spread torna-se incorrecto. O seu servidor, 2017.10.23 01:00 e 01:01 minutos

Fez um Consultor Especialista que verifica a propagação. Quando a propagação é negativa, o Expert Advisor vê a propagação errada, - aumentada em 1. A imagem mostra -1 em EA, -2 no gráfico. Se a propagação for positiva, tudo está correcto no Expert Advisor.

O spread em carraças reais pode ser muito diferente do spread do preço de abertura. Aqui está um exemplo com uma diferença de 39 pts. 2017.10.23 00:53
Sobre os preços de abertura:


Em
carraças reais:

Algo que eu pensava que devia corresponder em ambos os modos.

 
elibrarius:

Fiz um Consultor Especialista que verifica a propagação. Quando o spread é negativo, o Expert Advisor vê o spread errado - aumentado em 1. Imagem de ecrã mostra -1 no Expert Advisor, -2 no gráfico. Quando a propagação é positiva, tudo está correcto no Expert Advisor.

Tenho a certeza que cometeu um erro no código ao calcular o spread. Se não o encontrar, por favor mostre o código.

 

O que aconteceu às funções Copiar...? ? anteriormente costumavam devolver as séries cronológicas, mas agora não o fazem:


Em princípio não é difícil expandir a indexação de matriz por si só, mas o código antigo onde eu usava funções que expandem as séries cronológicas após a cópia... provavelmente não vai funcionar agora
 
Konstantin:

o que aconteceu às funções Copiar...? ? costumavam devolver a série cronológica, mas agora não o fazem:


Basicamente, não é difícil expandir a indexação da matriz por si próprio, mas sim o código anterior onde eu usava funções que expandem as séries cronológicas após a cópia... provavelmente não vai funcionar agora

Este era originalmente o caso e está escrito na ajuda.


 
fxsaber:

Tenho a certeza de que cometeu um erro no código ao calcular o spread. Se não o encontrar, mostre-me por favor o código.

Hm. Encontre-o ))))

int OnInit()
  {
   return(INIT_SUCCEEDED);
}

void OnTick()
  {
  int s[];
  CopySpread(_Symbol,_Period,0,1,s);
  Print(s[0]);
  }