FORTS. Questions relatives à l'application de la loi - page 88

 
fxsaber:

Un limiteur peut-il être FOK ?

Bonne question.

C'est-à-dire (surligné en rouge) qu'un ordre à cours limité ne peut pas être un FOK car il est exécuté à un prix fixe,

mais d'un autre côté le volume pourrait être suffisant....


ORDER_FILLING_FOK

Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме.
Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен.
Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке.
Je pense (je n'ai jamais utilisé FOK) que ça pourrait être FOK, mais je dois vérifier le volume.
 
prostotrader:

Bonne question.

C'est-à-dire que (surligné en rouge) l'ordre à cours limité ne peut pas être un FOK, car il est exécuté à un prix fixe,

mais d'un autre côté le volume pourrait être suffisant....


ORDER_FILLING_FOK

Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме.
Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен.
Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке.

C'est juste que l'aide est de travers. Un ordre à cours limité est toujours une exécution de type RETOUR. FOK, IOC sont uniquement des places de marché.

Mais cela ne s'applique qu'aux bourses et aux ECN. Comme il existe également des STP où les limiteurs sont des ordres virtuels qui ne sont que des initiateurs des ordres de marché respectifs, FOK/IOC est possible pour eux. Mais ce n'est qu'à l'écran qu'ils sont limiteurs, pas dans leur essence.

 
fxsaber:
C'est juste que l'aide est tordue. Un ordre à cours limité est toujours une exécution de type RETOUR uniquement. FOK, IOC ne sont que des marqueurs.

C'est faux, j'utilise toujours des limiteurs, mais uniquement avec IOC.

depuis plus de 3 ans maintenant.

Vérifiez par vous-même :)

Ajouté

Un ordre à cours limité est identique à un ordre au marché, mais il s'agit d'un prix d'exécution et c'est tout !

S'il y a un prix, il est exécuté, s'il n'y a pas de prix, il est supprimé.

Politique d'exécution

En plus des règles générales d'exécution des ordres spécifiées par le courtier, un trader peut spécifier des conditions supplémentaires dans le champ "Remplir" de la fenêtre de paramétrage des ordres :

  • Tout ou rien (remplir ou tuer)
    Cette politique d'exécution signifie qu'un ordre ne peut être exécuté que jusqu'à la taille spécifiée. Si le volume d'un instrument financier actuellement sur le marché est insuffisant, l'ordre ne sera pas exécuté. Le volume requis peut être compilé à partir de plusieurs offres actuellement disponibles sur le marché.
  • Tout/Partiel (Immédiat ou Annuler).
    Dans ce cas, le trader accepte d'effectuer une transaction avec le volume maximum disponible sur le marché dans la limite du volume spécifié dans l'ordre. Si l'exécution complète n'est pas possible, l'ordre sera exécuté pour le volume disponible, et le volume non exécuté de l'ordre sera annulé. La possibilité d'utiliser des ordres IOC est déterminée sur le serveur de négociation.
  • Retourner à
    Ce mode est utilisé pour les ordres au marché (Achat et Vente), les ordres à cours limité et les ordres stop-limite et uniquement dans les modes "Exécution au marché" et "Exécution en bourse". En cas d'exécution partielle, un ordre au marché ou un ordre à cours limité avec un volume résiduel n'est pas supprimé, mais reste en vigueur.

L'application des politiques d'exécution en fonction du mode d'exécution peut être représentée sous la forme d'un tableau :

Mode d'exécution - Politique d'exécution

Tous/Non (FOK)

Tout/Partiel (IOC)

Retourner à

Exécution immédiate

+

-

-

Spectacles sur demande

+

-

-

Exécution en fonction du marché

+

+

+

Exécution de la bourse

+

+

+

 
prostotrader:

C'est faux, j'utilise toujours des limiteurs, mais uniquement avec IOC.

depuis plus de 3 ans maintenant.

Découvrez-le par vous-même :)

  1. Nous définissons IOC-BuyLimit pour 10 lots à l'intérieur du spread, puis nous effectuons immédiatement SELL avec 1 lot. La réaction attendue - deux transactions opposées au même prix (bénéfice - zéro, mais commission double) pour 1 lot, et 9 lots annulés.
  2. Nous fixons la FOK-BuyLimit à 10 lots à l'intérieur du spread, puis nous VENDONS immédiatement 1 lot. La réponse attendue est VENDRE par 1 lot, et 10 lots annulés.

Vous ne verrez pas cela. Et le fait que dans la demande de types de limites, des types de FOK/IOC peuvent être définis, ne signifie pas qu'ils sont de ce type.

 
fxsaber:

  1. Nous définissons IOC-BuyLimit pour 10 lots à l'intérieur du spread, puis nous VENDONS immédiatement 1 lot. La réaction attendue - deux transactions opposées au même prix (bénéfice nul, mais commission double) pour 1 lot, et 9 lots annulés.
  2. Nous fixons la FOK-BuyLimit à 10 lots à l'intérieur du spread, puis nous VENDONS immédiatement 1 lot. La réponse attendue est VENDRE par 1 lot, et 10 lots annulés.

Vous ne verrez pas cela. Et le fait que, dans la demande de limites, les échanges de types FOK/IOC ne signifie pas qu'ils sont de ce type.

Regardez le tableau ci-dessus.

La FOK est présente dans tous les modes.

C'est juste qu'avec FOK vous devez vérifier le volume, mais ce n'est pas une GARANTIE que l'ordre sera exécuté car lorsque

est arrivé à l'Exchange, le volume requis pourrait ne pas être là (il est déjà consommé).

Correspondance incomplète des ordres FOK

 
prostotrader:

Lorsque l'ordre "arrive" à la Bourse, il se peut que le volume requis ne soit pas disponible (il a déjà été consommé), par conséquent

Correspondance incomplète des ordres FOK

Saisie incomplète de la commande FOK, donc saisie incomplète de la commande FOK. Les limiteurs ne sont pas concernés par cette mesure. Les deux cas ci-dessus sont faciles à vérifier. Ils ne peuvent pas être reproduits car il n'y a pas de limites FOK/IOC s'ils sont offerts à un prix qui n'est pas inférieur au prix actuel.
 
fxsaber:
C'est une référence tordue. Ceci ne s'applique pas aux ordres à cours limité. Les deux cas ci-dessus sont faciles à vérifier. Vous ne pouvez pas les reproduire parce qu'il n'y a pas de limites FOK/IOC si leur prix est aussi bon que celui de l'actuel.

Je ne fantasme pas, je vous parle de mes ordres, qui sont placés par un EA sur un compte réel.

Si vous voulez penser comme vous le faites maintenant, vous êtes libre de faire ce que vous voulez !

 
prostotrader:

Je ne fantasme pas, je vous parle de mes ordres, qui sont placés par un EA sur un compte réel.

Si vous voulez penser comme vous le faites en ce moment, vous êtes libre de faire ce que vous voulez !

Logique de fer

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

FORTS. Questions sur l'exécution

fxsaber, 2017.02.22 22:50

  1. Mettez IOC-BuyLimit 10 lots à l'intérieur du spread et ensuite faites immédiatement SELL 1 lot. Réaction attendue - deux transactions opposées au même prix (bénéfice nul, mais commission double) pour 1 lot, et 9 lots annulés.
  2. Nous fixons la FOK-BuyLimit à 10 lots à l'intérieur du spread, puis nous VENDONS immédiatement 1 lot. La réponse attendue est VENDRE par 1 lot, et 10 lots annulés.

Vous ne verrez pas cela.

Pourquoi se disputer alors qu'il existe un critère clair pour vérifier s'il y a ou non des FOK/IOC pour les limiteurs.
 
fxsaber:
Logique de fer
Pourquoi se disputer alors qu'il existe un critère clair pour vérifier s'il y a ou non des FOK/IOC pour les limiteurs.

Désolé, vous n'avez probablement pas remarqué que j'ai écrit que j'utilise des ordres LIMIT avec fill IOC.

//+------------------------------------------------------------------+
//| Expert set order function                                        |
//+------------------------------------------------------------------+
void SetOrder(const string aSymbol, uint &order_id, const double price, const double volume, const bool buy_sell)
{
  MqlTradeRequest request = {0};
  MqlTradeResult  result  = {0};
  main_order_ticket = 0;
  main_mem_magic = magic_storage + 1;
  main_order_symbol = aSymbol;
//---  
  if(main_mem_magic >= (magic_number + 65530)) main_mem_magic = magic_number;
  
//--- Fill structure
  request.magic = main_mem_magic;
  request.symbol = aSymbol;
  request.volume = volume;
  request.type_filling = ORDER_FILLING_IOC;
  request.type_time = ORDER_TIME_DAY;
    
  if(price == 0)
  {
    request.action = TRADE_ACTION_DEAL;
    request.comment = "Рыночный ордер...";
//---    
    if(buy_sell)
    {
      request.type = ORDER_TYPE_BUY;
    }
    else
    {
      request.type = ORDER_TYPE_SELL;
    }
  }
  else
  {
    request.action = TRADE_ACTION_PENDING;
    request.price = price;
    request.comment = "Лимитный ордер...";
//---    
    if (buy_sell)
    {
      request.type = ORDER_TYPE_BUY_LIMIT;
    }
    else
    {
      request.type = ORDER_TYPE_SELL_LIMIT;
    }  
  }  
//--- Send order
  if(OrderSendAsync(request, result))
  {
    if((result.retcode == TRADE_RETCODE_PLACED) || (result.retcode == TRADE_RETCODE_DONE))
    {
      order_id = result.request_id;
      magic_storage = main_mem_magic;
      main_state = ORD_MAIN_DO_SET;
      main_mem_time = GetMicrosecondCount();
      main_start_time = TimeCurrent();
      SetTransCount();
    }
    else
    {
      order_id = 0;
      main_mem_magic = 0;
      main_order_symbol = "";
      main_state = ORD_NO_STATE;
      main_mem_time = 0;
      main_start_time = 0;
      CheckError(result.retcode, "SetOrder: Ордер не установлен! Причина: ", MAIN_ORDER, main_order_ticket);
    }
  }
  else
  {
    order_id = 0;
    main_mem_magic = 0;
    main_order_symbol = "";
    main_state = ORD_NO_STATE;
    main_mem_time = 0;
    main_start_time = 0;
    CheckError(result.retcode, "SetOrder: Ордер не отправлен! Причина: ", MAIN_ORDER, main_order_ticket);
  }
}

Ce code fonctionne pour moi depuis plus de 3 ans.

 
prostotrader:

Désolé, vous n'avez probablement pas remarqué que j'ai écrit que j'utilisais des ordres LIMIT avec un IOC de remplissage.

Ce code fonctionne depuis plus de 3 ans.

C'est la raison pour laquelle j'ai écrit

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

FORTS. Questions sur l'exécution

fxsaber, 2017.02.22 22:50

  1. Mettez IOC-BuyLimit 10 lots à l'intérieur du spread et ensuite faites immédiatement SELL 1 lot. Réaction attendue - deux transactions opposées au même prix (bénéfice nul, mais commission double) pour 1 lot, et 9 lots annulés.
  2. Nous fixons la FOK-BuyLimit à 10 lots à l'intérieur du spread, puis nous VENDONS immédiatement 1 lot. La réponse attendue est VENDRE par 1 lot, et 10 lots annulés.

Vous ne verrez pas cela. Et le fait que dans la demande de types de limites, des types FOK/IOC peuvent être définis, ne signifie pas qu'ils sont de ce type.

Je ne me soucie pas de ce que MT5 semble autoriser pour les ordres à cours limité. Tout ce qui compte, c'est ce qui atteint l'échange. Ainsi, si la bourse avait un ordre à cours limité IOC, elle se comporterait comme au point 1. FOK - p.2. Vous ne voyez pas cela sur la bourse, donc nous devons parler de l'essence de FOK/IOC, et non de ce que MT5 permet quelque chose là dans les requêtes. Faites OrderGetInteger de vos limites "IOC" au moins.