Errori, bug, domande - pagina 1453

 
Vladislav Andruschenko:

la tabella, tuttavia, mostra i seguenti valori:

Riempire o uccidere

SIMBOLO_RIEMPIMENTO_FOK

1

Questa politica significa che un'operazione può essere eseguita solo con il volume specificato. Se la quantità necessaria di uno strumento finanziario non è attualmente disponibile sul mercato, l'ordine non sarà eseguito. Il volume richiesto può essere riempito utilizzando diverse offerte disponibili sul mercato al momento.

Immediato o Annulla

SIMBOLO_RIEMPIMENTO_IOC

2

In questo caso un trader accetta di eseguire un'operazione con il volume massimo disponibile sul mercato entro quello indicato nell'ordine. Nel caso in cui l'ordine non possa essere riempito completamente, il volume disponibile dell'ordine sarà riempito, e il volume rimanente sarà cancellato. La possibilità di usare ordini IOC è determinata dal server di trading.

Ritorna

Nessun identificatore

Questa politica viene utilizzata solo per gli ordini di mercato (Acquisto e Vendita), ordini limite e stop limit e solo per i simboli con esecuzione a mercato o in borsa. In caso di riempimento parziale, un ordine a mercato o limite con volume rimanente non viene cancellato ma elaborato ulteriormente.

Ma ci deve essere una confusione di dati!

Non hai letto tutto l'Aiuto.

È possibile impostare più di una modalità per ogni simbolo attraverso una combinazione di bandiere. Lacombinazione di flag è espressa da un'operazione logica OR (|), ad esempio SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC. Per controllare se una particolare modalità è consentita per uno strumento, il risultato dell'AND logico (&) deve essere confrontato con il flag di modalità.

 

Per i simboli, la proprietà SYMBOL_FILLING_MODE significa una combinazione di bandiere - cioè descrive quali modi di riempimento sono consentiti quando si negozia quel simbolo.

Avete provato a fare il controllo come scritto nella documentazione?

В режимах исполнения "По запросу" и "Немедленный" для рыночных ордеров всегда используется политика заполнения Все/Ничего, а для лимитных ордеров - режим "Вернуть". В данном случае, при от отсылке ордеров функциями OrderSend или OrderSendAsync тип заполнения для них можно не указывать.

Nelle modalità di esecuzione "By Market" e "Exchange", la politica di riempimento "Return" è sempre consentita per tutti i tipi di ordine. L'ammissibilità degli altri tipi di ordine può essere controllata usando le proprietà SYMBOL_FILLING_FOK e SYMBOL_FILLING_IOC.

Esempio:

//+------------------------------------------------------------------+
//| controlla l'ammissibilità della modalità di riempimento specificata |
//+------------------------------------------------------------------+
bool IsFillingTypeAllowed(string symbol,int fill_type)
{
//- ottenere il valore della proprietà che descrive la modalità di riempimento
int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- restituisce true se la modalità fill_type è abilitata
return((filling&fill_type)==fill_type);
}


 
Rashid Umarov:

Per i simboli, la proprietà SYMBOL_FILLING_MODE significa una combinazione di bandiere - cioè descrive quali modi di riempimento sono consentiti quando si negozia quel simbolo.

Avete provato a fare il controllo come scritto nella documentazione?


La seguente soluzione ha funzionato

         switch((int)SymbolInfoInteger(Symbol(), SYMBOL_FILLING_MODE))
   {
   case SYMBOL_FILLING_FOK:
      request.type_filling=ORDER_FILLING_FOK;
      break;
   case SYMBOL_FILLING_IOC:
      request.type_filling=ORDER_FILLING_IOC;
      break;
   default:
      request.type_filling=ORDER_FILLING_RETURN;
   }
 
Vladislav Andruschenko:

questa soluzione ha aiutato

Se leggete l'aiuto più attentamente, vedrete che il caso in cui entrambe le modalità sono disponibili non è gestito - il valore di SymbolInfoInteger sarà(SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC).
 

E puoi controllarlo sul server "RoboForex-MetaTrader 5" con questo codice:

//+------------------------------------------------------------------+
//|                                                 Info_FILLING.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property description "Варианты исполнения ордера по объему"
#include<Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
// Все/Ничего     SYMBOL_FILLING_FOK   1
// Все/Частично   SYMBOL_FILLING_IOC   2
// Вернуть        Идентификатор отсутствует
   Print("Все/Ничего: ",IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_FOK));
   Print("Все/Частично: ",IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_IOC));
   Print("Вернуть: ",IsFillingTypeAllowed(Symbol(),NULL));

   CTrade oTrade;
   switch((int)SymbolInfoInteger(Symbol(),SYMBOL_FILLING_MODE))
     {
      case SYMBOL_FILLING_FOK:
         Print("ORDER_FILLING_FOK");
         break;
      case SYMBOL_FILLING_IOC:
         Print("ORDER_FILLING_IOC");
         break;
      default:
         Print("ORDER_FILLING_RETURN");
     }
  }
//+------------------------------------------------------------------+ 
//| проверяет разрешенность указанного режима заполнения             | 
//+------------------------------------------------------------------+ 
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- получим значение свойства, описывающего режим заполнения 
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- вернем true, если режим fill_type разрешен 
   return((filling&fill_type)==fill_type);
  }
//+------------------------------------------------------------------+

E il risultato del cambio:

2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Все/Ничего: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Все/Частично: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Вернуть: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      ORDER_FILLING_RETURN


Si può vedere che la variante dell'interruttore non ci dice la verità. Ma ecco un esempio dalla documentazione che ci dà il quadro completo.

 

Qual è il problema con

MarketInfo(Symbol(),MODE_MARGININIT) e SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)

Perché restituiscono degli zeri ?????

 
Vladimir Pastushak:

Qual è il problema con

MarketInfo(Symbol(),MODE_MARGININIT) e SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)

Perché restituiscono degli zeri ??????

Le informazioni nell'aiuto non corrispondono alle informazioni sul sito le informazioni nell'aiuto e sul sito non corrispondono alle informazioni reali, gli sviluppatori, si prega di fare la descrizione giusta

Calcolo delle garanzie

Errori,MetaTrader 5 MQL5,Aperto,Iniziato: 2015.07.13 16:23,#1259415

Ecco un esempio dall'aiuto di MQL5:

SIMBOLO_CALC_MODO_FOREX

Modalità Forex - calcolo del profitto e del margine per il Forex

Margine:Lotti*dimensione del contratto/leva

Questa è una formula per calcolare una quotazione in avanti. La quotazione inversa sarà diversa per la croce, e la terza per la croce. Il sito ha lo stesso errore.

Quindi, qualsiasi tipo di mercato si prenda, le formule sono abbastanza dubbie...

E ho scoperto oggi che MarketInfo(Symbol(),MODE_MARGINININIT) e SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL) restituiscono zero.

Ma su questa risorsa ci sono anche strani scritti, https://metaquotes5.wordpress.com/2012/08/ per quanto ho capito è il blog MetaQuotes.

What are Expert Magic Numbers?
  • 2012.08.11
  • skebanga
  • metaquotes5.wordpress.com
Expert magic numbers are ids given to a particular expert advisor. Care should be taken to ensure the ids are unique. This is because the magic number is used by the MetaTrader back end to know which expert advisor to send information to. For example, when a trade notification is...
 
Ci sono nemici dappertutto. Nessuno ci vuole tranne le nostre donne il giorno di paga.
 
Алексей Тарабанов:
Ci sono nemici ovunque. Nessuno ha bisogno di noi tranne le nostre donne il giorno di paga.

Saluti Alexey

Se puoi riscrivere l'indicatore iPulsar su MT5, per favore riscrivilo nel codice base

Grazie


 

Ciao colleghi!

Scusa, ho fatto un casino sul thread principale prima di vedere questo.

Per favore consigliate come risolvere questo problema: MT5 Expert Advisor su FORTS continua a mostrare l'errore 10022: "Invalidorder expiry date in request" quando si piazzano ordini BAY_STOP o SELL_STOP.

La data di scadenza non è importante per me, ma non riesco a trovare nessun parametro che imposti solo l'ordine. Non abbiamo un tale problema nel forex. Il mio broker è APERTO. L'errore si verifica nel tester.


Motivazione: