[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 422

 
klopp:
Cavalheiros programadores! Por favor, ajude-me a escrever um Expert Advisor baseado no indicador i-Regr.
O princípio é idioticamente simples...
Quando o valor da linha superior (valor2) do indicador está acima de 1,43, há um negócio de venda, quando o valor da linha inferior (valor3) do indicador está abaixo de 1,40, a venda é fechada e um
compra é feita, que é fechada quando o valor2 está acima de 1,43. Os valores 1,40 e 1,43 eu escolhi aproximadamente, porque
precisa ajustar dependendo do tempo, por isso é desejável que eles possam ser alterados nas propriedades da EA, ao invés de no programa, porque eu não sou tão bom em programação.

Obrigado antecipadamente a quem responder.

Depois de ler seu intercâmbio, decidi me chamar de idiota. Como este é um ramo de ajuda para aqueles que tentam se programar, então meu preço é 100 USD e três horas após o pagamento no WebMoney você tem um EA, que funcionará de verdade (não um brinquedo para a demonstração). Entre em contato comigo na área pessoal.

ZS. Completamente esquecido - a negociação é apropriada e encorajada (para cima, é claro)

 

O indicador é anexado ao mesmo gráfico que a EA, eu pego os dados do indicador, que depois processo na EA. A questão é que eu preciso obter dados do indicador não apenas sobre o par cujo gráfico está aberto, mas também sobre 4 a 5 outros pares.
Como implementar isto? Como fazer para que seja possível testá-lo no testador de estratégia?

 
nuan:

O indicador é anexado ao mesmo gráfico que a EA, eu pego os dados do indicador e então eles são processados na EA. A questão é que preciso obter os dados do indicador não apenas para o par de moedas cujo gráfico está aberto, mas também para 4-5 pares.
Como implementar isto? Como fazer para que seja possível testá-lo no testador de estratégia?

aqui https://docs.mql4.com/ru/indicators/iCustom

especificar o par necessário e o período de tempo necessário como parâmetro símbolo de seqüência de caracteres, no período de tempo - o indicador não precisa ser anexado ao gráfico

o multiset não é testado no testador, apenas no MT5 (MQL5)

 
Muito obrigado!
 
KONDOR:


A sugestão é boa, obrigado, MAS ESTÁ DURANTE O TRABALHO!! A pergunta está aberta

"Eu tenho um EA, como posso fazer entender que um pedido previamente feito por ele (incluindo um pedido pendente) não existe mais (por vários motivos - ele acionou sl ou TP ou foi apagado manualmente), ou seja, como fazer com que ele pergunte se o pedido está vivo ou não. Os comandos que estão no editor retornam valores, mas aqui o valor não é claro.

 

Qual é o erro, por que não está funcionando. Eu gostaria de traçar uma linha de 0 a 24 horas por preço DnPrice

se (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //resignar linhas
{
Print("error: can't create Down! code #",GetLastError());
retorno(0);
}

ObjectSet("Down",OBJPROP_COLOR,Red);

 
Stells:

Qual é o erro, por que não está funcionando. Quero traçar uma linha de 0 a 24 horas ao preço de DnPrice

se (!ObjectCreate("Down",OBJ_TREND,0,0:00,DnPrice,24:00)) //resignar linhas
{
Print("error: can't create Down! code #",GetLastError());
retorno(0);
}

ObjectSet("Down",OBJPROP_COLOR,Red);

https://docs.mql4.com/ru/basis/types/datetime

bool ObjectCreate( nome da string, tipo int, janela int, datatime1, preço duplo1, datatime2=0, preço duplo2=0, datatime3=0, preço duplo3=0)

 
bercut0077:

A sugestão é boa, obrigado, MAS ESTE É UM TRABALHO PERMITIDO!! a pergunta está aberta

"Eu tenho um EA, como posso fazer entender que um pedido previamente feito por ele (incluindo um pedido pendente) não existe mais (por vários motivos - ele acionou sl ou TP ou foi apagado manualmente), ou seja, como fazer com que ele pergunte se o pedido está vivo ou não. Os comandos que existem no editor retornam valores, mas aqui o valor não é claro.


É muito fácil - há uma função OrderHistoryTotal - percorrer a história e ver se a ordem com o mágico requerido está na história, significa que está fechada ou apagada.

Poderíamos também acrescentar algumas condições no ciclo de classificação das ordens históricas. Por exemplo, se a hora de fechamento do pedido for menor do que a hora de abertura de hoje, ignoraremos tal pedido. Como resultado, o Expert Advisor peneirará pedidos que foram fechados/apagados apenas hoje.

 
nuan:
ZZZEROXXX, por que deveria ter lucro?

Porque se você virar o gráfico, o gráfico cresce )))) Não creio que se trate apenas da propagação, se assumirmos que não há muitas transações, então a propagação não desempenha um papel decisivo na rentabilidade.
 

Diga-me, para uma ordem remota, é possível saber se foi fechada na TakeProfit ou não?

Posso usar o

duplo OrderTakeProfit( )
Retorna o preço de fechamento quando a margem de lucro (take profit) para a ordem atualmente selecionada for atingida
A ordem deve ser pré-selecionada usando a função OrderSelect().
?

Podemos criar uma condição como esta

for ( i=OrdersTotal();i>0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_HISTORY  );
if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0 ||
   OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderTakeProfit( )>0

Esta função não retornaria mais do que zero para qualquer ordem se estivesse fechada, como qual seria o lucro?