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
Lo tengo - gracias - los errores casi han desaparecido, pero queda uno:
'OrderCloseBy' - función no definida cPoza13-1.mqh 1885 8
//+------------------------------------------------------------------------------------------------------------------------------------+
//| Возвращает TRUE, если один ордер закрылся другим
//+------------------------------------------------------------------------------------------------------------------------------------+
bool cPoza::closeBy(int ticketB, int ticketA)
{
if(ticketB > 0 && ticketA > 0)
{
if(OrderCloseBy(ticketB, ticketA)) return true;
else Print("Magic=", mMagic, " ",__FUNCTION__, " Встречное закрытие не вышло ticketB=", ticketB, " ticketA=", ticketA, " вызвало ошибку-", _LastError);
}
else return false;
return false;
}
// CloseBy momentos - No he tenido tiempo de hacerlo todavía. Tal vez en el futuro, cuando sea necesario.
// Determinar TP y SL de posiciones cerradas - actualmente (build 1368) MQL5 no sabe como hacer esto.
Escribí la librería para mí, y no uso CloseBy. Por eso no lo he implementado. Tal vez, lo agregue con rapidez.
Como solución temporal, añade estas líneas antes de incluir tu librería
bool OrderCloseBy( const int Ticket, const int Opposite, const color Arrow_Color = clrNONE )
{
return(false);
}
#endif
Es posible, por supuesto. No vi la necesidad.
Al parecer, se debe hacer.También tengo que trabajar activamente con la historia al construir rejillas con promedios, el hecho es que el DC limita el número máximo de órdenes, y si la cuenta tiene 15-20 Asesores Expertos con rejillas, la solución es minimizar algunas de las rejillas en el momento de acercarse al límite de órdenes, respectivamente, tenemos que cavar en la historia para entender el resultado financiero real de la posición.
// CloseBy momentos - No he tenido tiempo de hacerlo todavía. Tal vez en el futuro, cuando sea necesario.
// Determinar TP y SL de posiciones cerradas - actualmente (build 1368) MQL5 no sabe como hacer esto.
Sería muy bueno, gracias. CloseBy es una cosa útil para fijar una parte de una posición en un punto calculado.
También tenemos que trabajar activamente con el historial al construir rejillas con promedios, el hecho es que el CC limita el número máximo de órdenes, y si la cuenta tiene 15-20 Asesores Expertos con rejillas, la solución se ve como el colapso de parte de las rejillas en el momento de acercarse al límite de órdenes, respectivamente, tenemos que cavar en el historial para entender el resultado financiero real de la posición.
// CloseBy momentos - No he tenido tiempo de hacerlo todavía. Tal vez en el futuro, cuando sea necesario.
// Determinar TP y SL de posiciones cerradas - actualmente (build 1368) MQL5 no sabe como hacer esto.
Escribí la librería para mí, y no uso CloseBy. Por eso no lo he implementado. Quizás lo añada en cuanto me ponga al día.
Como solución temporal, añade estas líneas antes de habilitar tu librería
bool OrderCloseBy( const int Ticket, const int Opposite, const color Arrow_Color = clrNONE )
{
return(false);
}
#endif
Gracias - ¡la compilación tuvo éxito en la parte de trabajar con órdenes! Ahora voy a solucionar el resto de los errores - causados por la incompatibilidad de idiomas...
Voy a añadir CloseBy y la aceleración de la historia en la próxima versión. Simplemente no entiendo si esto es en la demanda (biblioteca se utiliza) o simplemente una recomendación por si acaso.
Yo lo uso, hay resultados muy interesantes, pero no lo he usado (la función) en una cuenta real todavía - pronto.
¡Funcionará! Hago todo en el mercado de valores a través de MT4Orders. No me limito por el número de posiciones abiertas.
no puede establecer un stop-loss en la bolsa, pero abre operaciones.
Y en mi opinión, no lo tienes en lib para modificarlo.
Request.type_filling = ORDER_FILLING_RETURN;
Entiendo que hay que añadirlo aquí:
{
MqlTradeRequest Request = {0};
// Se tiene en cuenta el caso en que existe una orden y una posición con el mismo ticket
bool Res = ((Ticket != MT4ORDERS::Order.Ticket) || (MT4ORDERS::Order.Ticket <= OP_SELL)) ?
(MT4ORDERS::ModifyPosition(Ticket, Request) ? true : MT4ORDERS::ModifyOrder(Ticket, Price, Expiration, Request)) :
(MT4ORDERS::ModifyOrder(Ticket, Price, Expiration, Request) ? true : MT4ORDERS::ModifyPosition(Ticket, Request));
if (Res)
{
Request.tp = TP;
Request.sl = SL;
if ((ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(Request.symbol, SYMBOL_TRADE_EXEMODE) == SYMBOL_TRADE_EXECUTION_EXCHANGE)
Request.type_filling = ORDER_FILLING_RETURN;
Res = MT4ORDERS::NewOrderSend(Request);
}
return(Res);
}
no puede fijar un stop-loss en bolsa, pero abre operaciones.
De hecho, esto es casi un bug de los desarrolladores. Añada esta línea
{
const bool Res = ::PositionSelectByTicket(Ticket);
if (Res)
{
Request.action = TRADE_ACTION_SLTP;
Request.position = Ticket;
Request.symbol = ::PositionGetString(POSITION_SYMBOL); // ¡no basta con especificar un billete!
}
return(Res);
}
Y en mi opinión, en lib no se especifica para su modificación.
De hecho, es casi un error de desarrollo. Añade esta línea
{
const bool Res = ::PositionSelectByTicket(Ticket);
if (Res)
{
Request.action = TRADE_ACTION_SLTP;
Request.position = Ticket;
Request.symbol = ::PositionGetString(POSITION_SYMBOL); // ¡no basta con especificar un billete!
}
return(Res);
}