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

 

Merhaba.

Lütfen zikzakları boyamama yardım et.

Bunu, aşağıdan yukarıya olan mesafe >=100 puan ise, parçayı yeşil renklendirecek şekilde yapmak istiyorum.

 
Dimitry-1983 :

Merhaba!

Ben zaten kafamı kırdım. Çift dizide belirli bir fiyatın olup olmadığı nasıl kontrol edilir?

Bunu test etmek için yazdım:



11, 22, 33, 44 - komut dosyası sorunsuz bulur (terminalde bu tür siparişler vardır). Ancak, örneğin 45 fiyatını işlerse, yine de 3 döndürür (dizideki fiyat konumu 44).

İhtiyacım olan tek şey aslında bir bool - dizide işlenmekte olan siparişin bir fiyatı varsa, böylece true, değilse, false döndürür. Ancak dilde henüz böyle bir işlev bulamadım.

in işlevi , dizinin ilk boyutunda bulunan ilk öğenin dizinini döndürür, ancak istenen değer bulunamazsa, istenen değerin aralarında bulunduğu öğelerin en yakın alt değerinin dizinini döndürür. Bu nedenle, bu görev için, istenen değer ile bulunan değerin eşitliğini de kontrol etmek gerekir. Karşılaştırma sonucu true veya fakse olacaktır.

 
STARIJ :

Ve neden göstergeden bir şey yazdıralım? Her şey ekranda - bu yüzden bir gösterge. Bir tabloya ihtiyacım olduğunda betiği iCustom() ile çalıştırırım


Burada yazdıklarından hiçbir şey anlamadım. Bir nedenden dolayı her zaman boş olan bir dosyam olduğu gerçeğinden bahsediyorduk. Veri dizisini bir dosyaya indirmenin bir yolu yoktur.

Bir dosyaya kaydedilecek verilere ihtiyacım var. Gösterge 1 yıl boyunca grafiğe eklenirse, yıl için okumalarının tüm kayıtları vardır!

 
Alekseu Fedotov :

ne kadar ilginç dikmişsin

Bunu yanlışlıkla dene


Teşekkür ederim! Ama bunu zaten denedim ve yardımcı olmadı.

 

Söyleyin güzel insanlar, neden hatalar çıkıyor?

 //--- input parameters
input int       MyLevel= 100 ; // установка уровня (отступ) выше (ниже) текущей цены;
//--- indicator buffers
double          Label1Buffer[];
double          Label2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,Label1Buffer);
   SetIndexBuffer ( 1 ,Label2Buffer);
   double R1 = 0 ; // служеные переменные принимаются равными 0;
   double R2 = 0 ; // служебные переменные; принимаются равными 0;
//---
   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[])
  {
//---

   double i= Bid ; // переменной i присваивается значение текущего курса;

   if (i>=R1) // если текущий курс >= служебной переменной R1;
     {
      R1=i+(MyLevel* Point ); // то присваиваем R1 новое значение равное текущему курсу + отступ,
      R2=i-(MyLevel* Point ); // также присваиваем R2 новое значение = текущий курс - отступ;
     }
   else
     {
       break ;   // иначе, выходим из оператора
     }
   if (i<=R2) // если текущий курс <= служебной переменной R2;
     {
      R1=i+(MyLevel* Point ); // то присваиваем R1 новое значение равное текущему курсу + отступ,
      R2=i-(MyLevel* Point ); // также присваиваем R2 новое значение = текущий курс - отступ;
     }
   else
     {
       break ; // иначе выходим
     }

   Label1Buffer [ 0 ] = R1; // заносим в буфер данные R1
   Label2Buffer [ 0 ] = R2; // и R2

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

Hatalar:

'R1' - bildirilmemiş tanımlayıcı seviyem.mq4 61 on

tür dönüştürme nedeniyle olası veri kaybı seviyem.mq4 63 dokuz

'R2' - bildirilmemiş tanımlayıcı seviyem.mq4 64 7

';' - 'break' bazı döngü veya anahtar ifadeleri içinde kullanılmalıdır seviyem.mq4 68 12

';' - 'break' bazı döngü veya anahtar ifadeleri içinde kullanılmalıdır seviyem.mq4 77 12


 
YarTrade :

Söyleyin güzel insanlar, neden hatalar çıkıyor?

Hatalar:

'R1' - bildirilmemiş tanımlayıcı seviyem.mq4 61 on

tür dönüştürme nedeniyle olası veri kaybı seviyem.mq4 63 dokuz

'R2' - bildirilmemiş tanımlayıcı seviyem.mq4 64 7

';' - 'break' bazı döngü veya anahtar ifadeleri içinde kullanılmalıdır seviyem.mq4 68 12

';' - 'break' bazı döngü veya anahtar ifadeleri içinde kullanılmalıdır seviyem.mq4 77 12


R1, R2 sırasıyla işlevin içinde bildirilir - yalnızca orada görünürler - yereldirler.
break döngülerde ve geçişlerde kullanılır
 

Herkese merhaba MT5 için rapor yöneticisine benzer test raporlarını birleştirmek için bir program olup olmadığını kim bilebilir söyleyin, aksi takdirde rapor yöneticisi onları açmaz.

 
iv1986 :

Herkese merhaba MT5 için rapor yöneticisine benzer test raporlarını birleştirmek için bir program olup olmadığını kim bilebilir söyleyin, aksi takdirde rapor yöneticisi onları açmaz.

MT5'te kodu yeniden yazmak ve çoklu para birimi testi yapmak daha kolaydır. MT4 platformunda test yaparken kesinlikle yanlış sonuçlar alıyorsunuz ve nihai sonuç kritik bir şekilde çarpıtılacak ve bunu analiz etmenin bir anlamı yok.

İşte 23 karakterlik testlerden biri, her şey net ve neredeyse görsel


 

Her enstrüman için farklı parametrelerim ve stratejilerim varsa çok enstrümanlı Expert Advisor yapmam mümkün müdür?

Vitaly Muzichenko :

MT5'te kodu yeniden yazmak ve çoklu para birimi testi yapmak daha kolaydır. MT4 platformunda test yaparken kesinlikle yanlış sonuçlar alıyorsunuz ve nihai sonuç kritik bir şekilde çarpıtılacak ve bunu analiz etmenin bir anlamı yok.

İşte 23 karakterlik testlerden biri, her şey net ve neredeyse görsel


Ve her enstrüman için farklı stratejilerim ve buna göre kodum varsa böyle bir Expert Advisor yapmak mümkün müdür?

 
iv1986 :

Her enstrüman için farklı parametrelerim ve stratejilerim varsa çok enstrümanlı Expert Advisor yapmam mümkün müdür?

Ve her enstrüman için farklı stratejilerim ve buna göre kodum varsa böyle bir Expert Advisor yapmak mümkün müdür?

Çoklu para birimi danışmanı yazabilirsiniz, tek dosyada olacaktır. Bir testçinin farklı çiftler için stratejileri tek bir dosyada birleştirmesi mümkündür ve ayrıca bunları çevrimiçi olarak tek bir grafikte takas edebilirsiniz, ancak bunları çevrimiçi olarak da bölebilirsiniz, böylece her strateji Uzman Danışmanın üzerine atıldığı sembol üzerinde işlem görür. Olasılıklar sınırsız