MQL5'te birlikte öğrenme ve yazma - sayfa 21

 

потому что вы берете каждый раз новое время тика, и оно конечно не равно предыдущему.

ve önceki fonksiyonda çubuğun başlangıç zamanını aldınız. yani burada kene değil, çubuğun zamanını alın.

Aptal olana koddaki hangi parametrenin hangisiyle değiştirileceğini açıklayın.

Bar zamanı nasıl tarif edilir, kene zamanı değil?

 
Khomtchenko :

Aptal olana koddaki hangi parametrenin hangisiyle değiştirileceğini açıklayın.

Bar zamanı nasıl tanımlanır, kene zamanı değil?

bunun gibi https://www.mql5.com/ru/docs/series/copytime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTime
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyTime - Документация по MQL5
 
Khomtchenko :

Aptal olana koddaki hangi parametrenin hangisiyle değiştirileceğini açıklayın.

Bar zamanı nasıl tarif edilir, kene zamanı değil?

Burada her şey popüler olarak tanımlanmıştır Olay işleyici "yeni çubuk"

Genel olarak, bir soru sormadan önce bazen makalelere ve temel koda bakmak için çok tembel değiliz.

 

Вот тут все популярно описано  Обработчик события "новый бар"

Genel olarak, bir soru sormadan önce bazen makalelere ve temel koda bakmak için çok tembel değiliz.

Evet, oraya baktım. Sağlık için başladık ve belirli bir şey yapan bir grup dosya ile bitirdik, ancak benim sadece bir fonksiyona ihtiyacım var ve hepsi bu. Nihai ürünün kodu sağlanamadı. Ortalığı karıştırdılar...
 

Burada mql4'te beş satırda yeni bir çubuk olup olmadığını öğrenmek mümkün oldu. Ve şimdi bir yığın dosya yazıldı, nereye koyulacağı, programın içine ne yazılacağı belli değil...

Kısacası, uzmanlar varsa, o zaman bana bir kod örneği verin, böylece acı çekmem ve kendim, elektronik bile olsa, hatta gerçek herhangi birini kütüphaneye gönderebilirim.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Khomtchenko :
Hiç şüphem yok, ama sadece gösteri için soruyorum, aynı Expert Advisor'ı mql4 ve mql5 üzerinde oluşturup test sonuçlarını karşılaştıran var mı? Görünüşe göre kod doğru bir şekilde dönüştürülmüşse mükemmel olmalı? Ya da ben hatalıyım..?

Burada test yapılıyorsa ve bar-bar varsa ve mql5'te mantık onTick'te bulunuyorsa, o zaman benzer çıkacaktır.

Tek fark spreadlerde olabilir. 5-ke geçmişinde yayılır. 4-ke test cihazında yayılma, terminaldeki mevcut olana eşittir.

Test "her tik" ise, muhtemelen daha da az olacaktır, çünkü. kene oluşturma algoritmaları sürümlerde farklıdır.

 
Khomtchenko :

Burada mql4'te beş satırda yeni bir çubuk olup olmadığını öğrenmek mümkün oldu. Ve şimdi bir yığın dosya yazıldı, nereye koyulacağı, programın içine ne yazılacağı belli değil...

Kısacası, uzmanlar varsa, o zaman bana bir kod örneği verin, böylece acı çekmem ve kendim, elektronik bile olsa, hatta gerçek herhangi birini kütüphaneye gönderebilirim.

Bekleyin, lastbar değişkenini statik veya global seviyede, iTime dizisini global seviyede ilan edin

 bool NewBar()
  {

   if ( CopyTime ( _Symbol , _Period , 0 , 1 ,iTime)< 1 ) return ( false );

   if (lastbar!=iTime[ 0 ])
     {
      lastbar=iTime[ 0 ]];
       return ( true );
     }
   else
     {
       return ( false );
     }
  }
 

Sayfanın isNewBar işleviyle bir örneği var

https://www.mql5.com/en/forum/2804/38752#comment_38752

Что меняет режим тестера "только цены открытия"?
Что меняет режим тестера "только цены открытия"?
  • www.mql5.com
Собственно, для советника работающего по onTick, в режиме "Только цены открытия" при тестировании все вычисления индикаторов и вызов функции OnTick() в экспертах происходит только один раз на бар.
 

1. Aynı stratejileri mql4 ve mql5 üzerinde test etmenin sonuçlarını sormam boşuna değildi.

Koşullar giriş gerekliliklerini karşılıyorsa piyasaya yeni bir çubukla giriyor, göstergeler ters sinyal verdiğinde pozisyonu kapatıyor ve yeni bir çubukla tekrar giriyordum.

Mql4'te yeni bir çubuğa girmek için bu prosedürü kullandım:

void Fun_New_Bar() // Ф-ия обнаружения ..

{ // .. yeni çubuk

statik tarihsaat New_Time=0; // Geçerli çubuğun zamanı

New_Bar=yanlış; // Yeni çubuk yok

if(New_Time!=Time[0]) // Zamanı Karşılaştır

{

New_Time=Zaman[0]; // Şimdi zaman

New_Bar=true; // Yeni bir çubuk aldım

}

}

Stratejime göre robotu mql4 üzerinde test etmenin sonucu şöyle görünüyor:

mql4 EA test sonuçları

Yeni çubuğu belirlemek için gönderilen prosedürler için teşekkür ederiz. Çalışırlar. Yeni bir çubuğa Alert yazan bir script yaptım ve uzun süre beklememek için M1'de kontrol ettim.

Ancak aynı strateji, mql5 EA'daki her iki prosedürde de tamamen farklı sonuçlar (ve aynı sonuçları) verir:

mql5 EA test sonuçları

Gömleğimi yırtıp ayaklarımı yere vurmam boşuna değil. Sonuçları tekrarlamak istiyorum ama eşleşmiyorlar.

mql4'te onStart işlevi şöyle görünür:

int başlangıç()

{

Getins();

Fun_New_Bar();

if (New_Bar==false) return(0);

if (Toplam()>0)

{

CloseSellEnd();

CloseBuyEnd();

}

if(Toplam()<1)

{

açık satın();

OpenSell();

}

dönüş(0);

}

Ve mlq5'te yaklaşık olarak aynı:

geçersiz OnTick()

{

Getins();

eğer (NewBar())

{

if (Toplam()>0) TryToClose();

if(Toplam()<1)

{

OpenBuy(Çok,10,"EUR/USD (Satın Al)",102406);

OpenSell(Lot,10,"EUR/USD (Sat)",102406);

}

}

}

Gösterge parametrelerini işlemek için GetIns ve Total() - mql4 için gerekli sihirle veya mql5 için gerekli sembolle konum sayısını verir.

Yardım.

 

Sanırım tutarsızlığın nedenini buldum. İnanmayacaksın. MT4 ve MT5 farklı fiyat teklifi geçmişine sahiptir. Biraz farklı gibi görünüyor, ancak strateji büyük bir farkla test ediliyor !!!!

İşte farklı terminallerde bir arsa:

Yakından bakıyorsun, bir fark var. Küçük? Ve stratejiyi test etmenin sonuçları arasındaki fark nedir, aynı zamanda küçük mü???

Geliştiricilerle iletişime geçeceğim! Ne betası!!!

Neden: