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 285

 
SpikeOne:

Saudações profissionais de programação!

Tenho uma grande idéia, existe um consultor especializado https://www.mql5.com/ru/code/11030 que verificou e testou a idéia de trabalhar à noite nele.

A idéia é a seguinte: começo meu consultor especializado à meia-noite em Moscou e quando ele chega às 3-4 da manhã, tenho que esperar que os pedidos sejam fechados com um certo lucro, depois de chegar ao lucro, eu o desabilito, e no dia seguinte eu o inicio à meia-noite novamente.

É possível implementar isto? Em caso afirmativo, diga-me em que local do código é possível inserir a verificação das condições de tempo (por exemplo, 3 da manhã) e verificar se a tomada de lucro está fechada.

O resultado deve ser que o Expert Advisor feche pela manhã com lucro.

Primeiro, decida: O que você vai fazer se não houver lucro pela manhã?! (A menos, é claro, que seja "quando há lucro, há manhã")... :)))))))
 
TarasBY:
Primeiro, decida: O que você vai fazer se não houver lucro pela manhã?! (A menos, é claro, que seja "quando os lucros estão lá pela manhã")... :

Eu lhe disse que o testei, de qualquer forma há lucro lá. Meus ajustes não são padrão. Deve ser para que chegue às 3 horas da manhã, espera para ter lucro e desliga a EA.
 
SpikeOne:

Já escrevi que o testei, de qualquer forma há lucro lá. Meus ajustes não são padrão. E deve ser para que chegue às 3 horas da manhã, espera para tirar lucro e fecha o Expert Advisor.

Em termos de lógica de programação, isto é um absurdo.

Há uma possibilidade de tal resultado. Portanto, deve ser previsto. Caso contrário, você poderá ficar com uma situação indefinida, na qual, por exemplo, poderá perder seu depósito.

 
Zhunko:

Em termos de lógica de programação, isto é um absurdo.

Há uma possibilidade de tal resultado. Portanto, deve ser previsto. Caso contrário, pode haver uma situação indefinida na qual, por exemplo, um depósito é perdido.


Se você é um Martin, há sempre a possibilidade de perder o depósito. É possível fazer isso sem considerar que isso é absurdo? Você pode ao menos me mostrar aquele lugar no código onde os pedidos são fechados com lucro, para que eu tenha algo com que começar?
 
SpikeOne:

Se você for um Martin, há sempre a possibilidade de perder o depósito. Você pode ao menos me mostrar o lugar no código onde os pedidos são fechados com lucro, para que eu tenha algo com que começar?

Você pode, é claro! O programador certo levará em conta todos os casos.

 

Quem pode me dizer por que não posso carregar o MT4? Apresentando uma captura de tela do erro.


 
SpikeOne:

Há sempre a possibilidade de perder o depósito sobre um martin, é possível fazer isso sem considerar que é absurdo? Você pode ao menos me mostrar o lugar no código onde os pedidos são fechados com lucro, para que eu tenha um bom começo?


Em um martin, há sempre uma probabilidade de obter o lucro esperado com o lucro do primeiro lote. E se você não tiver sorte, ou ficará sem depósito ou excederá o tamanho máximo permitido do lote.

E vale a pena arriscar tanto dinheiro para ganhar de volta a aposta inicial? Especialmente desde que as Leis de Murphy nunca foram abolidas..... E não é absurdo, é apenas vida prática, não teórica))

 
Se for possível, talvez você possa me ajudar a executar os testes e eu possa provar que o programa funciona com meus dados iniciais e em testes.
 

Bom dia novamente!) Os problemas anteriores com o fechamento foram resolvidos, mas surgiram novas questões. A essência da questão é como comparar as leituras atuais do indicador (particularmente MACD) na barra zero com as leituras do mesmo indicador na primeira e segunda barra (ou seja, as anteriores). Eu realmente não entendo como fazer isso, então eu serei muito grato por qualquer ajuda))))

 
ElhoroS:

Bom dia novamente!) Os problemas anteriores com o fechamento foram resolvidos, mas surgiram novas questões. A essência da questão é como comparar as leituras atuais do indicador (particularmente MACD) na barra zero com as leituras do mesmo indicador na primeira e segunda barra (ou seja, as anteriores). Eu realmente não entendo como fazer isso, então eu serei muito grato por qualquer ajuda))))

   double macd_1=iMACD(Symbol(),Period(),fast_ema,slow_ema,signal,PRICE_CLOSE,1); // макдак на первом баре
   double macd_2=iMACD(Symbol(),Period(),fast_ema,slow_ema,signal,PRICE_CLOSE,2); // макдак на втором баре
Na barra de zero, os dados do indicador não serão fixados. De fato, a cada tique, a barra zero mudará, porque a barra zero ainda não foi formada. Portanto, os dados serão retirados da primeira barra. Se você quiser tirá-lo da barra zero, então troque PRICE_CLOSE para PRICE_OPEN - este é o único preço que não muda na barra zero, mas o indicador será ligeiramente diferente de sua representação padrão - apenas um pouco.
Razão: