MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 357

 
STARIJ :
Her tik için Tarih, Saat, Teklif ve hesaplamalarınızın sonuçlarını bir dosyaya yazmaya çalışın. Ardından Excel'e yükleyin ve kontrol edin. Programın her on satırını koordine etmek pek mantıklı değil!

Ama bakın, koşullu operatörün her dalında geri döndünüz, yani. her zaman yürütülür. Sonra onu koşullu operatörün dışına çıkarıyoruz. Alırız:

Teklif[1] - olur mu?


Teşekkür ederim. Şimdi deneyeceğim. Kodunuzun özünü anladım ve bu benim için şimdiden büyük bir başarı :) Eksiklerimi gördüm.

SRC düğmesi nedir?

 
STARIJ :
Her tik için Tarih, Saat, Teklif ve hesaplamalarınızın sonuçlarını bir dosyaya yazmaya çalışın. Ardından Excel'e yükleyin ve kontrol edin. Programın her on satırını koordine etmek pek mantıklı değil!

Ama bakın, koşullu operatörün her dalında geri döndünüz, yani. her zaman yürütülür. Sonra onu koşullu operatörün dışına çıkarıyoruz. Alırız:

Teklif[1] - olur mu?


Kodu , özel göstergenin "yapıcısı"na ekledim. Derlenmiş. Derleyici 1 uyarı verdi: iki OnCalculate tanımlandı. OHLC versiyonu kullanılacak (ne yazdığını anlamadım)

Derlenmiş ürünü aldı. Grafiğe eklendi. Grafik için ayrı bir pencere açıldı, ancak keneler olmasına rağmen içinde histogram görüntüsü yok.

Sorun nedir? Söylemek?

 #property version    "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots    2
//--- plot Label1
#property indicator_label1    "Label1"
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- plot Label2
#property indicator_label2    "Label2"
#property indicator_type2    DRAW_HISTOGRAM
#property indicator_color2    clrDarkTurquoise
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1

//- local variables
int Tick, Tick2;       // Для вставки программы используйте кнопку SRC
double Bid1;

//--- indicator buffers
double          Label1Buffer[];
double          Label2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,Label1Buffer);
   SetIndexBuffer ( 1 ,Label2Buffer);
   Bid1= Bid ;
//---
   return ( INIT_SUCCEEDED );
  }
  
 
     void start()   // Вместо start более модно писать OnTick
{
     if ( Bid > Bid1) Tick++;                             
     else Tick2++;
    Bid1= Bid ;                      
}
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

 
YarTrade :

Kodu , özel göstergenin "yapıcısı"na ekledim. Derlenmiş. Derleyici 1 uyarı verdi: iki OnCalculate tanımlandı. OHLC versiyonu kullanılacak (ne yazdığını anlamadım)

Derlenmiş ürünü aldı. Grafiğe eklendi. Grafik için ayrı bir pencere açıldı, ancak keneler olmasına rağmen içinde histogram görüntüsü yok.

Sorun nedir? Söylemek?

Kodu buraya yapıştırdığınızda, SRC mesaj düzenleyici düğmesini kullanın - mesaj giriş alanının üst kısmında mesaj biçimlendirme panelinde birçok faydalı ilginç şey vardır.

Gözünüzü girdiğiniz yazıdan biraz daha yukarı kaldırmak zor olmuyor mu? Ve insanların bir ayak örtüsüne değil, normal bir koda bakması çok daha hoş, değil mi?

Sizin için kodunuzu mesajınıza doğru bir şekilde ekledim (SRC)

 
Artyom Trishkin :

Kodu buraya yapıştırdığınızda, SRC mesaj düzenleyici düğmesini kullanın - mesaj giriş alanının üst kısmında mesaj biçimlendirme panelinde birçok faydalı ilginç şey vardır.

Gözünüzü girdiğiniz yazıdan biraz daha yukarı kaldırmak zor olmuyor mu? Ve insanların bir ayak örtüsüne değil, normal bir koda bakması çok daha hoş, değil mi?

Sizin için kodunuzu mesajınıza doğru bir şekilde ekledim (SRC)


Evet. Teşekkür ederim. Bilmiyordum

 
YarTrade :

Derleyici 1 uyarı verdi: iki OnCalculate tanımlandı. OHLC versiyonu kullanılacak (ne yazdığını anlamadım)

Derlenmiş ürünü aldı. Grafiğe eklendi. Grafik için ayrı bir pencere açıldı, ancak keneler olmasına rağmen içinde histogram görüntüsü yok.

Sorun nedir? Söylemek?

Önceden, işlev Başlat olarak adlandırılıyordu, şimdi Uzman Danışmanda OnTick ve göstergede OnCalculate olarak adlandırılıyor. Derleyici uyarır: Farklı adlar altında iki kez aynı işleve sahipsiniz. Start'ın içeriğini OnCalculate'e taşıyın ve Start'ı silin. Yine de programda neyin ve nasıl görüntülenmesi gerektiğini açıklamak gerekli olacaktır. İlk önce, kendinize karar verin - ne tür bir resim çekmelisiniz? MQL dilini öğrenmeye komut dosyası yazarak başlamak daha iyidir. Uzman Danışman daha zor, gösterge daha da zor

 
STARIJ :

Önceden, işleve Başlat deniyordu, şimdi Uzman Danışmanda OnTick ve göstergede OnCalculate olarak adlandırılıyor. Derleyici uyarır: Farklı adlar altında iki kez aynı işleve sahipsiniz. Start'ın içeriğini OnCalculate'e taşıyın ve Start'ı silin. Yine de programda neyin ve nasıl görüntülenmesi gerektiğini açıklamak gerekli olacaktır. İlk önce, kendinize karar verin - ne tür bir resim çekmelisiniz? Komut dosyası yazarak MQL dilini öğrenmeye başlamak daha iyidir. Uzman Danışman daha zor, gösterge daha da zor


Start'ın içeriğini OnCalculate'e eklemek benim için bir şey çalışmıyor, bir sürü hata veriyor

 
YarTrade : içeriğini OnCalculate'e eklemek için bir şey çalışmıyor, bir sürü hata veriyor


Gösterge, yalnızca başlatma anından itibaren bilgileri görüntüler. Veri penceresi (Ctrl-D), imleç tarafından işaret edilen mumun verilerini görüntüler.

 //+------------------------------------------------------------------+
//|                                                     -Тики-07.mq4 |
//+------------------------------------------------------------------+
#property version    "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//  #property indicator_plots   2        в MQL-4 такое отсутствует
#property indicator_label1    "Вверх"
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1   Salmon
#property indicator_style1    STYLE_SOLID
#property indicator_width1    2

#property indicator_label2    "Вниз"
#property indicator_type2    DRAW_HISTOGRAM
#property indicator_color2    clrDarkTurquoise
#property indicator_style2    STYLE_SOLID
#property indicator_width2    2

datetime Время= 0 ;   // Время прошлого бара
double Bid1;

double    Buf_1[], Buf_2[]; // 2 буфера

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ()
{
   IndicatorDigits ( 0 );
   SetIndexBuffer ( 0 ,Buf_1);
   SetIndexBuffer ( 1 ,Buf_2);
   Bid1= Bid ;
}
 
 
//+------------------------------------------------------------------+
//| 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[])
{
   datetime Вр= Time [ 0 ];   // Время текущего бара
   if (Вр>Время)           // Если новый бар
   {
      Время=Вр;           // Запомнить
      Buf_1[ 0 ]= 0 ;         // и обнулить последний элемент буфера
      Buf_2[ 0 ]= 0 ;
   }

   if ( Bid > Bid1) Buf_1[ 0 ]++;                             
   else Buf_2[ 0 ]--;
   Bid1= Bid ;                      

   return (rates_total);
}
 
Alexey Kozitsyn :

:)

ve oluşturulan konumu fonksiyon adlarıyla nasıl formüle edeceksiniz?
 
STARIJ :
ve oluşturulan konumu fonksiyon adlarıyla nasıl formüle edeceksiniz?

start eski bir isimdir. OnTick() - kene işleme fonksiyonunun gerçek adı.

Ve böylece, nasıl tanımlanırsa tanımlansın, sadece "modaya uygun" kelimesi gülümsedi.

 
Alexey Kozitsyn :

start eski bir isimdir. OnTick() - kene işleme fonksiyonunun gerçek adı.

Ve böylece, nasıl tanımlanırsa tanımlansın, sadece "modaya uygun" kelimesi gülümsedi.

Kullanımdan kaldırıldı artık kullanılmamaktadır. Ve hayata başlayın ve yaşayacaksınız...