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

 
Ici,
int X=0;
double S = 0.0000;
extern double       lot=0.1;
extern double       koef=1.5;
extern int       SL=10;
extern int       TP=10;
double dl;
double a;

int init()
  {
  a=lot;
   return(0);
  }

int deinit()
  {

   return(0);
  }


int start()
 {   
               
              
              
                S=Open[0];
                Sleep(1000);
                
             
             if(OrdersTotal() == 0 && X==1)
              { 
              if (Close[0]>dl){lot=a;}
              X=0;
              }
              
              if(OrdersTotal() == 0 && X==2)
              { 
              if (Close[0]<dl){lot=a;}
              X=0;
              }
                
             
             
 
                   if (OrdersTotal() == 0 && Close[0]>S && Close[1]>Open[1]) 
                           {
                            dl=Close[0];
                            OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-SL*0.0001,Ask+TP*0.0001,"",14774,0,Blue); 
                            lot=lot*koef;
                            X=1;            
                           }
                   
                    if(OrdersTotal() == 0 && Close[0]<S && Close[1]<Open[1]) 
                           {
                            dl=Close[0];
                            OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SL*0.0001,Bid-TP*0.0001,"",14774,0,Red); 
                            lot=lot*koef;
                            X=2;
                           }

   return(0);
 }
semble avoir fait tout ce qu'il fallait.
 
Bonjour, pourriez-vous me dire s'il est possible d'utiliser les valeurs du rapport généré lors du test des stratégies dans le script. Par exemple, le bénéfice qui est affiché dans l'onglet du rapport.
 
ALigarx:
Ici, je pense que j'ai tout fait comme il faut.
Je pense que c'est suffisant pour échanger les lignes
OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-SL*0.0001,Ask+TP*0.0001,"",14774,0,Blue);

и

OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SL*0.0001,Bid-TP*0.0001,"",14774,0,Red); 
 

Aide aux professionnels.

J'ai besoin d'une fonction pour calculer l'écart moyen, par exemple il y a 1 minute, 3 minutes et 5 minutes. Merci.

 
T-G:

Aide aux professionnels.

J'ai besoin d'une fonction pour calculer l'écart moyen, par exemple il y a 1 minute, 3 minutes et 5 minutes. Merci.


Pour pouvoir le compter, il faut aussi le stocker.
 
Vinin:

Pour pouvoir le compter, il faut aussi le stocker.
Pour les 3-5 min, vous pouvez également les stocker dans des variables. Vous pouvez compter chaque minute comme une moyenne des max-min, et ensuite la stocker dans une moyenne remesurée de 1min ou dans un tableau.
 
T-G:
Pour 3-5 min, vous pouvez aussi le faire en variables. Comptez chaque minute comme une moyenne du max-min, puis stockez-la dans une moyenne remesurée de 1min ou dans un tableau.

Cela existe depuis longtemps. Et c'était sur le forum
 
Vinin:
Cela existe depuis longtemps. C'était aussi sur le forum.
Il peut être pris comme base.
Dossiers :
 

Bon après-midi.

Un conseil à un débutant.

Il existe un tel scénario :

#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии

double Buf_0[];     // Открытие индикаторных массивов
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
//--------------------------------------------------------------------
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
   double Arr_1[9999], temp_A;
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=High[i];             // Значение 0 буфера на i-ом баре
      Arr_1[i]=Close[i]-Open[i];
      Alert(Arr_1[i]);
      i--;                          // Расчёт индекса следующего бара
     }
   ArraySort(Arr_1,WHOLE_ARRAY,0,MODE_DESCEND);
   temp_A=Arr_1[0];
   Comment(DoubleToStr("temp_A",8)," - ", Counted_bars);
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------

Pourquoi temp_A dans Comment() affiche-t-il 0.00000000, mais Alert(Arr_1[i]) dans la boucle affiche ce qu'il devrait ?

 

Comment puis-je demander par programme le téléchargement ou la mise à jour d'un calendrier ?