Lotes máximos Protección no más de 100
7 respuestas
bobotrade
hace 9 años #113470
Hola,
La función "Lotes máximos" no acepta números superiores a 100
Es un problema con mi broker (FXCM) en el DAX que operan micro lotes sin decimales
Gracias por su ayuda
Mark Fric
hace 9 años #129367
Hola,
¿Puede decirme qué quiere conseguir? ¿Se trata de algún error en el Asistente de EA? Si tu broker no soporta más de 100 lotes me parece una limitación del broker.
Mark
Arquitecto de StrategyQuant
bobotrade
hace 9 años #129389
Hola,
Es un error con el Asistente de EA. Cuando pongo más de 100 lotes en Maximum Lots Protection, el EA no abre posiciones.
Y mi broker FXCM no tiene limitación, puedo abrir manualmente más de 100 lotes sin problema
bobotrade
hace 9 años #129421
nolube
hace 9 años #129436
¿Has probado a poner 999?
Lo siento, no estoy seguro de si esto ayudará o no, ya que realmente no uso el software.
bobotrade
hace 9 años #129453
hola
¿Has probado a poner 999?
Lo siento, no estoy seguro de si esto ayudará o no, ya que realmente no uso el software.
hola, buena idea pero no funciona... :unsure:
¿alguna solución, por favor?
bobotrade
hace 9 años #129576
hola, ¿tiene alguna solución para poner más de 100 lotes?
No puedo utilizar la gestión del dinero y estoy atascado en el desarrollo de mi EA :wacko:
bobotrade
hace 9 años #129582
¿quizás algo que cambiar en el código del EA?
//+------------------------------------------------------------------+ //+ Money Management functions //+------------------------------------------------------------------+ double sqMMGetOrderStopLossDistance(int orderMagicNumber, int orderType) { double openPrice = getOrderPrice(orderMagicNumber); double slSize = getOrderStopLoss(orderMagicNumber, orderType, openPrice); if(slSize == 0) return(0); if(orderType == OP_BUY || orderType == OP_BUYSTOP || orderType == OP_BUYLIMIT) { return(openPrice - slSize); } else { return(slSize - openPrice); } } double sqMMFixedRisk(int orderMagicNumber, int orderType) { Verbose("Computing Money Management for order with Magic Number: ", orderMagicNumber," - fixed risk"); double slSize = sqMMGetOrderStopLossDistance(orderMagicNumber, orderType) * gPointPow; if(slSize <= 0) { Verbose("Computing Money Management - Stop Loss is zero, using Lots if no MM: ", 5.0); return(5.0); } double _riskInPercent = Risk; double _lotsDecimals = 2.0; double _maximumLots = 100.0; double _exchRate = 1.0; if(_riskInPercent < 0 ) { Verbose("Computing Money Management - Incorrect RiskInPercent size, it must be above 0"); return(0); } double riskPerTrade = (_exchRate * AccountBalance() * (_riskInPercent / 100.0)); if(slSize <= 0) { Verbose("Computing Money Management - Incorrect StopLossPips size, it must be above 0"); return(0); } Verbose("Risk per trade: ", riskPerTrade); Verbose("Computing Money Management - SL: ", slSize, ", Account Balance: ", AccountBalance(),", Tick value: ", MarketInfo(Symbol(), MODE_TICKVALUE),", Point: ", MarketInfo(Symbol(), MODE_POINT), ", Lot size: ", MarketInfo(Symbol(), MODE_LOTSIZE),", Tick size: ", MarketInfo(Symbol(), MODE_TICKSIZE)); double tickValue = MarketInfo(Symbol(),MODE_TICKVALUE); double lossPerTick = riskPerTrade / slSize; Verbose("Computed lossPerTick: ",lossPerTick); double lossPerTick2 = lossPerTick; if(Digits == 1 || Digits == 3 || Digits == 5) { lossPerTick2 = 0.1 * lossPerTick; } Verbose("Computing: LossPerTick: ",lossPerTick, ", LossPerTick2: ",lossPerTick2); double lotMM1 = lossPerTick2; if(tickValue 0) { lotMM = lotMM1 - MathMod(lotMM1, lotStep); } else { lotMM = lotMM1; } lotMM = NormalizeDouble( lotMM, _lotsDecimals); if(MarketInfo(Symbol(), MODE_LOTSIZE)==10000.0) lotMM=lotMM*10.0 ; lotMM=NormalizeDouble(lotMM,_lotsDecimals); double Smallest_Lot = MarketInfo(Symbol(), MODE_MINLOT); double Largest_Lot = MarketInfo(Symbol(), MODE_MAXLOT); if (lotMM Largest_Lot) lotMM = Largest_Lot; if(lotMM > _maximumLots) { lotMM = _maximumLots; } Verbose("Computing Money Management - final computed lots: ", lotMM); return (lotMM); }
Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)