Que sea todo dentro del mismo par de divisas, EurUsd por ejemplo. Ambos están abiertos en Buy.
Por lo general, se trata de tareas diferentes, en pares diferentes y en el mismo. En un par de divisas con el mismo lote 2 órdenes/posiciones tienen diferentes opciones: no cruzar y cruzar. Por encima de la que está por debajo es pérdida o beneficio dependiendo de la distancia a las órdenes. Para una dirección entre, uno en beneficio el otro en pérdida, arriba abajo ambos en beneficio o en pérdida.
Debe ser ajustado de acuerdo a sus preferencias. Si el volumen es el mismo, debe cerrar el mismo volumen. Si no es el mismo, debe calcular la cantidad de dinero en ganancia, la cantidad de pérdida en el dinero, calcular la relación de ganancia a pérdida, multiplicar esta relación por el número de lotes de una posición perdedora y cerrar esta parte.
Se trata de tareas diferentes, en pares diferentes y en el mismo par. En una, con el mismo lote 2 órdenes/posiciones tienen opciones divergentes no cruzadas, y cruzadas. el precio entre las no cruzadas es pérdida para ambas, las cruzadas tienen beneficio sólo entre las órdenes. Por encima de la que está por debajo es pérdida o beneficio dependiendo de la distancia a las órdenes. Para una dirección entre, uno en beneficio el otro en pérdida, arriba abajo ambos en beneficio o en pérdida.
Debe ser ajustado de acuerdo a sus preferencias. Si el volumen es el mismo, debe cerrar el mismo volumen. Si no es el mismo, debe calcular la cantidad de dinero en ganancia, la cantidad de pérdida en el dinero, calcular la relación de ganancia a pérdida, multiplicar esta relación por el número de lotes de una posición perdedora y cerrar esta parte.
Así es) Eso es exactamente lo que quiero. Para calcular y cerrar la parte perdedora. ¿Algún ejemplo? Lo intenté mientras, me confundí y fallé.
Así es) Eso es exactamente lo que quiero. Calcular y cerrar la parte perdedora. ¿Algún ejemplo? Lo intenté durante un tiempo, me confundí, no funcionó.
Si no me equivoco, estas funciones se solapan en una dirección, es decir, comprar o vender. En resumen, hay que modificarlo.
Así es) Eso es exactamente lo que quiero. Calcular y cerrar la parte perdedora. ¿Algún ejemplo? Lo intenté mientras, me confundí, no funcionó.
¿Qué pasa con el vail? ¿Qué tiene de malo? Necesitas el código. Yo no tengo esos problemas y, francamente, no creo que ese enfoque de la gestión del dinero sea acertado.
¿Pueden decirme cómo cargar 2 indicadores iguales con las mismas intenciones en una ventana en MT5? He probado con INDICATOR_SHORTNAME para cambiarlo cada vez que se inicia, pero no sirve de nada. ¿Tal vez haya otra manera?
Aleksandr Kononov #: Por favor, aconsejar cómo cargar 2 mismos indicadores con los mismos intentos en una ventana en MT5. He probado con INDICATOR_SHORTNAME, debería cambiarlo cada vez que lo inicie. ¿Tal vez haya otra manera?
¿Por qué necesitas un vail? ¿Qué tiene de malo? Necesitas un código. Yo no tengo este tipo de problema. Y francamente no creo que este enfoque sea sabio para un administrador de dinero
Buenas tardes. He leído sobre Vail. No sé sumar ni restar. No puedo decir nada sobre la gestión del dinero, no lo he probado. He adjuntado la última versión. Pero ya me he hecho un lío) Orden1 (2) el beneficio de la orden seleccionada Orden1(3) el lote de la orden seleccionada
¿Y sin intervención manual? En mt4 tengo indicadores que se ponen uno encima de otro y no sé por qué. Me gustaría que fuera igual en mt5, y en general me gustaría entender de qué depende.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Que sea todo dentro del mismo par de divisas, EurUsd por ejemplo. Ambos están abiertos en Buy.
Por lo general, se trata de tareas diferentes, en pares diferentes y en el mismo. En un par de divisas con el mismo lote 2 órdenes/posiciones tienen diferentes opciones: no cruzar y cruzar. Por encima de la que está por debajo es pérdida o beneficio dependiendo de la distancia a las órdenes. Para una dirección entre, uno en beneficio el otro en pérdida, arriba abajo ambos en beneficio o en pérdida.
Debe ser ajustado de acuerdo a sus preferencias. Si el volumen es el mismo, debe cerrar el mismo volumen. Si no es el mismo, debe calcular la cantidad de dinero en ganancia, la cantidad de pérdida en el dinero, calcular la relación de ganancia a pérdida, multiplicar esta relación por el número de lotes de una posición perdedora y cerrar esta parte.
función
Se trata de tareas diferentes, en pares diferentes y en el mismo par. En una, con el mismo lote 2 órdenes/posiciones tienen opciones divergentes no cruzadas, y cruzadas. el precio entre las no cruzadas es pérdida para ambas, las cruzadas tienen beneficio sólo entre las órdenes. Por encima de la que está por debajo es pérdida o beneficio dependiendo de la distancia a las órdenes. Para una dirección entre, uno en beneficio el otro en pérdida, arriba abajo ambos en beneficio o en pérdida.
Debe ser ajustado de acuerdo a sus preferencias. Si el volumen es el mismo, debe cerrar el mismo volumen. Si no es el mismo, debe calcular la cantidad de dinero en ganancia, la cantidad de pérdida en el dinero, calcular la relación de ganancia a pérdida, multiplicar esta relación por el número de lotes de una posición perdedora y cerrar esta parte.
Así es) Eso es exactamente lo que quiero. Para calcular y cerrar la parte perdedora.
¿Algún ejemplo?
Lo intenté mientras, me confundí y fallé.
función
Así es) Eso es exactamente lo que quiero. Calcular y cerrar la parte perdedora.
¿Algún ejemplo?
Lo intenté durante un tiempo, me confundí, no funcionó.
Si no me equivoco, estas funciones se solapan en una dirección, es decir, comprar o vender. En resumen, hay que modificarlo.
//=========================================================================================================================================// // Функция расчета текущего состояния по открытым ордерам // //=========================================================================================================================================// //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double CurrentCondition(string OrdType, string inf) { int Pos = 0; double result = 0, Count = 0, AveragePrice = 0, profit = 0; double LastPriceBuy, LastPriceSell, ProfitBuy, ProfitSell, SumProfit; for(int cnt = 0; cnt < OrdersTotal(); cnt++) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && (OrderMagicNumber() == MagicNumber || MagicCheck())) { if(OrderType() == OP_SELL || OrderType() == OP_BUY) { if(inf == "Lpos") { profit = OrderProfit() ; Pos = OrderTicket() ; if(profit > 0 && profit > Lprofit) { Lprofit1 = Lprofit ; Lpos1 = Lpos ; Lprofit = profit ; //макс значение Lpos = Pos ; } if(profit < 0 && profit < Cprofit) { Cprofit = profit ; //мин значение Cpos = Pos ; } } SumProfit += OrderProfit() + OrderSwap() + OrderCommission() ; if(inf == "CurrentDrawdown") result = MathMax((AccountBalance() + AccountCredit() - AccountEquity()) / (AccountBalance() + AccountCredit()) * 100, 0); if(inf == "CurrentUrov" && AccountMargin() > 0) result = AccountEquity() / AccountMargin() * 100 ; if(inf == "TotalOrd") result++ ; if(OrdType == "Buy") { if(OrderType() == OP_BUY) { if(inf == "TotalBuy") result++ ; if(inf == "LastLotBuy") result = OrderLots() ; if(inf == "SumLotBuy") result += OrderLots() ; AveragePrice += OrderOpenPrice() * OrderLots() ; Count += OrderLots() ; LastPriceBuy = OrderOpenPrice() ; ProfitBuy += OrderProfit() + OrderSwap() + OrderCommission() ; if(AveragePrice > 0 && Count > 0) { if(inf == "CalculateAveragePriceBuy") return(NormalizeDouble(AveragePrice / Count, Digits)); } else return(0); } } if(OrdType == "Sell") { if(OrderType() == OP_SELL) { if(inf == "TotalSell") result++ ; if(inf == "LastLotSell") result = OrderLots() ; if(inf == "SumLotSell") result += OrderLots() ; AveragePrice += OrderOpenPrice() * OrderLots() ; Count += OrderLots() ; LastPriceSell = OrderOpenPrice() ; ProfitSell += OrderProfit() + OrderSwap() + OrderCommission(); if(AveragePrice > 0 && Count > 0) { if(inf == "CalculateAveragePriceSell") return(NormalizeDouble(AveragePrice / Count, Digits)); } else return(0); } } } } } } if(inf == "Lpos") return(Lpos) ; //Ордер с наибольшим профитом if(inf == "Cpos") return(Cpos) ; //Ордер с наименьшим профитом if(inf == "LastPriceBuy") return(NormalizeDouble(LastPriceBuy, Digits)) ; if(inf == "LastPriceSell") return(NormalizeDouble(LastPriceSell, Digits)) ; if(inf == "ProfitBuy") return(NormalizeDouble(ProfitBuy, 2)) ; if(inf == "ProfitSell") return(NormalizeDouble(ProfitSell, 2)) ; if(inf == "SumProfit") return(NormalizeDouble(SumProfit, 2)) ; return(result) ; } //=========================================================================================================================================// // Перекрытие ордеров // //=========================================================================================================================================// //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void CheckOverlapping() { Lpos = 0; Cpos = 0; Lprofit = 0; Cprofit = 0; Lpos = CurrentCondition("", "Lpos"); Cpos = CurrentCondition("", "Cpos"); if(totalord >= LeadingOrder) { if(Lprofit > 0 && Lprofit1 <= 0 && Cprofit < 0) { if(Lprofit + Cprofit > 0 && (Lprofit + Cprofit) * 100 / Lprofit > ProfitPersent) { Lpos1 = 0; CloseSelectOrder(); } } else if(Lprofit > 0 && Lprofit1 > 0 && totalord > LeadingOrder && Cprofit < 0) { if(Lprofit + Lprofit1 + Cprofit > 0 && (Lprofit + Lprofit1 + Cprofit) * 100 / (Lprofit + Lprofit1) > SecondProfitPersent) CloseSelectOrder(); } } } //=========================================================================================================================================// // Перекрытие ордеров // //=========================================================================================================================================// //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int CloseSelectOrder() { if(Info) Print("Функция перекрытия ордеров."); int error = 0; int error1 = 0; int error2 = 0; int Result = 0; int Slippage = 2 * MarketInfo(Symbol(), MODE_SPREAD); // ---------------------- последний ----------------------- while(error1 == 0) { RefreshRates(); int i = OrderSelect(Lpos, SELECT_BY_TICKET, MODE_TRADES); if(i != 1) { Print("Ошибка! Невозможно выбрать ордер с наибольшим профитом. Выполнение перекрытия отменено."); return (0); } if(OrderSymbol() == Symbol() && (OrderMagicNumber() == MagicNumber || MagicCheck())) { if(OrderType() == OP_BUY) { error1 = (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Blue)); if(error1 == 1) { if(Info) Print("Лидирующий ордер закрыт успешно."); Sleep(500); } else { Print("Ошибка закрытия лидирующего ордера, повторяем операцию. "); } } // ----------------------------------------------------- if(OrderType() == OP_SELL) { error1 = (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Red)); if(error1 == 1) { if(Info) Print("Лидирующий ордер закрыт успешно"); Sleep(500); } else { Print("Ошибка закрытия лидирующего ордера, повторяем операцию. "); } } } } // ---------------------- пред последний ----------------------- if(Lpos1 != 0) { while(error2 == 0) { RefreshRates(); i = OrderSelect(Lpos1, SELECT_BY_TICKET, MODE_TRADES); if(i != 1) { Print("Ошибка! Невозможно выбрать пред ордер с наибольшим профитом. Выполнение перекрытия отменено."); return (0); } if(OrderSymbol() == Symbol() && (OrderMagicNumber() == MagicNumber || MagicCheck())) { if(OrderType() == OP_BUY) { error2 = (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Blue)); if(error2 == 1) { if(Info) Print("Пред Лидирующий ордер закрыт успешно."); Sleep(500); } else { Print("Ошибка закрытия пред лидирующего ордера, повторяем операцию. "); } } // ----------------------------------------------------- if(OrderType() == OP_SELL) { error2 = (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Red)); if(error2 == 1) { if(Info) Print("Пред Лидирующий ордер закрыт успешно"); Sleep(500); } else { Print("Ошибка закрытия Пред лидирующего ордера, повторяем операцию. "); } } } } } // ----------- выбранный (обычно с наименьшим профитом ) ----------- while(error == 0) { RefreshRates(); i = OrderSelect(Cpos, SELECT_BY_TICKET, MODE_TRADES); if(i != 1) { Print("Ошибка! Невозможно выбрать ордер с наименьшим профитом. Выполнение перекрытия отменено."); return (0); } if(OrderSymbol() == Symbol() && (OrderMagicNumber() == MagicNumber || MagicCheck())) { if(OrderType() == OP_BUY) { error = (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Blue)); if(error == 1) { if(Info) Print("Перекрываемый ордер закрыт успешно."); Sleep(500); } else { Print("Ошибка закрытия перекрываемого ордера, повторяем операцию. "); } } // -------------------------------------------------- if(OrderType() == OP_SELL) { error = (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Red)); if(error == 1) { if(Info) Print("Перекрываемый ордер закрыт успешно."); Sleep(500); } else { Print("Ошибка закрытия перекрываемого ордера, повторяем операцию. "); } } } } Result = 1; return (Result); }Así es) Eso es exactamente lo que quiero. Calcular y cerrar la parte perdedora.
¿Algún ejemplo?
Lo intenté mientras, me confundí, no funcionó.
¿Qué pasa con el vail? ¿Qué tiene de malo? Necesitas el código. Yo no tengo esos problemas y, francamente, no creo que ese enfoque de la gestión del dinero sea acertado.
Por favor, aconsejar cómo cargar 2 mismos indicadores con los mismos intentos en una ventana en MT5. He probado con INDICATOR_SHORTNAME, debería cambiarlo cada vez que lo inicie. ¿Tal vez haya otra manera?
Consigue otra entrada sin valor y cámbiala.
¿Por qué necesitas un vail? ¿Qué tiene de malo? Necesitas un código. Yo no tengo este tipo de problema. Y francamente no creo que este enfoque sea sabio para un administrador de dinero
Buenas tardes. He leído sobre Vail. No sé sumar ni restar.
No puedo decir nada sobre la gestión del dinero, no lo he probado.
He adjuntado la última versión. Pero ya me he hecho un lío)
Orden1 (2) el beneficio de la orden seleccionada
Orden1(3) el lote de la orden seleccionada
Consigue otra entrada sin valor y cámbiala.
¿Y sin intervención manual? En mt4 tengo indicadores que se ponen uno encima de otro y no sé por qué. Me gustaría que fuera igual en mt5, y en general me gustaría entender de qué depende.