FORTS SL et TP - page 6

 
ottenand:
Vous voulez donc qu'un ordre de limite de vente dans la coupe se trouve parmi les limites d'achat ?

Non, il veut prouver une fois de plus qu'il est le seul D'Artagnan ici.
 
prostotrader:


Non, pour placer un ordre sur le marché (et il y sera), vous devez utiliser la fonction

request.type_filling=ORDER_FILLING_RETURN.

Ajouté

Changer ORDER_FILLING_IOC en ORDER_FILLING_RETURN (dans mon exemple)

et le prix à SYMBOL_SESSION_PRICE_LIMIT_MAX

et vous verrez l'ordre dans le marché

:) Et quel type de commande doit être utilisé ?
 
Yury Kulikov:
:) Quel type de commande dois-je utiliser ?

void SetSyncOrder(const bool deffered)
  {
   MqlTradeRequest request={0};
   MqlTradeResult  result={0};
   order_ticket=0;
   request.magic=Magic;
   request.symbol=Symbol();
   request.volume=1;
   if(deffered)
   {
     request.type_filling=ORDER_FILLING_RETURN;  //Отложенный ордер
   }
   else
   {
     request.type_filling=ORDER_FILLING_IOC;  //Рыночный ордер
   }  
   request.type_time=ORDER_TIME_DAY;
   request.action=TRADE_ACTION_PENDING;
   request.type=ORDER_TYPE_SELL_LIMIT;
   request.comment="";
   if(deffered)
   {
     request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MAX);
   }
   else
   {
     request.price = SymbolInfoDouble(Symbol(),SYMBOL_SESSION_PRICE_LIMIT_MIN);
   }  
   if(OrderSend(request,result))
     {
      if(result.retcode==TRADE_RETCODE_DONE)
        {
         order_ticket=result.order;
         if(OrderSelect(order_ticket))
           {
            ENUM_ORDER_STATE order_state=ENUM_ORDER_STATE(OrderGetInteger(ORDER_STATE));
            switch(order_state)
              {
               case ORDER_STATE_STARTED:
               case ORDER_STATE_REQUEST_ADD:
               case ORDER_STATE_REQUEST_MODIFY:
               case ORDER_STATE_REQUEST_CANCEL:
                  Print(__FUNCTION__,": Order is busy! State: ",EnumToString(order_state));
                  break;
               case ORDER_STATE_CANCELED:
               case ORDER_STATE_PARTIAL:
               case ORDER_STATE_FILLED:
               case ORDER_STATE_REJECTED:
               case ORDER_STATE_EXPIRED:
                  Print(__FUNCTION__,": Order not found.");
                  break;
               case ORDER_STATE_PLACED:
                 Print(__FUNCTION__,": Sync Order place done and found in terminal.");
               break;
              }
           }
        }
     }
   else {Print("Order not sent.");}
  }
Les prix sont donnés à titre d'exemple
Dossiers :
 
prostotrader:


Je ne veux rien.

Lisez attentivement tout le fil de discussion.

N'expliquez pas, ils essaient de vous aider, essayez d'absorber et de comprendre. Seules les limites d'achat peuvent être inférieures au prix actuel de la bourse. Tout le reste, en dessous du prix, peut être un ordre stop sur le serveur du courtier. Cet ordre de vente à cours limité a été exécuté au cours de clôture suivant, qui est le cours du marché, car vous ne pouvez pas placer ce que vous ne pouvez pas placer, c'est-à-dire que vous avez placé votre ordre de vente à cours limité dans la ligne d'achat en dessous du cours de la pile. Si vous voulez vendre en dessous du prix avec une condition, mettez un stop de vente sur le serveur du courtier.
 
ottenand:
N'explique pas, ils essaient de t'aider, essaie de t'y mettre et de comprendre. Seules les limites d'achat peuvent être inférieures au prix actuel de la bourse. Tout le reste, en dessous du prix, peut prendre la forme d'un ordre stop sur le serveur du courtier. Cet ordre de vente à cours limité a été exécuté à la prochaine demande de clôture, qui est le cours du marché, car vous ne pouvez pas placer ce que vous ne pouvez pas placer, c'est-à-dire que vous avez placé votre ordre de vente à cours limité dans la ligne d'achat en dessous du cours de la pile. Si vous voulez vendre en dessous du prix avec une condition - mettez un stop de vente sur le serveur au courtier.

Alors vous n'avez pas à l'expliquer non plus...
 
prostotrader:
   request.type=ORDER_TYPE_SELL_LIMIT;

Pourquoi citer un texte aussi long à une question simple, c'est-à-dire à votre réponse : vendre un type d'ordre à cours limité.

 
Yury Kulikov:

Pourquoi citer un texte aussi long à une question simple, c'est-à-dire à votre réponse : vendre un type d'ordre à cours limité.


:)
 
Heh, ok, c'est comme tu veux =)
 

Corrigez-moi si je me trompe quelque part =)

 
Yury Kulikov:

Pourquoi citer un texte aussi long à une question simple, c'est-à-dire à votre réponse : vendre un type d'ordre à cours limité.


Yuriy !

J'ai donné le dossier (spécification Plaza II)

Nulle part dans les spécifications il n'est question de limite, de marché ou d'ordre en attente.

Les ordres dans l'échange sont acceptés en fonction de 4 paramètres principaux

1. Prix

2. Sens de l'ordre (achat/vente)

3. Volume .

Type(en MQL).

C'est ce que les développeurs ont appelé un ordre limite, de marché ou en attente.

Pour placer correctement des ordres, nous devons comprendre comment ces ordres seront perçus par la Bourse.

conformément à la spécification.

Ajouté

Par exemple, pour que l'ordre reste dans la pile

dans la zone de vente

Il suffit de fixer l'un des prix de la zone de vente.

et request.type_filling=ORDER_FILLING_RETURN ;

Mais si vous fixez un prix dans la zone d'achat, votre ordre sera exécuté immédiatement.

C'est pourquoi j'ai nommé les ordres comme étant "en attente" pour être plus ou moins cohérent avec la spécification du marché :

En attente - un ordre qui "reste" sur le marché.

Marché - cet ordre peut être exécuté à n'importe quel prix.

Ordre à cours limité - cet ordre sera exécuté au prix spécifié dans l'ordre.

Raison: