Yeni bir çubuk belirtin - sayfa 3

 

Merhaba Alain,

yorumunuz ve iyileştirmeleriniz için teşekkür ederiz.

OnTick()'teki bir işlev çağrısıyla "bool NewBar"ın global bir değişken anahtarı olduğu ilk sürümüme geri dönmeliyim.

Ya da ondan küçük bir nesne yapıyorum. Belki de en akıllı seçenek.


Ve - nedeni - "asla aynı hesaplamayı iki kez yapmayın".

miğfer

 
datetime iTime[];
datetime recent;
datetime projection;
int OnInit()
  {
//---
  int pull=CopyTime(NULL,0,0,1,iTime);
  recent=iTime[0];
  projection=recent+PeriodSeconds();
//---
   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
//---
  if(TimeCurrent()>=projection)
   {
   Print("New Bar "+TimeToString(projection,TIME_DATE|TIME_MINUTES));
   projection=projection+PeriodSeconds();
   }
  }
 

@ Doerk Hilger

Dil aynıdır, ancak ortak olmayan küçük bir işlev alt kümesine sahiptirler.

Aman Tanrım ... kesinlikle hayır!

MQ'nun ürün açıklamasında belirttiği gibi

MetaQuotes Language 5, iyi bilinen ve popüler olan С ++ programlama dilinin kavramlarına dayanmaktadır . MQL5 ayrıca üst düzey bir nesne yönelimli programlama dilidir.

https://www.metatrader5.com/en/automated-trading/mql5

Yapıların, işaretçilerin ve adreslerin işlenmesindeki bazı farklılıkların yanı sıra, en büyük nokta şudur: MQL5, tamamen farklı bir programlama paradigmasına izin veren nesne yönelimli bir program dilinin tüm özelliklerini sağlar. Bu bakış açısından MQL5, açıkça MQL4'ten başka bir sınıfa ve ayrıca başka bir dil kuşağına aittir.

Diğer bir avantaj ise hızdır. Bunu nerede okuduğumu hatırlayamıyorum: MQL5, yürütmede MQL4'ten yüz kat daha hızlı.

Ve işte dezavantaj: Yürütmede daha hızlıdır ANCAK önce profesyonel düzeyde programlama kavramlarına aşina olmanız gerekiyorsa, bir program oluşturmak çok çok yavaştır .

Bu da MQ sorununa yol açar. Bir yandan profesyonellerin pazarını elde etmek veya elinde tutmak için modern bir mesleki gelişim ortamı sunmaları gerekirken, diğer yandan programlama biliminde değil ticaretle ilgilenen tüm özel ve yarı profesyonel müşterileri kaybetmelerine izin veremezler. .




 
MQ bu noktada kafa karışıklığı yaratmak için çok şey yaptı.

Belki de haklısın.

Bakalım, bu konuya daha fazla açıklık getirmek için neler yapabiliriz.

İnsanların MQL4 sorunlarını MQL4 forumunda yayınlamalarının çok yararlı olacağını düşünüyorum. MQL5 soruları olanlar ise MQL5 forumuna yazmalıdır.

Kulağa çok kolay geliyor. . . ne düşünüyorsun?

Başlangıçta, moderatörün yanlış gönderiyi doğru foruma taşıması ve “üzgünüz, yanlış forum – bakın…” ipucu bırakması faydalı olacaktır.

Willbur

 

@ Lorentzos Roussos

Gittikçe kolaylaşıyor ;-)

Endişelendiğim şey, TimeCurrent()'in her durumda çubuklarla senkronize olup olmadığı sorusudur.

Pazartesi 2 saatlik testler yapacağım.

Willbur



 
olmalıdır: 24 saat
 
Willbur :

@ Lorentzos Roussos

Gittikçe kolaylaşıyor ;-)

Endişelendiğim şey, TimeCurrent()'in her durumda çubuklarla senkronize olup olmadığı sorusudur.

Pazartesi 2 saatlik testler yapacağım.

Willbur



Alain bu konuda beni düzeltebilir, ancak bir çubuğun zaman ufkunda kenelerin olmadığı, dolayısıyla hiçbir çubuğun yerinde olmayacağı durumlarda boşluklar bulabilirsiniz.
 
Willbur :

@ Doerk Hilger

Aman Tanrım ... kesinlikle hayır!

MQ'nun ürün açıklamasında belirttiği gibi

Yapıların, işaretçilerin ve adreslerin ele alınmasındaki bazı farklılıkların yanı sıra, en büyük nokta şudur: MQL5, tamamen farklı bir programlama paradigmasına izin veren nesne yönelimli bir program dilinin tüm özelliklerini sağlar.




Kesinlikle evet :) Ama ne demek istediğini biliyorum, her zaman MQL5'i programladığımı düşündüm, çünkü sadece nesne yönelimli kodluyorum ama şimdi öğrendiğim gibi, 600'den beri "Gelişmiş" MQL4'ü MQL5'ten başka bir şey değil ama, tıpkı fonksiyonlar alt kümesindeki küçük farklılıklarla söylendi - ve bu yerleşik MQL4 artık başka bir dil değil. Aslında Enhanced-MQL4, MetaTrader4 için MQL5'tir. Karışıklık kısmından kastım buydu. Benim için MQL5 her zaman OOP idi ve MQL4 sadece yukarıdan aşağıya spagettiydi. ben de spagetti sevmiyorum ;)

Düzenleme: Yukarıdaki ifadeniz nereden alındı ve bunu ne zaman yayınladılar? Çünkü aslında bu, ilk varsayımın doğru olduğu anlamına gelir: MQL5 .... en üst düzeyde kafa karışıklığı ;)

 
Spagettiyi severim.
 
Doerk Hilger :

Kesinlikle evet :) Ama ne demek istediğini biliyorum, her zaman MQL5'i programladığımı düşündüm, çünkü sadece nesne yönelimli kodluyorum ama şimdi öğrendiğim gibi, 600'den beri "Gelişmiş" MQL4'ü MQL5'ten başka bir şey değil ama, tıpkı fonksiyonlar alt kümesindeki küçük farklılıklarla söylendi - ve bu yerleşik MQL4 artık başka bir dil değil. Aslında Enhanced-MQL4, MetaTrader4 için MQL5'tir. Karışıklık kısmından kastım buydu. Benim için MQL5 her zaman OOP idi ve MQL4 sadece yukarıdan aşağıya spagettiydi. ben de spagetti sevmiyorum ;)

Düzenleme: Yukarıdaki ifadeniz nereden alındı ve bunu ne zaman yayınladılar? Çünkü aslında bu, ilk varsayımın doğru olduğu anlamına gelir: MQL5 .... en üst düzeyde kafa karışıklığı ;)

Gelişmiş-MQL4 ?

Bunu hiç duymadım.

Belki de ne yaptığınızı bildiğinize kendinizi ikna etmeden önce her iki platformdaki belgeleri de okumalısınız.