[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 235

 
Zhunko:
Se o código fonte estiver lá, mas tiver sido alterado, isto é possível. Isto é, mudar o conteúdo da fonte. Se a fonte for perdida ou renomeada, ela não será encontrada.

Obrigado, Vadim. Estou vendo.
 
ikatsko:

Como calcular a margem (fundos necessários para abrir uma ordem com lote N) em diferentes valores do AccountFreeMarginMode


A margem para uma ordem de 1 lote é igual:

   double OneLotMarg =MarketInfo(Symbol(),MODE_MARGINREQUIRED);

Você vai descobrir isso mais tarde.

E você também precisa verificar se você tem fundos livres suficientes:

   double Free = AccountFreeMargin();
   
   if(Lts*OneLotMarg>Free) return(0);
 
DhP:


E você também deve verificar se há fundos suficientes disponíveis:

   double Free = AccountFreeMargin();
   
   if(Lts*OneLotMarg>Free) return(0);

Esta condição é necessária, mas não suficiente... Como entendi, você também tem que considerar o valor do spread, ou seja, você tem que levar em conta a perda que será incorrida imediatamente quando você abrir a ordem correspondente! :))) Ou eu esqueci outra coisa?
 

Eu gostei do roteiro deste indicador, sua simplicidade. por favor, me ajude a criar um roteiro que colocará paradas nestas linhas, passando pelos pedidos.

https://www.mql5.com/ru/code/9588

 
MaxZ:
Esta condição é necessária, mas não suficiente... Como eu entendi, você também deve levar em conta o valor do spread, ou seja, você deve levar em conta a perda que será incorrida imediatamente quando você abrir a ordem correspondente! :))) Ou eu esqueci outra coisa?
Acho que você está certo, mas na prática isso não importa.
 
DhP:
Acho que você está certo, mas na prática isso não importa.

Por exemplo, eu pratico em várias competições. E tem havido situações semelhantes. O erro 134 viria à tona. Mas eu ainda não aperfeiçoei a função de cálculo do lote. Eu era preguiçoso demais... Um pouco mais tarde, o pedido é repetido e a ordem é aberta. E um pouco mais tarde fundimos o depósito de demonstração! :)))

Além disso, esta condição não funcionará quando forem abertas ordens contrárias, quando não houver dinheiro suficiente, mas o lote aberto pode ser compensado por uma ordem contrária.

Algumas nuances e não mais.

 
DhP:
MaxZ:
Esta condição é necessária, mas não suficiente... Como eu entendi, você também tem que considerar o valor do spread, ou seja, você tem que considerar a perda que será incorrida imediatamente quando você abrir a ordem correspondente! :))) Ou talvez eu tenha esquecido algo mais?
Acho que você está certo, mas na prática isso não importa.

Acontece que o fato de uma ordem abrir com uma perda igual ao spread não tem nenhum efeito. Se definirmos Risco = 100%, o pedido é aberto com o máximo volume possível, e AccountFreeMargin() mostra "+" ou "- " (no "Testador de Estratégia") imediatamente após a abertura...

Mas, ao abrir várias ordens, o erro 134 ocorre de tempos em tempos. Ainda não entendo a que se refere o erro... Levo em conta os fundos necessários para abrir ordens opostas pela mesma condição. Isto significa que a ordem oposta será aberta somente quando estivermos no plus e a condição correspondente disparar.

O código é usado para calcular o lote:

double Free    = AccountFreeMargin();
double One_Lot = MarketInfo(Symbol(), MODE_MARGINREQUIRED);      
double Step    = MarketInfo(Symbol(), MODE_LOTSTEP);
newLots = MathFloor(Free*Risk/100/One_Lot/Step)*Step;

p.s.: Não gosto de deixar bloopers próprios...

 

Saudações Cavalheiros!

Por favor, ajude-me a inserir em minha EA a função de fechar pedidos.

A idéia é a seguinte:

1) se o preço de uma ordem de venda aberta se tornar menor que o preço do TP exposto desta ordem, então esta ordem é fechada.

2) se o preço de uma ordem de compra aberta for maior que o preço do conjunto TP para esta ordem, ela será fechada.

Se você puder ajudar, por favor escreva para oniava@gmail.com, estou ansioso para ouvir de você.

Muito obrigado de antemão.

Sinceramente Oleg.


P.S. Você pode fazer um assistente EA separado com um número mágico.

 
belck:

Eu gostei do roteiro deste indicador, sua simplicidade. por favor, me ajude a criar um roteiro que colocará paradas nestas linhas, passando pelos pedidos.

https://www.mql5.com/ru/code/9588

Comece a fazer isso e nós ajudaremos. Isto faz com que pareça "faça-o por mim". Há praticamente tudo o que você precisa lá dentro. Tudo o que resta a fazer é entrar e sair de seus pedidos.
 

Olá a todos. Você pode me dizer como prescrever na EA,

Quando um certo lucro é alcançado, a EA não abre mais uma posição,

Ela só abre quando a EA é iniciada ou reiniciada em seguida.