Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 697

 
atztek:
Wie findet man Objekte, die sich in einem separaten Unterfenster befinden?
Es sieht so aus (ich habe es noch nicht getestet), als ob eine Möglichkeit darin besteht, ObjectFind zu verwenden, um alle Objekte in allen Fenstern zu durchsuchen.
Ist es möglich, die Suche nur auf die Objekte eines bestimmten Unterfensters zu beschränken?


Das können Sie nicht nur, Sie müssen es auch.
 
evillive:

Sie können es nicht nur tun, Sie müssen es tun.
Nun, es wird auf die Objekte aller Unterfenster des in chart_id ausgewählten Hauptfensters beschränkt.
 

Liebe Programmierer, ich habe diese Warnung erhalten. Welche Änderungen sollte ich in den EA-Einstellungen vornehmen oder was bedeutet sie? (Ich habe den Namen des Maklers aus offensichtlichen Gründen gelöscht):

Lieber Kunde!


Wir möchten Sie
darauf hinweisen, dass aufgrund der geplanten technologischen Infrastruktur und der Modernisierung der AUSRÜSTUNG die Verbindungen zu den Datenzentren .............-Live 3 von der IP-Adresse............... wird am Samstag, den 30. August 2014, beendet und Ihre Handelsterminals werden automatisch mit einem der beiden Rechenzentren unter den folgenden Adressen verbunden:

dc1.mt4..........com:443 (USA)
dc2.mt4..........com:443 (Deutschland).


Bitte nehmen Sie ggf. entsprechende Änderungen in den Einstellungen des Handelsberaters vor.

 

Hallo!

Wie berechne ich die Höchst- und Tiefstwerte der 20 Balken für jeden Balken und lege sie auf die Linie?

#property indicator_chart_window              //Свойство:индикатор рисуется в основном окне
#property indicator_buffers 2                 // Количество буферов
#property indicator_plots   2                 // Кол-во графиков
//--- График  Max цены за период
#property indicator_label1  "Max"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- График Min цены за период
#property indicator_label2  "Min"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- Объявление массивов
double         MaxBuffer[];
double         MinBuffer[];

extern int Quant_Bars=20;                       //Количество баров
                                                //Переменные для горизонтальной линии по максимуму и мин

int pos; 
   double dMaximum;                          // Максимальная цена
   double dMinimum;       
//+------------------------------------------------------------------+
//| Специальная функция OnInit                     |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Отображение данных из буфера
   SetIndexBuffer(0,MaxBuffer);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,MinBuffer);
   SetIndexStyle(1,DRAW_LINE);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int counted_bars=IndicatorCounted(); // переменная для хранения кол-ва баров
//---- Проверка есть,ли ошибки
   if(counted_bars<0) return(-1);

//---- Доп проверка учета неучтенных баров
 if(counted_bars>0) counted_bars--;

   pos = Bars-counted_bars;

//---- Основной расчетный цикл
   while(pos>=0)
     { 
                           // Текущая минималная цена
      dMinimum = GetMinPrice();
      dMaximum = GetMaxPrice();
   
      MaxBuffer[pos] = dMaximum;
      MinBuffer[pos] = dMinimum;
      pos--;
     }

   Comment("Кол-во баров ",Bars,"Кол-во непосчитанных свечей\n"
   ,pos,dMinimum,dMaximum);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

//--------------------Функция минимальной цены за выбранный промежуток времени-----------------

double GetMinPrice()
  {
      double dLow= 1000000;                        // Минимальный уровень
      double dPriceLow; 
   for(int i=1;i<= Quant_Bars;i++) // От 1 (!) до..
     {
      dPriceLow=iLow(Symbol(),0,i);          // узнаем текущую минимальную цену i-бара
      if(dPriceLow<dLow)                     // Если текущий Low бара < известного dLow
         dLow=dPriceLow;                     // то оно и будет минимумом

     }
   return(dLow);
  }
//--------------------Функция минимальной цены за выбранный промежуток времени-----------------

double GetMaxPrice()
  {
   double dHigh=0;                        // Цена макс уровня
   double dPriceHigh;                     // Текущая максимальная цена i-бара
   for(int i=1;i<=Quant_Bars;i++)         // От 1 (!) до..
     {
      dPriceHigh=iHigh(Symbol(),0,i);     // узнаем текущую максимальную цену i-бара
      if(dPriceHigh>dHigh)                // Если текущий Low бара < известного dLow
         dHigh=dPriceHigh;                       // то оно и будет минимумом

     }
   return(dHigh);
  }

Ich kann es nur für den 0. Takt verwenden.

 
AndrianoS:

Hallo!

Wie berechne ich die Höchst- und Tiefstwerte der 20 Balken für jeden Balken und lege sie auf die Linie?

Ich kann sie nur für den 0-ten Takt verwenden.

Ich würde gerne wissen, was mit ihnen los ist. :

//+------------------------------------------------------------------+
double GetMinPrice(string sy, int timeframe, int count=WHOLE_ARRAY, int begin=0) {
   return(iLow(sy,timeframe,iLowest(sy,timeframe,MODE_LOW,count,begin)));
   }
//+------------------------------------------------------------------+
double GetMaxPrice(string sy, int timeframe, int count=WHOLE_ARRAY, int begin=0) {
   return(iHigh(sy,timeframe,iHighest(sy,timeframe,MODE_HIGH,count,begin)));
   }
//+------------------------------------------------------------------+

Ich habe nicht weiter nachgeforscht...

Hier ist dies: "...für jeden Balken den Wert des 20-Balken-Hochs und -Tiefs...". - ist überhaupt nicht klar.

 
AndrianoS:

Hallo!

Wie berechne ich die Höchst- und Tiefstwerte der 20 Balken für jeden Balken und lege sie auf die Linie?

Ich kann es nur für den 0. Takt verwenden.

Alles ist viel einfacher. Ich habe auch einmal versucht, verschiedene Kanalindikatoren zu verwenden. Hier ist der Code

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Aqua
//--- input parameters
extern int       min=20;
extern int       max=20;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double minimum,maximum;
   if(counted_bars>0)
      counted_bars--;  
   limit=Bars-counted_bars;
   for(int i=0;i<limit;i++)
   {
      minimum=Low[iLowest(NULL,0,MODE_LOW,min,i)];
      maximum=High[iHighest(NULL,0,MODE_HIGH,max,i)];
      ExtMapBuffer1[i]=minimum;
      ExtMapBuffer2[i]=maximum;
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
Forexman77:

Es ist viel einfacher als das. Ich habe auch einmal versucht, verschiedene Kanalanzeigen zu erstellen. Hier ist der Code


Vielen Dank an alle, die geantwortet haben, ich werde mehr lernen.
 
Was hilft Ihnen besser, ein einfacher gleitender Durchschnitt oder ein exponentieller Durchschnitt, und wenn er überhaupt nicht hilft, warum verwenden Sie ihn?
 

Leute, sagt mir, wie man die Periodeneinstellung für den Indikator anzeigt. Ich habe es auf diese Weise versucht, es funktioniert nicht:

externer String Per= H1;

double prodaem1=iCustom(Symbol(),PERIOD_ Per, "super-signals-channel",2,500,2,sdvig);

 
woin2110:

Leute, sagt mir, wie man die Periodeneinstellung für den Indikator anzeigt. Ich habe es auf diese Weise versucht, es funktioniert nicht:

externer String Per= H1;

double prodaem1=iCustom(Symbol(),PERIOD_ Per, "super-signals-channel",2,500,2,sdvig);


Sie können dies tun: extern int Per= 60; //Zeichenfolge H1;

double prodaem1=iCustom(Symbol(),Per, "super-signals-channel",2,500,2,sdvig); //PERIOD_

Siehe dazu die Dokumentation!