¿Por qué usa normalizeddouble para los precios? Es una tontería (¿por qué quiere normalizar oferta/demanda/precio de apertura de pedido/precio de cierre de pedido/etc.?), véase también
http://forum.mql4.com/45425ver también
http://forum.mql4.com/45425#564188si desea normalizar los precios, puede utilizar la siguiente función:/El precio de apertura de la orden pendiente debe ajustarse para que sea un múltiplo del tamaño del tick, no del punto, y en los metales no son iguales. Código insertado double NormalizePrice(símbolo de cadena, precio doble) { if (price==0.00000000) return(0.0); doble ts = MarketInfo(símbolo,MODE_TICKSIZE); return(MathRound(precio/ts)*ts ); } Lo mismo para los tamaños de lote:/El tamaño del lote debe ajustarse para que sea un múltiplo de lotstep, que puede no ser una potencia de diez en algunos corredores/vea también la función original de WHRoeder,
http://forum.mql4.com/45425#564188, código insertado fxdaytrader double NormalizeLots(símbolo de cadena, lotes dobles) { if (MathAbs(lots)lt;MarketInfo(símbolo,MODE_MINLOT)) return(MarketInfo(símbolo,MODE_MINLOT)); if (MathAbs(lots)gt;MarketInfo(símbolo,MODE_MAXLOT)) return(MarketInfo(símbolo,MODE_MAXLOT)); doble ls = MarketInfo(símbolo,MODE_LOTSTEP); lotes=MathRound(lots/ls)*ls; return(MathMin(MarketInfo(símbolo,MODE_MAXLOT),Ma thMax(MarketInfo(símbolo,MODE_MINLOT),lotes)));/verifica si hay lotes gt;= min. lotes lt;= máx. lotes, fxdaytrader }//doble NormalizeLots(símbolo de cadena, lotes dobles) {