Erros, bugs, perguntas - página 1796

 
De que serve chamar OrderCheck se OrderSend(Async) fizer a mesma verificação?
 
Vladimir Pastushak:

Limpar o vento, limpar o kasper, colocar o terminal, o kasper cortá-lo como uma loucura.

Não há forma de o acrescentar às excepções......

Não se pode reproduzir. Pode escrever para o ServiceDesk com detalhes. Versão Windows, versão terminal, versão antivírus.
 
Aleksey Pak:
Não é possível reproduzi-lo. Pode escrever um pedido ao ServiceDesk e descrever em pormenor. Versão Windows, versão terminal, versão antivírus.

A DrWeb não encontra nada.

 
Erro de compilação
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
//    Print(""); \
  }

void OnStart()
{
  MACRO
}
 
Vladislav Andruschenko:

A DrWeb não encontra nada.

Não encontra sempre nada ))))
 
Vladimir Pastushak:
Não encontra sempre nada ))))

Não, encontra frequentemente vírus, mas não encontra nada em mt.

 

Em continuação do tema. Por que razão ao fazer um pedido de ordens pendentes, o campoRequest.type_filling já não tem valor?

Agora, não importa como o preenchi, OrderGetInteger(ORDER_TYPE_FILLING) == ORDER_FILLING_RETURN.

Roteiro

void OnStart()
{
  MqlTradeRequest Request = {0};
  
  Request.action = TRADE_ACTION_PENDING;

  Request.symbol = _Symbol;
  Request.volume = 1;
  Request.price = SymbolInfoDouble(_Symbol, SYMBOL_BID) - 100 * _Point;

  Request.deviation = 10;
  Request.type = ORDER_TYPE_SELL_STOP;
  
  Request.type_filling = ORDER_FILLING_FOK;
  
  MqlTradeResult Result = {0};
  
  if (OrderSend(Request, Result))
  {
    Sleep(100);
    
    if (OrderSelect(Result.order))    
      Print(EnumToString((ENUM_ORDER_TYPE_FILLING)::OrderGetInteger(ORDER_TYPE_FILLING)));
  }        
}

Resultado

ORDER_FILLING_RETURN

type_filling deve ser definido para o mesmo ORDER_TYPE_SELL_STOP. ORDER_FILLING_FOK está escrito no guião - significa que um pedido de mercado do tipo ORDER_FILLING_FOK (tudo ou nada) deve ser gerado quando a ordem de paragem é aceite. Qual é a razão pela qual não é este o caso?

Pending Order

Uma ordem comercial para colocar uma ordem pendente. Requer 11 campos a serem especificados:

  • acção
  • símbolo
  • volume
  • preço
  • stoplimit
  • sl
  • tp
  • tipo
  • type_filling
  • type_time
  • expiração
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
/*    Print(""); */ \
  }
Isto é correcto, caso contrário o próprio parêntese }
 
A100:
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
/*    Print(""); */ \
  }
Isso mesmo, caso contrário o parêntese } actua por si próprio
Porque é que a barra dupla actua sobre a barra invertida? E porque é que a macro carrega os comentários da dupla barra quando activada?
 
MetaQuotes-Demo
OrderSend(Symb,OP_BUYLIMIT,1,Ask-100*Point,100,0,0,My Order)
Request.action = TRADE_ACTION_PENDING (5)
Request.magic = 0
Request.order = 0
Request.symbol = CHFRUB_TOM
Request.volume = 1.0
Request.price = 57.9
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_DAY (1)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10018
Result.deal = 0
Result.order = 0
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Market closed 53.327 + 0.000 ms
Result.request_id = 334
Result.retcode_external = 0
CHFRUB_TOM - supostamente mercado fechado. Corrija-o, por favor.
Razão: