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

 
001:
Pouvez-vous me dire s'il existe un auto-optimiseur qui optimise les paramètres pendant le test ? Je dois vérifier l'idée.
Il y en a même une plus proche, juste sur notre site.
Et il y a aussi la recherche, qui consiste à insérer dans un moteur de recherche des mots avec lesquels le sujet est nommé.
http://www.google.ru/search?as_sitesearch=mql4.com&as_q=автооптимизатор
 

Pourriez-vous m'indiquer comment spécifier correctement dans un ordre en attente dans un EA de le supprimer automatiquement à 23:00 ?

Cette option donne une erreur :

  datetime Tim=D'23:00';
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  {

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
 
Andreev:

Pourriez-vous m'indiquer comment spécifier correctement dans un ordre en attente dans un EA de le supprimer automatiquement à 23:00 ?

Cette option donne une erreur :


int Tim=iTime(NULL, Period_D1,0)+23*60*60;
ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);
Quelque chose comme ça
 
dmmikl86:

Je ne suis pas un programmeur novice ; pendant quelques années, j'ai réécrit l'indicateur à partir d'un autre langage et je suis tombé sur un redécoupage.

Je suis un débutant, j'ai réécrit l'indicateur dans une autre langue :


Je préférerais avoir l'indicateur sous forme de fichier. Personne ne va coller les morceaux dans un seul fichier.
 
Andreev:

Cette option donne une erreur :

int Tim;
   int    Cur_Hour=Hour();             // Серверное время в часах   
   double Cur_Min =Minute();           // Серверное время в минутах   
   double Cur_time= Cur_Hour + Cur_Min/100; // Текущее время   
   if (Cur_time>=20.00&&Cur_time<=20.00&&order==false)
  { Tim=TimeCurrent( )+ (23-Cur_time)*3600

ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, Tim);


Quelque chose comme ça.
 
Vinin:

Quelque chose comme ça

Il donne une erreur :


2011.07.19 18:56:15 2011.07.18 20:00 Retour EURUSD,M1 : Erreur OrderSend 4062
2011.07.19 18:56:15 2011.07.18 20:00 Retour : le paramètre commentaire de la fonction OrderSend doit être une chaîne de caractères.

 
alexshell:

C'est comme ça.

Pour une raison quelconque, je reçois la même erreur. Si je supprime la fonction Tim de l'ordre, cela fonctionne, mais certaines transactions s'ouvrent après 23 heures. Que puis-je faire pour limiter cela ?
 
Andreev:

J'ai une erreur :


2011.07.19 18:56:15 2011.07.18 20:00 Retour EURUSD,M1 : Erreur OrderSend 4062
2011.07.19 18:56:15 2011.07.18 20:00 Retour : le paramètre commentaire de la fonction OrderSend doit être une chaîne de caractères.


Désolé, j'ai modifié votre version sans vérifier

 ticket=OrderSend(Symbol(),OP_BUYLIMIT,0.1,Bid-Spread,2,Bid-Spread-SL,Bid, "",0,Tim, CLR_NONE);
 
Vinin:


Désolé, j'ai modifié votre version sans vérifier


Merci beaucoup ! !! Cela fonctionne :)
 

Bonsoir ! J'ai une question concernant la fonction d'alerte. Voici un robot sans un gros morceau central et beaucoup de h

//+------------------------------------------------------------------+
//|                                                    пробныйй .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;datetime wremjapomnim;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4) ; Alert ("price", price);Alert("otstup*Point",otstup*Point);
//----
Alert ("Price +otstup*Point",Price +otstup*Point);Alert ("Price+takeprofit*Point+otstup*Point", Price+takeprofit*Point+otstup*Point);
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( ));
  Alert ("Price -otstup*Point",Price -otstup*Point);Alert ("Price-takeprofit*Point-otstup*Point", Price-takeprofit*Point-otstup*Point); 
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=0; i<OrdersTotal(); i++) {
           OrderSelect(i, SELECT_BY_POS );
              if (  OrderType( )==OP_BUY && OrderType( )==OP_SELL ){
                          OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);
   Alert ("OrderClose-vse-2",  GetLastError( ) ); C=0;A=1; }} 
         // Здесь код для удаления всех отложенных ордеров (также в цикле)
         for ( i=0; i<OrdersTotal(); i++) {
         OrderSelect(i, SELECT_BY_POS );
           if (  OrderType( )==OP_BUYSTOP && OrderType( )==OP_SELLSTOP ){ 
            OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse-2",  GetLastError( ) ); }}    
        
   return(0);
  }
//+------------------------------------------------------------------+
Alert devrait enregistrer le prixAlert ("price", price) ; disons 1.4825, et il le fait, c'est-à-dire que la variable est normale. Et puis ! !!

Alert ("Price +otstup*Point",Price +otstup*Point) ; C'est Price + indent(20pp)* multiplié par un point(0.0001) total-1.4805 devrait être, ( !!!!) mais écrit 0.002

etc. Ici : Comment puis-je comprendre ? Quelle est la syntaxe des formules ?

Raison: