Erros, bugs, perguntas - página 1739
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Compreendo correctamente que a modificação de encomendas através da SB não funcionará numa troca?
//| 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));
}
Não está definido.
//| Get the property value "ORDER_TYPE_FILLING" |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const
{
return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING));
}
SEMPRE retornaENUM_ORDER_TYPE_FILLING::ORDER_FILLING_RETURN no testador.
O enchimento não está definido.
Assim, se definir o preenchimento no OrderModify via COrderInfo::TypeFilling(), então no RoboForexEU-MetaTrader 5 haverá um erro lógico [Unsupported filling mode]. No entanto, este erro não ocorre em MetaQuotes-Demo - servidor do programador configurado erradamente?
Compreendo correctamente que a modificação de encomendas através da SB não funcionará numa troca?
//| 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));
}
Não o faz.
Não entrem em 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:
Não entrem em 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));
}
Espere, porquê especificar o tipo de preenchimento quando se modifica de todo?
A partir da documentação:
Ordem comercial para modificar os níveis StopLoss e/ou TakeProfit. Requer 4 (jamb:)) campos a especificar:
Espere, porquê especificar o tipo de preenchimento quando se modifica de todo?
A partir da documentação:
Não acredite em tudo o que diz. Deve ser especificado. Caso contrário, não funcionará.
Não posso usar SB. Mas pode tentar OrderModify em troca para ter a certeza do bug.
Não acredite em tudo o que está escrito. É OBRIGATÓRIO especificar. Caso contrário, não funcionará.
Concordo plenamente, mas...
Não sei como usar SB. Mas pode tentar OrderModify na troca para ter a certeza do bug.
Mas a MQ até acrescentou um exemplo no doc... Não está aí indicado...
Também existe um consultor especializado que escrevi, que trabalha na troca e utiliza um tal código:
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
Mas a MQ até acrescentou um exemplo ao doc... Não indica...
Errado, pessoal. Temos de corrigir tanto o doc como o SB.
Além disso, há uma EA que escrevi que funciona numa troca e utiliza um tal pedaço de código:
trade.OrderModify( order.Ticket(), order.PriceOpen(), newSl, newTp, order.TypeTime(), 0 );
E no testador?
Errado, pessoal. É necessário corrigir tanto o documento como o SB.
Errado, pessoal. É necessário corrigir tanto o documento como o SB.
E no testador?