Errores, fallos, preguntas - página 1739
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
¿Entiendo correctamente que la modificación de órdenes a través de SB no funcionará en un intercambio?
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
No se ha fijado.
//| Get the property value "ORDER_TYPE_FILLING" |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const
{
return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING));
}
Devuelve SIEMPREENUM_ORDER_TYPE_FILLING::ORDER_FILLING_RETURN en el comprobador.
El relleno no está fijado.
Así que si usted establece el llenado en OrderModify a través de COrderInfo::TypeFilling(), entonces en RoboForexEU-MetaTrader 5 habrá un error lógico [Modo de llenado no soportado]. Sin embargo, este error no se produce en MetaQuotes-Demo - ¿servidor del desarrollador mal configurado?
¿Entiendo correctamente que la modificación de órdenes a través de SB no funcionará en un intercambio?
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
No es así.
Que no cunda el pánico.
{
protected:
MqlTradeRequest m_request; // request data
MqlTradeResult m_result; // result data
MqlTradeCheckResult m_check_result; // result check data
bool m_async_mode; // trade mode
ulong m_magic; // expert magic number
ulong m_deviation; // deviation default
ENUM_ORDER_TYPE_FILLING m_type_filling;
ENUM_ACCOUNT_MARGIN_MODE m_margin_mode;
//---
ENUM_LOG_LEVELS m_log_level;
public:
Que no cunda el pánico.
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
//| Modify specified pending order |
//+------------------------------------------------------------------+
bool CTrade::OrderModify(const ulong ticket,const double price,const double sl,const double tp,
const ENUM_ORDER_TYPE_TIME type_time,const datetime expiration,const double stoplimit)
{
//--- check stopped
if(IsStopped(__FUNCTION__))
return(false);
//--- clean
ClearStructures();
//--- setting request
m_request.action =TRADE_ACTION_MODIFY;
m_request.magic =m_magic;
m_request.order =ticket;
m_request.price =price;
m_request.stoplimit =stoplimit;
m_request.sl =sl;
m_request.tp =tp;
m_request.type_time =type_time;
m_request.expiration =expiration;
//--- action and return the result
return(OrderSend(m_request,m_result));
}
Espera, ¿por qué especificar el tipo de relleno al modificar?
De la documentación:
Orden de operación para modificar los niveles de StopLoss y/o TakeProfit. Requiere que se especifiquen 4 campos (jamba:)):
Espera, ¿por qué especificar el tipo de relleno al modificar?
De la documentación:
No creas todo lo que dice. Debe especificarse. De lo contrario, no funcionará.
No puedo usar SB. Pero puedes probar OrderModify en exchange para asegurarte del fallo.
No creas todo lo que está escrito. Debe especificar. De lo contrario, no funcionará.
Estoy totalmente de acuerdo, pero...
No sé cómo usar SB. Pero puedes probar OrderModify en la bolsa para asegurarte del fallo.
Pero MQ incluso ha añadido un ejemplo en el documento... No está indicado allí...
También hay un Asesor Experto que escribí, que funciona en la bolsa y utiliza dicho código:
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
Pero MQ incluso ha añadido un ejemplo al documento... No especifica...
Se equivocan, gente. Tenemos que corregir tanto a doc como a SB.
Además, hay un EA que escribí que funciona en una bolsa y que utiliza dicho código:
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
¿Y en el probador?
Se equivocan, gente. Hay que corregir tanto el doc como el SB.
Se equivocan, gente. Hay que corregir tanto el doc como el SB.
¿Y en el probador?