Çaydanlıktan gelen sorular - sayfa 132

 
Yedelkin :

Başka bir göstergenin verilerini hesaplamakla ilgileniyorsanız, bu şekilde yapılır. Önce aynı gösterge kendi veri hesaplama yöntemi ile oluşturulur, ardından bu göstergenin tutacağı alınır ( MQL5 Referans / Teknik göstergeler / iCustom ) ve bu tutamaç yeni göstergede zaten kullanılıyor. Örneğe yakından bakın. Örnekle ilgili sorularınız varsa -

sorularım var. hala anlamadım.
Tamam, Custom Moving Average.mq5'i temel alalım.

listeye yeni bir yumuşatma prosedürü MODE_MYMA eklemek sorun değil.

Soru, verilerin nasıl yükleneceğidir. başka bir göstergenin i-custom aracılığıyla? İyi. Örneğin ikinci forma göre yapılan herhangi birini örnek alıyoruz (gösterge birincisine göre yapılmışsa.. high-low nereden alınır anlamadım.. sadece şuna göre mi demek oluyor? ikinci form?)

tamam ilan edelim

int yeniHandl;

onInit'te onu tanımlıyoruz (örnek olarak - bir parabolik. Umurumda değil, asıl mesele bunun 2. türden olması, değil mi? Kendinizinkini nasıl uygulayacağınız yaklaşık olarak açık)

newHandl=iCustom(_Symbol,0,"ParabolicSAR.mq5",0.02,0.2);

sıradaki ne? Standart fiyat yerine onCalculate slip'inde mi? ya da ne?

HesaplaEMA(oranlar_toplam,önceki_hesaplanmış,başla,yeniHandl); ???

rugaetso. veya nasıl? açıkla anlamadım...

Evet, hala mkl4 şablonları açısından düşünüyorum. işte bu basit - bir döngü, veriler (herhangi bir!) alındı, düzeltildi, çıkarıldı.
tam orada .... yakalamanın ne için olduğu belli değil ..

 
GameOver :

(gösterge birinci forma göre yapılırsa.. Yüksek-düşük nereden alınır anlamadım.. sadece ikinci forma göre mi kastediliyor?)

Evet, merhaba hakkında, bu sadece makalelerle nasıl başa çıkacağınıza dair bir örnekti. İlk form için, close[i]/2 [veya sqrt( close[i]/2 )] çizgisini oluşturma görevini üstlenebiliriz. Genel olarak, bir diziyi kullanırken bir dizi varyasyonla karşılaşabilirsiniz.

Oyun Bitti :

tamam ilan edelim

int yeniHandl;

onInit'te onu tanımlıyoruz (örnek olarak - bir parabolik. Umurumda değil, asıl mesele bunun 2. türden olması, değil mi? Kendinizinkini nasıl uygulayacağınız yaklaşık olarak açık)

newHandl=iCustom(_Symbol,0,"ParabolicSAR.mq5",0.02,0.2);

Her şey harika. Hemen ekleyeceğim.

Alınan gösterge tanıtıcısı doğruysa, böyle bir göstergenin arabelleklerine erişebileceğimiz anlamına gelir. MQL5 Referans / Teknik Göstergeler / iCustom'dan bir örneğe tekrar bakın Şu satır var:

 //--- скопируем значения индикатора Custom Moving Average в наш индикаторный буфер
   int copy= CopyBuffer (MA_handle, 0 , 0 ,rates_total,Label1Buffer);

Bu hattın nerede olduğunu görün. Şimdi MQL5 Reference / Timeseries and Indicators Access / CopyBuffer'ı okuyun (...Tekrar: örnekler satır satır analiz edildiğinde çok şey netleşir).

Seçtiğiniz herhangi bir gösterge arabelleğinden veri almaya çalışın. Elimde bir terminal yok, ancak parabolik olarak hangi arabelleklerin hesaplandığını ve numaralandırılmasını kendiniz görebilirsiniz.

Документация по MQL5: Технические индикаторы
Документация по MQL5: Технические индикаторы
  • www.mql5.com
Технические индикаторы - Документация по MQL5
 

ArrayIsSeries() ve ArrayGetAsSeries() işlevlerinin açıklaması hakkında soru.

Dizin şu ifadeyi içerir: " Fonksiyona iletilen diziler fiyat verilerini yansıtır, yani bu dizilerin bir timeseries özniteliği vardır ve bu dizileri kontrol ederken ArrayIsSeries() işlevi true değerini döndürür. Bununla birlikte, indeksleme yönü herhangi bir durumda kontrol edilmelidir. durum yalnızca ArrayGetAsSeries() işlevi tarafından ".

Bir değişmez okumadan, ArrayIsSeries() işlevi true dönse bile (yani, kontrol edilen dizinin bir zaman serisi dizisi olduğunu onaylasa), indeksleme yönünün her durumda yalnızca ArrayGetAsSeries() işlevi tarafından kontrol edilmesi gerektiği sonucu çıkar. Sonuçlarının hala ek olarak kontrol edilmesi gerekiyorsa, ArrayIsSeries() işlevinin kullanıma sunulmasının anlamı açık değildir. Amaç ne? Ne, bir dizinin zaman serisi olabileceği, ancak indeksleme yönünün bir zaman serisininki gibi olmayacağı durumlar olabilir (AS_SERIES bayrağı ayarlanmaz)?

 


Mql4'ten Mql5'e geçiş yaparken bir Lot hatası oluştu:

'Lot' - sabit değiştirilemez

 input double Lot = 0.1 ; // Lot

if (MartingaleType == 7 )
 {
 if (Counter1== 1 )
 Lot=Lots() ;
}

Nasıl düzenlenir?

 
Dark.Angel :


Mql4'ten Mql5'e geçiş yaparken bir Lot hatası oluştu:

'Lot' - sabit değiştirilemez

Nasıl düzenlenir?

Mümkün değil. Bu bir hata değil, bir özelliktir. :)

mql5'te giriş değişkenleri değiştirilmez (const).

Basit bir ayrıştırma yapın:

 input int x= 5 ;
input double StartLot = 0.01 ;

int X;
double Lot;
...
...
void OnInit ()
  {
   ....
    X=x;
    Lot=StartLot;
   .......
  }
.....
void OnStart ()
  {
   ....
   Lot=Lots();
  }
 

Sorunun devamında. " MQL5 Reference / Array Operations / ArraySetAsSeries" bölümünde, her tikte const datetime &time[] dizisine ArraySetAsSeries() işlevinin uygulandığı bir örnek var:

 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[])
  {
//---  будем хранить время открытия текущего нулевого бара
   static datetime currentBarTimeOpen= 0 ;
//--- перевернем доступ к массиву time[] - сделаем как в таймсерии
   ArraySetAsSeries (time, true );
//--- return value of prev_calculated for next call
   return (rates_total);
  }

Diziyle çalışmak, tıpkı bir zaman dizisinde olduğu gibi, herkes böyle mi yapar ( her bir işarette diziyi tersine çevirir)?

Başka bir soru: OnCalculate() işlevi tarafından kullanılan diziler, indekslemelerinin yönünü keyfi olarak değiştirebilir mi? Yoksa bu yönü bir kez kontrol etmek yeterli mi?

 


Mql4'ten Mql5'e geçiş yaparken bir SymbolInfoDouble hatası oluştu:
'SymbolInfoDouble' - aşırı yüklerden hiçbiri işlev çağrısına uygulanamaz

на Mql4:
double a = balance / MarketInfo ( Symbol (), MODE_MARGINREQUIRED) - 0.2 ; 

на Mql5:
double a = balance / SymbolInfoDouble ( Symbol (), 0 ) - 0.2 ;

Nasıl düzenlenir?
 
Dark.Angel :


Mql4'ten Mql5'e geçiş yaparken bir SymbolInfoDouble hatası oluştu:
'SymbolInfoDouble' - aşırı yüklerden hiçbiri işlev çağrısına uygulanamaz


Nasıl düzenlenir?

Altta neden 0 var orada özelliği belirtiyoruz.

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_double

ek olarak, 0'a bölmeyi kontrol etmek.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

Strateji test cihazının sonuçları grafikler şeklinde görüntülenir:


Grafiklerdeki farklı renklerin ne anlama geldiğini nerede göreceğimi söyleme?

 
pusheax :

Strateji test cihazının sonuçları grafikler şeklinde görüntülenir:

Grafiklerdeki farklı renklerin ne anlama geldiğini nerede göreceğimi söyleme?

Mavi - kar, kırmızı - kayıp. Ama sadece sol üst söz konusu...
Neden: