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 190

 
zfs:
Eu também preciso do CharToStr, mas ele não copia. Obrigado.

Não o faça. Devemos estar falando de coisas diferentes.
 

Por favor, informe como melhorar a função de fechamento de pedidos se o patrimônio líquido exceder o saldo em uma determinada porcentagem.

Por exemplo, se no momento o patrimônio líquido é igual a 115%, tenho que fechar alguns lotes (pode haver várias ordens com lotes diferentes) para fazer o patrimônio líquido igual a 110% do saldo.

 
Skydiver:

Por favor, informe como melhorar a função de fechamento de pedidos se o patrimônio líquido exceder o saldo em uma determinada porcentagem.

Por exemplo, se no momento o patrimônio líquido é igual a 115%, tenho que fechar alguns lotes (pode haver várias ordens com lotes diferentes) para fazer o patrimônio líquido igual a 110% do saldo.


Realizar várias funções com diferentes implementações de algoritmos. Compare os tempos de funcionamento. Entre aqueles que funcionarão corretamente, você escolhe aquele que funcionará pelo menor tempo - isto é "melhor". Portanto, nada complicado. ;)))))))
 

É possível definir níveis no indicador e personalizar os estilos usando as funções SetLevelValue e SetLevelStyle, mas não sei como chegar à descrição deles. Talvez alguém tenha encontrado e saiba?

 
Desead:

É possível definir níveis no indicador e personalizar os estilos usando as funções SetLevelValue e SetLevelStyle, mas não sei como chegar à descrição deles. Talvez alguém tenha encontrado e saiba?


Se estamos falando de documentação, destaque a palavra em MetEditor e pressione F1. Ou ir online, por exemplo
https://docs.mql4.com/ru/customind/SetLevelStyle
 

Boa tarde. você poderia informar se um pedido já está ou não no lugar certo?

Se não, então coloque

 

Boa tarde!

Você pode me dizer algo? Quando uma ordem de mercado é aberta, seu preço aberto pode ser alterado através de uma função:

bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 

Pergunta - por que precisamos dela? Para que a função OrderProfit() dê resultados diferentes mais tarde em comparação com o preço inicial aberto? Ou esta possibilidade se destina a outra coisa?

(A propósito, a OrderProfit() calcula exatamente a partir do preço de abertura ou a informação é solicitada ao servidor onde é calculada de outra forma? A documentação não diz nada sobre isso).

 
sannin:

Boa tarde. você poderia informar se um pedido já está ou não no lugar certo?

Se não, então coloque

No lugar certo - em que lugar?
 
yan720:

Boa tarde!

Você pode me dizer algo? Quando uma ordem de mercado é aberta, seu preço aberto pode ser alterado através de uma função:

Pergunta - por que precisamos dela? Para que a função OrderProfit() dê resultados diferentes mais tarde em comparação com o preço inicial aberto? Ou esta possibilidade se destina a outra coisa?

(A propósito, a OrderProfit() calcula exatamente a partir do preço de abertura ou a informação é solicitada ao servidor onde é calculada de outra forma? A documentação não diz nada sobre isso).

Só podemos modificar o preço de um pedido pendente. O preço aberto da posição de mercado não pode ser alterado. Seria estranho comprar pão a 20 rublos, voltar para casa e mudar o preço de compra para 5 rublos, e depois na carteira para ver a chegada dos 15 rublos de diferença... Fantástico... ;)

Você pode modificar o preço de parada de uma posição de mercado: Stop Loss e Take Profit.

OrderProfit() devolve o lucro/perda da posição na moeda de depósito. Naturalmente, é calculado a partir do preço de abertura.

 
artmedia70:

Somente o preço do pedido pendente pode ser modificado. O preço de abertura de uma posição de mercado não pode mais ser modificado. Seria estranho comprar pão a 20, voltar para casa e mudar o preço de compra para 5 rublos, e depois ver na carteira a chegada de 15 rublos de diferença... Fantástico... ;)

Você pode modificar o preço de parada de uma posição de mercado: Stop Loss e Take Profit.


Obrigado pela resposta. Eu mesmo fiquei surpreso que tal pergunta tenha surgido. Embora, talvez eu tenha entendido mal o que eu vi e o que causou a pergunta.

Estou analisando o código de outras pessoas agora para ver de que forma (diferente do meu e talvez mais eficiente) certos algoritmos são implementados. Neste momento estou olhando para o notório Ilan 1.6 Expert Advisor (em anexo). Posso ver que foi montado a partir de várias peças e depois reconstruído. Mas a linha 337 contém uma função de parada de trilha definida pelo usuário (embora a bandeira de seu uso seja retirada à força no início). Esta função é chamada na linha 52.

Minha pergunta surge porque a parada móvel mencionada acima modifica as ordens abertas (e pode haver várias delas) por uma parada perdida mantendo seu TakeProfit inicial, mas definindo o mesmo valor (AveragePrice, que é calculado nas linhas 173 e 178) para essas ordens como um preço aberto (segundo parâmetro da função OrderModify).

Ou este parâmetro (preço aberto) é simplesmente ignorado pelo servidor ao modificar uma ordem aberta e o preço pode ser definido para qualquer valor?

Arquivos anexados:
ilan1.6.mq4  20 kb