[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 459

 
Maximov7:

Voici une autre question .... J'ai un ordre ouvert comme ceci :

OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);

comment ouvrir un autre ordre si celui-là se ferme à takeprofit ????


Avez-vous lule livre ? (au moins pour le plaisir)
 
Relisez-le trois fois..... et pourtant ?
 
Maximov7:
J'ai lu..... 3 fois et pourtant ?


Dans la boucle de l'historique des ordres clôturés, trouvez "cet" ordre, puis vérifiez s'il a clôturé sur TP, si oui, ouvrez alors un "différent". C'est tout.

Voir ici pour plus de détails - sélectionnez les fi ries dont vous avez besoin, branchez-les sur votre logiciel et c'est tout.

 
Merci beaucoup !
 
Maximov7:
Merci beaucoup !

Profitez-en.
 

Bonsoir !

Veuillez jeter un coup d'œil au code :

for(i=1;i<=OrdersTotal();i++) // récupérer les commandes pour le chalut

{

si(OrderSelect(i-1,SELECT_BY_POS)==true)

{

si (OrderSymbol()!=Instr)

continuer ;

si(OrderType()==0)

{

si ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

si(OrderType()==1)

{

si ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

retour (55) ;

}

}

Je ne comprends pas quel est le problème, je teste avec une Alerte à l'intérieur, cela ne fonctionne nulle part ailleurs après l'Instr.

 
demlin:

Bonsoir !

Veuillez jeter un coup d'œil au code :

for(i=1;i<=OrdersTotal();i++) // récupérer les commandes pour le chalut

{

si (OrderSelect(i-1,SELECT_BY_POS)==true)

{

si (OrderSymbol()!=Instr)

continuer ;

si(OrderType()==0)

{

si ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

si(OrderType()==1)

{

si ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

retour (55) ;

}

}

Je ne comprends pas quel est le problème, je teste avec une Alerte à l'intérieur, cela ne fonctionne nulle part ailleurs après l'Instr.


Y a-t-il une ligne comme celle-ci au-dessus du code ?
string Instr;
Insérez le code correctement - via SRC dans l'éditeur... :-)))
 
Roman.:

Y a-t-il une ligne comme celle-ci au-dessus du code ? Insérez le code correctement - via SRC dans l'éditeur... :-)))
Oui, l'Instr est, désolé, je ne sais pas ce qu'est le SRC.
 
demlin:
Oui, l'Instr est, désolé, je ne sais pas ce qu'est le SRC.

Lorsque vous collez le code dans votre message, appuyez sur CTRL+ALT+M - puis placez le code à cet endroit (par le tampon CTRL+C - copier, CTRL+V - coller), puis appuyez sur le bouton "coller" en bas de la fenêtre.
 
demlin:

Bonsoir !

Veuillez jeter un coup d'œil au code :

for(i=1;i<=OrdersTotal();i++) // récupérer les commandes pour le chalut

{

si (OrderSelect(i-1,SELECT_BY_POS)==true)

{

si (OrderSymbol()!=Instr)

continuer ;

si(OrderType()==0)

{

si ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

si(OrderType()==1)

{

si ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

retour (55) ;

}

}

Je ne comprends pas quel est le problème, je teste avec une Alerte à l'intérieur, cela ne fonctionne nulle part ailleurs après l'Instr.


Essayez cette option - c'est ainsi que j'ai organisé un design similaire.


// ------------------------------------------------Ищем наш ордер---------------------------------

int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))
      {
         continue;
      }

      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }

      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL))
      {
         continue;
      }
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера
          
             if (ticket>0)                                               // Если позиция открылась
                    {
                             while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                                 {
                                   Sleep(100);
                                 }
                                  double OpenPrice=OrderOpenPrice();
                                      
                                  
                    
                                if (orderType == OP_BUY) 
                                     {
                                       //здесь трал покупки
                                     }
            
                                if (orderType == OP_SELL) 
                                      {
                                        //здесь трал продажи
                                      }   
                            
                    }
        
   }