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

 
 
 
//+------------------------------------------------------------------+
//|                                                    для лавин.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);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
 int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
   //  R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;
     
     
int start()
  {       int X;       
//----
       for(int Uy=OrdersTotal();Uy<=-1;Uy--){
OrderSelect( Uy,SELECT_BY_POS );
if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
{X=X++;}}  
if (X>=2){
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Dimka-novitsek:

{X=X++;}}  

ou X = X+1 ; ou X++ ; ))

Et pourtant, regardez encore une fois la condition de la boucle de la première.

 
Merci !!!!!!!!
 

Chers experts ! Je recherche un script qui ouvre des ordres lorsque la SMA normale croise la ligne horizontale sur le graphique. Si la SMA croise la ligne par le bas - acheter, par le contraire - vendre. Les transactions se font à la clôture de la bougie. Pouvez-vous m'indiquer le lien où le trouver, s'il a été posté.

Salutations et etc.

 

Je ne comprends rien d'abord, mon cycle ne fonctionne pas. Deuxièmement, il écrit un tas d'erreurs, y compris de mauvais stops,( !!! Ils n'existent tout simplement pas, ils sont zéro !!!!) Et pourtant il ouvre 5-1o ordres !!!

Et qu'est-ce qui ne va pas avec le paramètre prix ?

L'idée initiale est d'ouvrir deux ordres à une distance de 20 pips du prix - un au-dessus, un au-dessous (otstup=20), le takeprofit devrait être encore 20 pips plus haut ou plus bas.

//+------------------------------------------------------------------+
//|                                                    для лавин.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);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
 int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;double price=PRICE_OPEN;
   //  R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;
     
     
int start()
  {       int X;       
//----
       for(int Uy=OrdersTotal();Uy<=-1;Uy--){
OrderSelect( Uy,SELECT_BY_POS );
if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
{X++;}}  
if (X<=2){
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

Oui, X est le nombre d'ordres sur cette paire de devises et ouverts par cet EA particulier.

 
Dimka-novitsek:
Oui, X est le nombre d'ordres sur cette paire de devises et ouverts par cet EA particulier.

c'est ce que vous voulez, en fait personne ne sait ce qu'il y aura à cause d'au moins 2 erreurs

- dans la toute première boucle, ce que j'ai déjà mentionné.

- au tout premier moment vous sélectionnez un ordre qui n'existe pas avec la fonction OrderSelect


2) normaliser les prix dans OrderSend

 
Je l'ai, merci. Et d'ailleurs, les prix semblent être en nombres entiers, je ne les ai pas divisés.
 

- au tout premier moment vous sélectionnez un ordre qui n'existe pas avec la fonction OrderSelect

Alors comment écrire cet ordre logique de la bonne manière ?

Raison: