Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Gracias, señor.
SYMBOL_VOLUME_LIMIT' - identificador no declarado.............
SymbolInfoDouble' - no se puede aplicar ninguna de las sobrecargas a la función call.............
¿Sólo me pasa a mí?
SYMBOL_VOLUME_LIMIT' - identificador no declarado.............
SymbolInfoDouble' - no se puede aplicar ninguna de las sobrecargas a la llamada de función.............
¿Sólo me pasa a mí?
¿Puedes hacerlo?
Una pregunta más sobre la función SeriesInfoInteger().
Al crear el tema"AccountInfo... Relevancia de la información", aprendí que hay funciones que utilizan datos "almacenados en caché en el entorno de software" y hay funciones que siempre tienen "acceso directo a los datos reales".
¿A qué categoría de funciones pertenece la función SeriesInfoInteger()?
El siguiente código se utiliza en la función 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);
}
Pero es más correcto:
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 el paso mínimo de cambio de volumen debe contarse a partir del valor mínimo.
Y quizás el fragmento de código
//--- вычислим значение маржи
bool check=OrderCalcMargin(type,Symbol(),lots,last_tick.ask,margin);
debería sustituirse 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);
Debido a los cambios en MQL5, ahora el volumen global máximo permitido para un símbolo se puede obtener de la siguiente manera:
¡No utilice la variante antigua! Era así:
El artículo ha sido corregido y se le ha adjuntado el nuevo código experto Check_Order_And_Volume_Limits.mq5.Estimado Admin
Trato de usar esta función pero devuelve 0 en todos los casos.
Mi MT5 build es 2280
double orders_volume_on_symbol=PendingsVolume(symbol);da error, no existe tal función
Y después de modificar la función para no incluir órdenes pendientes, da 0
Es porque max_volume es 0 y opened_volume es 0;
¿Por qué el volumen máximo es 0 si no hay posiciones abiertas?
Construir 2715