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

 
ILL:
Tous même((((
Désolé, j'ai confondu - vous devriez mettre 1 ici, alors ce sera correct. Je veux dire que le prix de clôture/clôture sur le graphique correspondra au prix dans la fonction.
 
khorosh:
Désolé, j'ai confondu - vous devez mettre 1 ici, alors ce sera correct. Je veux dire que le prix de clôture/clôture sur le graphique correspondra au prix dans la fonction.

HOORAY ! C'est du travail !!!!

Merci beaucoup !

 

Regardez !

//+------------------------------------------------------------------+
//| скорость.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 razniza=20;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
double HIGH;double LOW;
int start()
{ HIGH=iHigh( NULL, PERIOD_M1, 0) ;
LOW=iLow( NULL, PERIOD_M1, 0);if (HIGH-LOW>razniza*Point || LOW-HIGH<0-razniza*Point)
Alert("Движение!!!",Symbol() );



// PERIOD_M1;PRICE_HIGH;PRICE_LOW;double High[];iHigh( NULL, PERIOD_M1, 0) ; iLow( string symbol, int timeframe, int shift) ;

//----

//----
return(0);
}
//+------------------------------------------------------------------+
 
Dimka-novitsek:

Regardez !

Whoa !
 
Merci !!!!!
 
Zhunko:

Eh bien, enfin ! Lisez la suite ici. Seulement dans les fonctions de démarrage du conseiller expert et du script avec attente. Dans tous les autres endroits, elle est strictement interdite.

Votre code ne correspond pas aux normes de MQL4. De plus, il a été écrit quelque part que le temps d'attente dans les fonctions ininit et deinit lors d'un appel système est limité à 2,5 secondes. Ensuite, la fonction est interrompue de force.

Tout fonctionne. Voici le code pour le mini système en temps réel. En dehors de la fonction start(). Bien que, bien sûr, ce n'est absolument pas le principal de le mettre dans init().

Voici le code vérifié sur le terminal de travail ; l'ordre s'ouvre et toutes les alertes sont écrites dans la fenêtre de message. Fonction Sleep() également

La fonction Sleep() fonctionne bien aussi. Je l'ai vérifiée avec un temps d'attente de 30 secondes - Sleep(30000). Bien qu'une telle attente soit absolument inutile, 50 ms suffisent.

//--- input parameters
  extern int       int10 = 10; // вызов процедуры каждые 10 сек.
  extern int       int30 = 30; // вызов процедуры каждые 30 сек.
  extern int       int60 = 60; // вызов процедуры каждые 60 сек.                

  int  orders; // кол-во открытых ордеров

int init()
  {
   bool end = 1; // для завершения работы установить в false
   
   bool f_int10 = 1; // флаг разрешающий прерывание int10
   bool f_int30 = 1; // флаг разрешающий прерывание int30
   bool f_int60 = 1; // флаг разрешающий прерывание int60
   
   
   int  St_Time_10; // стартовое время отсчета 10 сек;
   int  St_Time_30; // стартовое время отсчета 30 сек;
   int  St_Time_60; // стартовое время отсчета 60 сек;
   
   St_Time_10 = TimeLocal();
   St_Time_30 = TimeLocal();
   St_Time_60 = TimeLocal();
   
   

//-----------------------------основной цикл программы--------------------------------
   while(end)
     {
       Sleep (50);
       if ((TimeLocal()==(St_Time_10 + int10))&&f_int10) {St_Time_10 = TimeLocal(); Call_int10();}
       if ((TimeLocal()==(St_Time_30 + int30))&&f_int30) {St_Time_30 = TimeLocal(); Call_int30();}
       if ((TimeLocal()==(St_Time_60 + int60))&&f_int60) {St_Time_60 = TimeLocal(); Call_int60();}
       RefreshRates();
      }  
   return(0);
  }
//-----------------------------конец основного цикла----------------------------------
//--------------------процедура вызываемая по прерыванию int10------------------------
  void Call_int10()
        {
          Alert ("Прерывание = 10 сек. Котировка >>>>", Close[0]);
        }
//------------------------------------------------------------------------------------
//--------------------процедура вызываемая по прерыванию int30------------------------
  void Call_int30()
        {
        Alert ("Прерывание === 30 сек.  В резерве.");
        }
//------------------------------------------------------------------------------------
//--------------------процедура вызываемая по прерыванию int60------------------------
  void Call_int60()
 {
        Alert ("Прерывание ===== 60 сек");
        if (orders!=0) return;
        if (OrdersTotal( ) == 0) {
            OrderSelect(1, SELECT_BY_POS, MODE_TRADES);
            int ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0, "from init()",123,Blue);
                              if (ticket<0)
                                       {
                                         Alert("OrderOpen BUY failed, with error #",GetLastError()); return;
                                       }      
        Alert (" Открытие ордера BUY из init() прошло успешно");                 
        orders++;              
                                  }
 }
//------------------------------------------------------------------------------------
//---------------------------эти функции не используются------------------------------
int start()  {return(0);}
//--------------------------------------------
int deinit() {return(0);}
//--------------------------------------------
 

Question sur les tableaux.

Il y a trois tableaux unidimensionnels :

1. закрытие бара

Close[i]={Close_1,Close_2,...,Close_i};

2. открытие бара

Open[i]={Open_1,Open_2,...,Open_i};

3. его индекс

Index[i]={1, 2, ..., i};

Задача: необходимо организовать двумерный массив mas[i,2], отвечающий условиям

mas[i,0]= |Close_i-Open_i|;

mas[i,1]=i;

Как это правильно сделать?

Veuillez m'aider à répondre à cette question.
 
J'ai le problème suivant, je me suis inscrit sur MT4 hier, j'ai commencé à me familiariser et à expérimenter sur la démo. J'ai décidé de continuer à étudier MT4 le matin, mais le graphique s'est arrêté à l'heure du 6 mai 23:57, je n'ai pas essayé de redémarrer l'ordinateur ou de réinstaller le programme, que faire ?
 

Arthibald:
1. У меня такая проблема, вчера зарегистрировался на МТ 4, начал ознакамливатся и эксперементировать на демо. С утра решил продолжить изучать МТ4, но графики остановились на отметке времени 6 мая 23:57, ни помогает ни перезагрузка компа, не переутановка программы,...

2.... que faire ?


1. Le monde s'est effondré, le marché est en hausse - regardez le jour de la semaine... :-)) TOUS LES GENS NORMAUX ONT LE WEEK-END DE LIBRE... :-)))

2. repos... :-)))

 
Roman.:


1. Le monde s'est effondré, le marché est en hausse - regardez le jour de la semaine...:-)) TOUS LES GENS NORMAUX ONT LE WEEK-END DE LIBRE... :-)))

2. le repos...:-)))

Merci :-) Je suppose que je suis tiré d'affaire, mais c'est comme ça).
Raison: