Precisa de uma fórmula de tamanho LOT de gerenciamento de dinheiro baseada em SL e Risco de Conta! - página 4
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
... nesta parte do código é um problema de nova compilação (erro ---> 'MarketInfo' - tipo de expressão de mudança ilegal) talvez tudo estivesse bem até a atualização para MT4 build 600+ ... mas desde então não funciona mais.
Então, você poderia por favor postar uma versão mais nova ... se, é claro, você ainda estiver por perto.
Eu acho que se você mudar
switch ( MarketInfo( strSymbol, MODE_DIGITS ) )
para
Ele irá compilar ok
... nesta parte do código é um problema de nova compilação (erro ---> 'MarketInfo' - tipo de expressão de mudança ilegal) talvez tudo estivesse bem até a atualização para MT4 build 600+ ... mas desde então não funciona mais.
Então, você poderia por favor postar uma versão mais nova ... se, é claro, você ainda estiver por perto.
https://book.mql4.com/operators/switch
"Os valores de Expressão e de Parâmetros só podem ser os valores do tipo int. A Expressão pode ser uma constante, uma variável, uma chamada de função ou uma expressão. Cada 'caso' de variação pode ser marcado por uma constante inteira, uma constante de caráter ou uma expressão constante. Uma expressão constante não pode incluir variáveis ou chamadas de função".
Mais uma vez, você encontra uma solução mais simples e melhor.
Em minhas diferentes EA, é escrito assim:
extern double Risk_Percent = 3;
extern int StopLoss = 50;
//+------------------------------------------------------------------+
{
double lot = MathCeil(AccountFreeMargin() * Risk_Percent / 1000) / 100;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (MathMin(NormalizeDouble(lot,PipMultiplier),MaxLotSize));
}
//+------------------------------------------------------------------+
if(_Digits==5 || _Digits==3)PipMultiplier=10;
else PipMultiplier=1;
slippage=Slippage*PipMultiplier;
if(_Digits<4)
{
point=0.01;
}
else
{
point=0.0001;
}
return(0);
//+------------------------------------------------------------------+
double lot = MathCeil(AccountFreeMargin() * Risk_Percent / 1000) /