Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 691

 
Você pode me dizer se um EA escrito para o MT5 pode ser executado no último MT4 e vice versa?
 
borilunad:

Pequeno erro: 0=Fechar, 1=Abrir, o resto está correto.

Aberto não é necessário. A principal tarefa era como colocar variáveis no testador para fazer execuções de EA com base no indicador, que pode ser construído com base em diferentes tipos de preços.

Aqui não devemos esquecer de fixar o preço de 1 a 6, em incrementos de um, quando otimizamos.

 
rambo:
Você pode me dizer se um EA escrito para o MT5 pode ser executado no último MT4 e vice versa?
Se ele se compila, você pode executá-lo, mas funcionará como pretendido, essa é a questão.
 
Forexman77:

Aberto não é necessário. A principal tarefa era como colocar variáveis no testador para fazer execuções de EA com base no indicador, que pode ser construído com base em diferentes tipos de preços.

Aqui não devemos esquecer de fixar o preço de 1 a 6, em incrementos de um, quando a otimização é realizada.


Mas o preço aberto é 1, o preço fechado é 0. Ver Doc!
 
Forexman77:

Se alguém precisar, eu descobri como fazer uma renderização de um indicador de preço sem construções complicadas:

input ENUM_APPLIED_PRICE price=0;

price=iMA(NULL, 0, 1, 0, MODE_SMA, price, i);

Isso pode ser mais fácil, mas se você precisar adicionar mais tipos de preços, é certamente melhor fazer do seu jeito, ou melhor, de uma forma combinada
 
evillive:
Se ele compila, você pode executá-lo, mas se ele funcionará como pretendido é a questão.

obrigado
 
Vinin:

Talvez seja mais fácil, mas se você precisar adicionar mais tipos de preços, é claro que é melhor fazer do seu jeito, ou melhor, um método combinado.

Isso é genial! Eu não tinha pensado neste método.

 
borilunad:

Mas o preço aberto é 1 e o preço fechado é 0. Ver Doc!

Se você usar as enumerações "ENUM_APPLIED_PRICE".

Mas eu não as uso, apenas uso um operador condicional para verificar todas as seis opções de verdade e apenas uma condição sempre funciona.

Por exemplo, a condição funcionou e nós calculamos o preço:

if(price==5)ExtMapBuffer1[i]=((High[i]+Low[i]+Close[i])/3);//рассчитали весь буффер индикатора 
Eu recebo o preço final a ser calculado. Ou seja, eu mesmo preparo os preços e não os retiro da enumeração "ENUM_APPLIED_PRICE".
 
Forexman77:

Isso é genial! Eu não tinha pensado dessa maneira.


Este método só funcionará ao chamar indicadores técnicos, se você tiver que mudar o tipo de preço em outros cálculos através de configurações (digamos, você quer comparar algum valor com Close[i] e passá-lo através do otimizador para (High[i]+Low[i])/2, ou seja, com PRICE_MEDIAN), ele não funcionará.
 
evillive:

Esta forma só funcionará ao chamar indicadores técnicos, se você tiver que mudar o tipo de preço em outros cálculos através de configurações (por exemplo, você compara algum valor com Close[i] e quer passar pelo otimizador para compará-lo com (High[i]+Low[i])/2, ou seja, com PRICE_MEDIAN), ele não funcionará.

Os preços são necessários apenas para calcular o indicador.

Eu o fiz assim:

extern ENUM_APPLIED_PRICE price=PRICE_CLOSE;

for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=iMA(NULL,0,1,0,MODE_SMA,price,i);

Comparou esta variante com a mesma quando da mudança.

Razão: