Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 697

 
atztek :
Ayrı bir alt pencerede bulunan nesneler nasıl bulunur?
Tüm pencerelerden tüm nesneler üzerinde yinelenen ObjectFind kullanan seçeneklerden biri gibi görünüyor (henüz test edilmedi).
Kendimizi hemen yalnızca belirli bir alt pencerenin nesneleriyle sınırlamak mümkün müdür?


sadece mümkün değil, aynı zamanda gereklidir.
 
evillive :

sadece mümkün değil, aynı zamanda gerekli.
Eh, sadece chart_id'de seçilen ana grafik penceresinin tüm alt pencerelerinin nesneleri ile sınırlı olacaktır.
 

Sevgili programcılar, böyle bir uyarı aldım , danışmanların ayarlarında ne gibi değişiklikler yapılmalı ya da ne demek istiyorsun? (bariz nedenlerden dolayı, komisyoncunun adı silindi):

Değerli Müşterimiz !


Planlanan teknolojik altyapı ve EKİPMAN modernizasyonu nedeniyle veri merkezlerine bağlantıların .............
- IP adresinden canlı 3 ....... _ .. ...... 30 Ağustos 2014 Cumartesi günü sonlandırılacaktır Ticaret terminalleriniz aşağıdaki adreslerdeki iki veri merkezinden birine otomatik olarak bağlanacaktır :

dc1.mt4..........com:443 (ABD )
dc2.mt4..........com:443 ( Almanya ) .


Lütfen , gerekirse ticaret danışmanlarının ayarlarında uygun değişiklikleri yapın .

 

Merhaba!

Lütfen söyle bana, hatanın ne olduğunu anlayamıyorum. 20 bar'lık yüksek ve düşük değerlerin her çubuk için bir çizgi olarak nasıl hesaplanıp uygulanacağını

 #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);
  }

Şimdiye kadar sadece 0. çubuk için hesaplama yapmak mümkündür.

 
AndrianoS :

Merhaba!

Lütfen söyle bana, hatanın ne olduğunu anlayamıyorum. 20 bar'lık yüksek ve düşük değerlerin her çubuk için bir çizgi olarak nasıl hesaplanıp uygulanacağını

Şimdiye kadar sadece 0. çubuk için hesaplama yapmak mümkündür.

Ve neden memnun değiller? :

 //+------------------------------------------------------------------+
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)));
   }
//+------------------------------------------------------------------+

Daha fazla bakmadım...

İşte bu: "...her çubuk için 20-bar yüksek ve düşük değeri..." - hiç net değil.

 
AndrianoS :

Merhaba!

Lütfen söyle bana, hatanın ne olduğunu anlayamıyorum. 20 bar'lık yüksek ve düşük değerlerin her çubuk için bir çizgi olarak nasıl hesaplanıp uygulanacağını

Şimdiye kadar sadece 0. çubuk için hesaplama yapmak mümkündür.

Her şey çok daha kolay. Bir şekilde çeşitli kanal göstergeleri de yapmaya çalıştım. kodu tut

 #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 :

Her şey çok daha kolay. Bir şekilde çeşitli kanal göstergeleri de yapmaya çalıştım. kodu tut


Cevap veren herkese teşekkürler, daha fazla çalışacağım.
 
Ve basit bir hareketli ortalama veya üstel bir ortalama ile size daha iyi ne yardımcı olur, eğer hiç yardımcı olmazlarsa, neden onları kullanıyorsunuz?
 

İnsanlar bana gösterge için dönem ayarının nasıl görüntüleneceğini söylüyor. Bunu denedim, çalışmıyor:

dış dize Per= H1;

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

 
woin2110 :

İnsanlar bana gösterge için dönem ayarının nasıl görüntüleneceğini söylüyor. Bunu denedim, çalışmıyor:

dış dize Per= H1;

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


Böylece şunları yapabilirsiniz: extern int Per= 60; // string H1;

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

Genel olarak, belgelere bakın!