Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1240

 

Boa tarde.

Eu tenho um problema estranho.

Terminal MT4. Há cerca de 15 indicadores em cada gráfico (padrão e autoescrito). Em alguns casos, se eu tentar remover um indicador através da lista de indicadores (Ctrl + i) - o terminal fica pendurado. Ao mesmo tempo, se você tentar remover o mesmo indicador pressionando o botão direito do mouse na linha ou seta desenhada pelo indicador através do buffer e selecionando o item de menu "Remover Indicador" - ele é removido instantaneamente e sem problemas. O mais irritante é que o problema é flutuante: às vezes um indicador fica pendurado na eliminação, outras vezes outro.... o mesmo indicador pendura o terminal, às vezes não.

A este respeito, tenho duas perguntas:

1) o que pode ser conectado com o terminal fica pendurado quando se apaga um indicador via lista de indicadores?

2) qual é a diferença entre os dois métodos de eliminação de indicadores que descrevi acima?

 
satorifx:

Eu tenho um problema estranho

Tente rodar os sete indicadores juntos primeiro, se não houver problemas, então os 8 restantes separadamente. Se houver problemas, divida-os novamente ao meio. Isto irá encontrar um ou dois culpados. Se nada for encontrado, remova um de cada vez de 15. O método de tentativa e erro da caixa preta funcionará se você tiver a habilidade e a paciência.
 
O manipulador de eventos MT5, CHARTEVENT_CUSTOM OnChartEvent () sabe que ele lida com múltiplos fios.

Você pode criar uma lógica thread-safe dentro do manipulador OnChartEvent ()?

Você consegue escrever código orientado a segmentos na MQL5?
 
Por favor, avise! Se eu chamar um indicador personalizado via iCustom em um Expert Advisor, como posso fazer com que os parâmetros de entrada deste indicador sejam exibidos no Expert Advisor? Eu tenho o código fonte indicador. É mesmo complicado?
 
Sayberix:
Por favor, avise! Se eu chamar um indicador personalizado através do iCustom em um Expert Advisor, como posso fazer para que ele exiba seus parâmetros de entrada no Expert Advisor? Eu tenho o código fonte indicador. É mesmo difícil?

Escreva na ordem de enumeração das propriedades, como no indicador

duploiCustom(
símbolo de corda,// nome do símbolo
inttimeframe,// cronograma
nome da cadeia,// pasta indicadora/ nome_do_utilizador
... // lista dos parâmetros de entrada dos indicadores
intmodo,// fonte de dados
intturno// turno
);


Abrir "Parâmetros de entrada" no indicador e copiá-los por sua vez com os valores requeridos

Certifique-se de olhar o tipo da variável, e se for uma string, coloque-a entre aspas, não podemos pular nada:

double val=iCustom(NULL,0,"SampleInd","",240,3,"",clrNONE,clrNONE,1,0);
 
Boa tarde, por que estes artefatos ocorrem? O código de fechamento de emergência não deveria fechar na primeira travessia? Não ocorreram erros de fechamento.
if(MathAbs(Ima-Ima2) <= c && OrdersTotal() != 0)
        {
         OrderSelect(ticket, SELECT_BY_TICKET);
         int a = OrderType();
         RefreshRates();
         if(a == 0)
           {
            OrderClose(ticket, lots, Bid, 20, clrBlack);
           }
         if(a == 1)
           {
            OrderClose(ticket, lots, Ask, 20, clrBlack);
           }
         ticket = 0;
}
Arquivos anexados:
test.png  22 kb
 
Será que a RefreshRates funcionará aqui?

Na função OrderSendamos uma cena, mas a cena foi definida antes do ciclo.


double cena=Ask;

for (int i=0; i<=10; i++)
   {
   RefreshRates();
   int t=OrderSend(OrderSymbol(),OP_BUY,0.1,cena,10,0,0); 
   if (t!=-1) break;
   }
 
igrok333:
Será que a RefreshRates funcionará aqui?

Na função OrderSendamos uma cena, mas a cena foi definida antes do ciclo.


não

 
Igor Makanu:

não

ele tomou o preço antes quando o asc ainda era velho,
e depois só refrescou o asc, certo?
 
Você adivinhou. A variável cena é independente da RefreshRates.
Razão: