Errori, bug, domande - pagina 1796

 
Che senso ha chiamare OrderCheck se OrderSend(Async) fa lo stesso controllo?
 
Vladimir Pastushak:

Windup pulito, Kasper pulito, ho messo il terminale, Kasper l'ha tagliato come un pazzo.

Nessun modo per aggiungerlo a eccezioni......

Non si può riprodurre. Potete scrivere al ServiceDesk con i dettagli. Versione Windows, versione terminale, versione antivirus.
 
Aleksey Pak:
Non riesco a riprodurlo. Puoi scrivere una richiesta a ServiceDesk e descrivere in dettaglio. Versione Windows, versione terminale, versione antivirus.

DrWeb non trova nulla.

 
Errore di compilazione
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
//    Print(""); \
  }

void OnStart()
{
  MACRO
}
 
Vladislav Andruschenko:

DrWeb non trova nulla.

Non trova sempre niente ))))
 
Vladimir Pastushak:
Non trova sempre niente ))))

No, spesso trova dei virus, ma non trova nulla in mt.

 

In continuazione dell'argomento. Per quale motivo quando si fa una richiesta di ordini in sospeso, il campoRequest.type_filling non ha più un valore?

Ora, non importa come lo riempio, OrderGetInteger(ORDER_TYPE_FILLING) == ORDER_FILLING_RETURN.

Script

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)));
  }        
}

Risultato

ORDER_FILLING_RETURN

type_filling deve essere impostato per lo stesso ORDER_TYPE_SELL_STOP. ORDER_FILLING_FOK è scritto nello script - significa che una richiesta di mercato di tipo ORDER_FILLING_FOK (tutto o niente) dovrebbe essere generata quando l'ordine stop viene accettato. Qual è la ragione per cui non è così?

Pending Order

Un ordine di trading per piazzare un ordine pendente. Richiede la specificazione di 11 campi:

  • azione
  • simbolo
  • volume
  • prezzo
  • stoplimit
  • sl
  • tp
  • tipo
  • tipo_riempimento
  • tipo_tempo
  • scadenza
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
/*    Print(""); */ \
  }
Questo è corretto, altrimenti la parentesi } stessa
 
A100:
#define MACRO  \
  if (true)    \
  {            \
    Print(""); \
/*    Print(""); */ \
  }
Esatto, altrimenti la staffa } agisce da sola
Perché la doppia barra agisce sul backslash? E perché la macro porta i commenti a doppia barra quando viene attivata?
 
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 - mercato presumibilmente chiuso. Correggetelo, per favore.