[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 427

 
Eh bien, oui, j'ai regardé le code lettre par lettre pendant des heures.
 

C'est incroyable. Je passe des commandes auprès de l'encanteur exactement de la même manière. Avec le même tout - lot, prix d'ouverture, bénéfice. Et le premier ordre n'est pas défini par OrderType - il est égal à 0, bien que le premier soit en fait une limite d'achat. Mais les ordres ouverts suivants sont déterminés par OrderType ( ) correctement, dans ce code, je les ai 4 ou 5 et ils se comportent normalement.

Je ne peux pas non plus supprimer la première commande en utilisant OrderDelete(OrderTicket( )). Les suivants sont supprimés exactement de la même manière, sans aucun problème.

 
Dimka-novitsek:

C'est incroyable. Je passe des commandes auprès de l'encanteur exactement de la même manière. Avec le même tout - le lot, le prix d'ouverture, le bénéfice. Et le premier ordre n'est pas défini par OrderType - il est égal à 0, bien que le premier soit en fait une limite d'achat. Mais les ordres ouverts suivants sont déterminés par OrderType ( ) correctement, dans ce code, je les ai 4 ou 5 et ils se comportent normalement.

Je ne peux pas non plus supprimer la première commande en utilisant OrderDelete(OrderTicket( )). Les suivants juste comme ça, l'ordre est supprimé correctement.


On dirait que les médiums sont en vacances. Nous devrions vous montrer le code entier.

Bien que, compte tenu de ce qui a été posté précédemment, je peux penser qu'il y a des erreurs.

 
Je n'ai pas d'erreur dans le code logique. Où dois-je aller ? Est-ce une sorte de nidachet de la part des fabricants de la langue ou de la plate-forme.
 
//+------------------------------------------------------------------+
//|                                                      показзз.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
  int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price; int stsBUY;int stsSELL;double Price;int C=0;int GH;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if (GH<10){
//----
   double price=(Ask+Bid)/2; 
   
    Alert ("OrdersTotal()",OrdersTotal());
       
       if(C==0){ Price = price ;  C=1;}
   //----    
       
       tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, Price +otstup*Point, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   
   for(int i=OrdersTotal();i>0;i--){Alert ("i", i);OrderSelect(i,SELECT_BY_POS );Alert ("OrderType( )OP_BUYSTOP", OrderType( ));
   OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vseOP_BUYSTOP",  GetLastError( ) );}
              
//----
  tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, Price -otstup*Point, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    for( i=OrdersTotal();i>0;i--){Alert ("i", i);OrderSelect(i,SELECT_BY_POS );Alert ("OrderType( )OP_SELLSTOP", OrderType( ));
     OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vseOP_SELLSTOP",  GetLastError( ) );}
//----
 
   //tiket= OrderSend( Symbol(), OP_BUY,  volume*A, Bid, Point* 3, R1, Price+takeprofit*Point+otstup*Point, "OP_BUY", 1000,  expiration, Red); 
   //Alert ("OP_BUY", GetLastError( ));
   //for( i=OrdersTotal();i>0;i--){Alert ("i", i);OrderSelect(i,SELECT_BY_POS );Alert ("OrderType( )OP_BUY", OrderType( ));              
   //OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);Alert ("OrderCloseOP_BUY",  GetLastError( ) ); }
    
//----
    //tikett= OrderSend( Symbol(), OP_SELL,  volume*A, Ask, Point* 3,R2, Price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    //Alert ("OP_SELL", GetLastError( )); 
    //for( i=OrdersTotal();i>0;i--){Alert ("i", i);OrderSelect(i,SELECT_BY_POS );Alert ("OrderType( )OP_SELL", OrderType( ));
    //OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);Alert ("OrderCloseOP_SELL",  GetLastError( ) ); } 
    GH++;
    
                         }

Oui, oui, ici.

Dans le "showroom", les commandes sont simplement passées et immédiatement supprimées.

 
Cela a commencé lorsque le conseiller en avalanche a commencé à passer trois commandes au lieu de deux.
 
Dimka-novitsek:
Cela a commencé lorsque le conseiller en avalanche a commencé à passer trois commandes au lieu de deux.

Quel gâchis. L'EA n'a pas réussi à faire supprimer l'ordre. Ce que vous mettez, vous le recevez.
 
abolk:

https://docs.mql4.com/ru/basis/types/datetime

bool ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)

Je l'ai fait :
ObjectCreate(Up,OBJ_TREND,0,iTime( NULL, PERIOD_D1, 0),UpPrice,(iTime( NULL, PERIOD_D1, 0)+86399),UpPrice) ; //résigne les lignes
ObjectSet(Up,OBJPROP_COLOR,DeepPink) ;

Je veux tracer une ligne jusqu'à la fin du jour actuel, mais elle est infinie pour une raison quelconque ?

 
Stells:

Je l'ai fait :
ObjectCreate(Up,OBJ_TREND,0,iTime( NULL, PERIOD_D1, 0),UpPrice,(iTime( NULL, PERIOD_D1, 0)+86399),UpPrice) ; //résigne les lignes
ObjectSet(Up,OBJPROP_COLOR,DeepPink) ;

Je veux que la ligne soit tracée jusqu'à la fin du jour en cours, mais elle est infinie pour une raison quelconque ?

ObjectSet(Up,OBJPROP_RAY,false) ;
 
Vinin:

Quel gâchis. L'un des ordres doit être supprimé immédiatement. Ce que vous mettez, vous le recevez.


Oui, c'est juste pour vérifier comment ça marche, tout ce qui n'est pas clair. La première chose que je fais est de placer un ordre bylimit en attente, 20 pips au-dessus du prix. Ensuite, je le vérifie immédiatement avec OrderType,

et il s'avère que ce n'est pas zéro. C'est zéro !!!!. Comment ça peut être zéro, c'est un bylimit ! !! De plus, il n'est pas supprimé non plus, il dit une sorte d'erreur. En outre, tous les ordres suivants sont corrigés comme 4 ou 5, ils sont supprimés normalement, ils se comportent normalement.

De plus, même les ordres ouverts au-dessus du premier se comportent normalement, avec le même lot, le même emplacement, bref, tout en un ! Tous sauf le premier.