Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 188

 
Vitalie Postolache:

Portanto, a comissão não tem nada a ver com pontos de preço. Ela é cobrada no pedido, independentemente do número de pips que o preço tenha passado durante a vida útil do pedido. Sim, podemos convertê-lo em pontos, mas ele será um pouco maior do que o spread. Então, eu perguntei, qual é a utilidade disso? Talvez, os Pipsatters com os alvos menores do que o spread?
Talvez você esteja certo. Se eu transferir comissão + swap(!) então faz mais sentido, e se eu estiver no mercado por um longo tempo, o custo pode ser de até 25 pontos e se eu não adicionar estes pontos ao trail ou Breakeven, eu vou fechar no final com uma perda.
 
Vitaly Muzichenko:
Talvez você esteja certo. Eu transfiro comissão + swap(!), e então faz muito sentido, e se estivermos no mercado por um longo tempo, o custo pode ser de até 25pp, e se não adicionarmos esses pontos para arrasto ou breakeven, acabamos fechando em uma posição negativa
Quanto à troca, concordo plenamente, ela muda com o tempo, especialmente quando a troca é positiva e uma grande encomenda está pendurada por uma semana ou duas. E a comissão aumenta com o tempo? Parece ser uma quantia fixa.
 
Vitalie Postolache:
Concordo completamente com a troca, ela muda com o tempo, especialmente quando a troca é positiva e uma grande encomenda fica pendurada por uma semana ou duas. A comissão cresce com o tempo? Parece ser uma quantia fixa.
A comissão é de aproximadamente 1pp e não muda com o tempo, mas ainda é agradável quando é levada em conta ao mover o Breakeven e Trailing stops, você não precisa adicionar nada manualmente, o programa fará tudo).
 
Vitaly Muzichenko:
A comissão é de aproximadamente 1pp e não muda com o tempo, mas ainda é agradável quando é levada em conta ao mover as paradas do Breakeven e Trawl, não há necessidade de adicionar nada manualmente, o programa fará tudo)


Há algo errado em seu código:

tv=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE);

(OrderCommission()/(tv*OrderLots()))*Point()

Talvez isto seja melhor?

double tv=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE);
int comissionpoints=int(OrderCommission()/tv/OrderLots());
Mas se a comissão for inferior a 1, o código retornará 0. Ou pontos em formato duplo para representar?
 
Vitalie Postolache:


Há algo errado com seu código:

Isto seria melhor?

Não é como é melhor, é como é certo. O código foi puxado de um fio vizinho, e provavelmente está correto)
 
Vitaly Muzichenko:
Não é o caminho certo, é o caminho certo. Eu tirei o código de uma filial vizinha e provavelmente está correto)


Bem, parece mais correto não multiplicar por Ponto.

Se o preço de uma ordem de 1 lote se move por 1 pip, então seu lucro será alterado por: OnePipCharge = Tickvalue * 1Lot * 1Point. Daqui derivamos o número de pips, se o valor na moeda base for conhecido: Pips = Carga/Lotes/Tickvalue.

Não é assim?

 

Voltando ao meu assunto, de longe, doloroso - a modificação da EA especificamente nas contas ndd-accounts.

1. Se já houver ordens abertas no par e uma nova ordem for aberta, então tudo é modificado imediatamente (calculando a média).

2. Se não há ordens e uma nova ordem é aberta, ou seja, uma ordem aparece, ela não é modificada (embora na mesma corretora em uma conta simples tudo é modificado como deveria ser e por vários meses já). O pedido é modificado na próxima vez em que o terminal for aberto. Nos logs gerais não há nada sobre isso e nos logs da MQL4 há um erro 130 (paradas erradas), após uma ordem ter sido aberta.

3. Hoje eu estava observando - a ordem foi aberta, uma sobre o par, mas não foi modificada, as citações para o par estavam chegando (eu supunha tal variante). Lembrando as variantes anteriores, eu reiniciei o terminal, mas o pedido não foi modificado. Quando eu geria o terminal pela manhã (tenho gráficos diários), o pedido foi modificado.

O que pode ser? Minha opinião. Talvez, devêssemos definir diretamente o TP necessário na função de abertura? Bem, a abertura do pedido deve ser feita de acordo com as regras da nd contas e depois o TP e SL devem ser definidos.

 
Youri Lazurenko:

Voltando ao meu assunto, de longe, doloroso - a modificação da EA especificamente nas contas ndd-accounts.

1. Se já houver ordens abertas no par e uma nova ordem for aberta, então tudo é modificado imediatamente (calculando a média).

2. Se não há ordens e uma nova ordem é aberta, ou seja, uma ordem aparece, ela não é modificada (embora na mesma corretora em uma conta simples tudo é modificado como deveria ser e por vários meses já). O pedido é modificado na próxima vez em que o terminal for aberto. Nos logs gerais não há nada sobre isso e nos logs da MQL4 há um erro 130 (paradas erradas), após uma ordem ter sido aberta.

3. Hoje eu estava observando - a ordem foi aberta, uma sobre o par, mas não foi modificada, as citações para o par estavam chegando (eu supunha tal variante). Lembrando as variantes anteriores, eu reiniciei o terminal, mas o pedido não foi modificado. Quando eu geria o terminal pela manhã (tenho gráficos diários), o pedido foi modificado.

O que pode ser? Minha opinião. Talvez, devêssemos definir diretamente o TP necessário na função de abertura? Bem, as regras das nd-accounts parecem ser: primeiro você abre um pedido e depois você define TP e SL.

Você abre uma posição com um TP e SL não zero de uma vez?

Tente primeiro abrir uma posição com uma parada e um take igual a zero, verifique se a posição está aberta e modifique a parada e leve aos valores requeridos.

 
Artyom Trishkin:

Você abre uma posição com uma parada não zerada e toma?

Tente abrir uma posição com uma parada e tomar igual a zero primeiro, verifique se a posição está aberta e modifique sua parada e tome os valores corretos.


É assim que funciona para mim - abrir um pedido com zero TP e SL, e depois modificar (o pedido) com os parâmetros certos de TP e SL. Eu já escrevi, tudo funciona e funcionou bem em outras contas, apenas na ndd tal coisa. Nunca trabalhei com ninguém com contas semelhantes antes, não posso comparar. Talvez seja apenas o bleeping da forex4u, ou talvez todas as contas da ndd. Gostaria de saber, para maiores informações.
 
Vitalie Postolache:


Bem, parece mais correto não multiplicar por Ponto.

Se o preço de um pedido de 1Lot se move por 1 pip, seu lucro mudará para: OnePipCharge = Tickvalue * 1Lot * 1Point. A partir daqui, obtenha o número de pips se o valor na moeda base for conhecido: Pips = Carga/Lotes/Tickvalue.

Não é?

Qual é a diferença

Pips = Carga/Lotes/Tickvalue em números específicos 8/2/4 = 1

ou

Pips = Charge/(Lots*Tickvalue) em termos concretos 8/(2*4) = 8/8 = 1

Números fracionários também podem ser usados...

Razão: