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 695

 
jekk:

Bom dia! Por favor, ajude-me a lidar com as ordens pendentes. Por exemplo, eu deveria colocar uma ordem pendente pelo indicador. Como posso escrevê-lo?

Preço = NormalizeDuplo (iMA(Symbol(),TimeFrame_D1, EMA_Period_21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Ponto,Dígitos);// como corrigir isso?

SL = NormalizeDuplo (Ask- StopLoss*Point,Dígitos);

TP = NormalizeDuplo (Nível_plus_1500_D1,Dígitos); // este para o lucro - Nível_plus_1500_D1 - Nível EMA?

OrderSend(Symbol(),OP_BUYLIMIT,Lots,Price,Slippage, SL,TP,NULL,Magic,0,clrLime);


Price =  NormalizeDouble (iMA(Symbol(),PERIOD_D1, EMA_Period_ 21,0,MODE_EMA,PRICE_MEDIAN,0)+1*Point,Digits);// как правильно прописать эту строчку? 
 TP = NormalizeDouble (Level_plus_1500_D1-iMA(Symbol(),PERIOD_D1, 21,0,MODE_EMA,PRICE_MEDIAN,0),Digits); // и эту для профита -  Level_plus_1500_D1 - уровень ЕМА  ?

Leia a ajuda, está tudo lá e é bastante compreensível.

E SL e TP devem ser definidos melhor a partir do preço do pedido (Price), não do mercado, faz mais sentido de alguma forma.

 
evillive:

Leia a ajuda, está tudo lá e é bastante claro.

E é melhor definir SL e TP a partir do preço do pedido (Price ), em vez de a partir do preço de mercado, faz mais sentido.

Obrigado!
 

Tentei usar a função escrita neste artigo https://www.mql5.com/ru/articles/1357. Decidi verificar como as ordens são abertas pelos sinais desta função e escrevi um código simples:

A Metatrader vem com isto:

Não sei o que fazer. Não sei se algo está errado com as citações ou com o código de função.

O código de função está anexado.

Arquivos anexados:
func_ad.mqh  33 kb
 
LBatters:

Olá a todos, podem me ajudar com este problema. tenho trabalhado com a função escrita neste artigo https://www.mql5.com/ru/articles/1357. decidi verificar como os pedidos são abertos pelos sinais desta função e escrevi algum código simples:

Metatrader dá isto a conhecer:

Eu não sei o que fazer com isso.

Anexei o código da função.


Provavelmente não é a mesma função no trailer, não há nada com matrizes neste na linha 59, e o erro está claramente fora da matriz, na linha 59, na segunda captura de tela.
 
evillive:

Provavelmente não é a mesma função no trailer, não há nada com matrizes neste na linha 59, e o erro está claramente fora da matriz, na linha 59, de acordo com a segunda captura de tela.

Não, eu estava apenas comentando, então as linhas se moveram.

Aqui está o que eu compilei.

Arquivos anexados:
func_ad1.mqh  63 kb
 
LBatters:

Não, eu estava apenas comentando, então as linhas se moveram.

Aqui está o que eu compilei.


tente
for (i=2; i<=nBars-2; i++)
 
evillive:

Tente
for (i=2; i<=nBars-2; i++)


ha! agora um comércio se abre e é o fim do teste, não entende por que subtrair 2?
 
LBatters:

ha! agora um comércio se abre e é aí que termina o teste, não entende por que subtrair 2?


Há mais matrizes em linha, provavelmente já tropeça nelas. Ou ainda está reclamando da linha 59?

E a subtração - aritmética é simples - se houver 100 elementos, sua numeração é 0...99 (porque nBars=100, então 99 é esse mesmo nBars-1), e portanto você pode em seu algoritmo contar de 1 (comparando com 0 e 2 barras) a 98 (comparando com 97 e 99 barras), a 99 já sairá da matriz.

 
evillive:


Há mais matrizes em linha, provavelmente já tropeça nelas. Ou ainda está reclamando da linha 59?

E a subtração - aritmética é simples - se houver 100 elementos, sua numeração é 0...99 (99 é seu próprio nBars-1), assim você pode contar de 1 (comparando com 0 e 2 barras) a 98 (comparando com 97 e 99 barras) em seu algoritmo, a 99 você sairá da matriz.


Mas é menor ou igual, ou seja, 99 está incluído, não é? O erro 130 aparece durante a abertura do pedido.

 
LBatters:


É menor ou igual, ou seja, 99 está incluído. Não é assim? O erro 130 aparece durante a abertura do pedido.


Chegamos a i=99, este é o último elemento.

if (TempIND[i]<TempIND[i-1] && TempIND[i+1]>=TempIND[i])

Onde está[i+1]?