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
Obrigado.
'SYMBOL_VOLUME_LIMIT' - identificador não declarado.............
'SymbolInfoDouble' - nenhuma das sobrecargas pode ser aplicada à chamada da função.............
O problema é só comigo?
'SYMBOL_VOLUME_LIMIT' - identificador não declarado.............
'SymbolInfoDouble' - nenhuma das sobrecargas pode ser aplicada à chamada da função.............
É só comigo?
Você pode fazer isso?
Mais uma pergunta sobre a função SeriesInfoInteger().
Ao criar o tópico"AccountInfo... Information relevance", aprendi que há funções que usam dados "armazenados em cache no ambiente do software" e há funções que sempre têm "acesso direto aos dados reais".
A qual categoria de funções pertence a função SeriesInfoInteger()?
O código a seguir é usado na função CheckVolumeValue :
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step);
return(false);
}
Mas ele é mais correto:
int ratio = (int)MathRound((volume-min_volume)/volume_step);
if (MathAbs(ratio*volume_step+min_volume-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step+min_volume);
return(false);
}
Porque a etapa mínima da alteração de volume deve ser contada a partir do valor mínimo.
E talvez o trecho de código
//--- вычислим значение маржи
bool check=OrderCalcMargin(type,Symbol(),lots,last_tick.ask,margin);
deva ser substituído por:
//--- вычислим значение маржи
double price = (type == ORDER_TYPE_BUY || type == ORDER_TYPE_BUY_LIMIT || type == ORDER_TYPE_BUY_STOP || type == ORDER_TYPE_BUY_STOP_LIMIT) ? last_tick.ask : last_tick.bid;
bool check=OrderCalcMargin(type,Symbol(),lots,price,margin);
Devido a alterações na MQL5, agora o volume total máximo permitido para um símbolo pode ser obtido da seguinte forma:
Não use a variante antiga! Era assim:
O artigo foi corrigido e o novo código de especialista Check_Order_And_Volume_Limits.mq5 foi anexado a ele.Prezado administrador
Tentei usar essa função, mas ela retornou 0 em todos os casos.
Minha versão do MT5 é 2280
double orders_volume_on_symbol=PendingsVolume(symbol);dá erro, não existe tal função
E depois que modifico a função para não incluir ordens pendentes, o resultado é 0
Isso ocorre porque o max_volume é 0 e o open_volume é 0;
Por que o volume máximo é 0 se não há posições abertas?
Construir 2715