[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 509

 
Hier,
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);
 }
scheint alles so gemacht zu haben, wie es sein sollte.
 
Hallo, könnten Sie mir bitte sagen, ob es möglich ist, die Werte im Bericht zu verwenden, der beim Testen von Strategien im Skript erstellt wird. Zum Beispiel der Gewinn, der auf der Registerkarte Bericht angezeigt wird.
 
ALigarx:
Ich denke, ich habe hier alles so gemacht, wie es sein sollte.
Ich denke, es reicht aus, die Leitungen zu tauschen.
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); 
 

Profi-Hilfe.

Benötige eine Funktion zur Berechnung des durchschnittlichen Spreads, z.B. vor 1 Minute, vor 3 Minuten und vor 5 Minuten. danke.

 
T-G:

Profi-Hilfe.

Benötige eine Funktion zur Berechnung des durchschnittlichen Spreads, z.B. vor 1 Minute, vor 3 Minuten und vor 5 Minuten. danke.


Um sie zu zählen, muss sie auch gespeichert werden.
 
Vinin:

Um sie zu zählen, muss sie auch gespeichert werden.
Für 3-5 Minuten können Sie sie auch in Variablen speichern. Sie können jede Minute als Durchschnitt der Max-Min zählen und dann in einem neu gemessenen Durchschnitt von 1 Minute oder in einem Array speichern.
 
T-G:
Für 3-5 Minuten können Sie es auch in Variablen tun. Zählen Sie jede Minute als einen Durchschnitt der Max-Min, und speichern Sie es dann in einem neu gemessenen Durchschnitt von 1 Minute oder in einem Array.

Das gibt es schon seit langem. Und es war im Forum
 
Vinin:
Das gibt es schon seit langem. Das stand auch schon im Forum.
Sie kann als Grundlage genommen werden.
Dateien:
 

Guten Tag.

Ein Ratschlag für einen Neuling.

Es gibt ein solches Skript:

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

Warum wird temp_A in Comment() als 0.00000000 ausgegeben, aber Alert(Arr_1[i]) in der Schleife gibt aus, was es sollte?

 

Wie fordere ich programmatisch einen Download/eine Aktualisierung des Zeitplans an?