[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 509

 
Qui,
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);
 }
sembra aver fatto tutto come dovrebbe essere.
 
Ciao, potresti dirmi se è possibile utilizzare i valori del rapporto generato quando si testano le strategie nello script. Per esempio, il profitto che viene visualizzato nella scheda del rapporto.
 
ALigarx:
Qui, penso di aver fatto tutto come dovrebbe essere.
Penso che sia sufficiente scambiare le linee
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); 
 

Aiuto professionale.

Ho bisogno di una funzione per calcolare lo spread medio, ad esempio 1 minuto fa, 3 minuti fa e 5 minuti fa. grazie.

 
T-G:

Aiuto professionale.

Ho bisogno di una funzione per calcolare lo spread medio, ad esempio 1 minuto fa, 3 minuti fa e 5 minuti fa. grazie.


Per poterlo contare, bisogna anche immagazzinarlo.
 
Vinin:

Per poterlo contare, deve anche essere memorizzato.
Per 3-5 min puoi anche memorizzarlo in variabili. puoi contare ogni minuto come media del max-min, e poi memorizzarlo in una media rimisurata di 1 min o in un array.
 
T-G:
Per 3-5 min puoi anche farlo in variabili. contare ogni minuto come media del max-min, e poi memorizzarlo in una media rimisurata di 1min o in un array.

Questo esiste da molto tempo. Ed era sul forum
 
Vinin:
Questo esiste da molto tempo. È stato anche sul forum.
Può essere preso come base.
 

Buon pomeriggio.

Un consiglio per un principiante.

Esiste un tale copione:

#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()
  }
//--------------------------------------------------------------------

Perché temp_A in Comment() esce come 0.00000000, ma Alert(Arr_1[i]) nel ciclo esce come dovrebbe?

 

Come posso richiedere programmaticamente il download/aggiornamento di un programma?