"MQL5 Yemek Kitabı - Çok Para Birimli Expert Advisor ve MQL5'te Bekleyen Talimatlarla Çalışma" makalesi için tartışma

 

Yeni makale MQL5 Yemek Kitabı - Çok Para Birimli Expert Advisor ve MQL5'te Bekleyen Talimatlarla Çalışma yayınlandı:

Bu sefer, bekleyen Satın Al Durdur ve Sat Durdur talimatlarıyla çalışmayı temel alan bir alım satım algoritmasına sahip çok para birimli bir Expert Advisor oluşturacağız. Bu makale şu konuları ele almaktadır: belirli bir zaman aralığında alım satım yapma, bekleyen talimatları verme/değiştirme/silme, son pozisyonun Kar Al veya Zarar Durdur'da kapatılıp kapatılmadığını kontrol etme ve her bir sembol için yatırım geçmişinin kontrolü.

EURUSD döviz çiftinin parametreleri optimize edildikten sonra, aynı parametreler AUDUSD için optimize edilmelidir. Aşağıda, birlikte test edilen her iki sembolün sonucu verilmiştir. Sonuçlar maksimum geri kazanım faktörüne göre seçilmiştir. Test için lot değeri her iki sembol için 1 olarak ayarlanmıştır.

Şek. 3 - iki sembolün birlikte test sonucu.

Şek. 3 - iki sembolün birlikte test sonucu.

Yazar: Anatoli Kazharski

 

Zaman.

Saatler her zaman yeterli değildir, dakikalar da gereklidir. Örneğin, piyasa kesirli zamanlarda açılıp kapanıyorsa.

Ve bu işlev soruları gündeme getirir - dakikalara ihtiyaç duyduğunuzdan çok daha sık gece yarısına kadar işlem yapmanız gerekir

bool IsInTradeTimeRange(int symbol_number)
  {
//--- Zaman aralığı ticareti etkinleştirilmişse
   if(TradeInTimeRange[symbol_number])
     {
      //--- Tarih ve saat yapısı
      MqlDateTime last_date;
      //--- En son tarih ve saat verilerini alın
      TimeTradeServer(last_date);
      //--- İzin verilen zaman aralığının dışında
      if(last_date.hour<StartTrade[symbol_number] ||
         last_date.hour>=EndTrade[symbol_number])
         return(false);
     }
//--- İzin verilen zaman aralığında
   return(true);
  }
 
TheXpert:

Zaman.

Saatler her zaman yeterli değildir, dakikalar da gereklidir. Örneğin, piyasa kesirli zamanlarda açılır ve kapanırsa.

Ve bu işlev soruları gündeme getirir - gece yarısına kadar dakikalardan çok daha sık işlem yapmanız gerekir.

Evet, katılıyorum. Bunu daha sonra yeni bir şemada görselleştirmeye çalışacağım.

O zaman belki de numaralandırmalar yerine kullanıcının zamanı kendisinin belirlediği bir satır yapmalıyız. Örneğin:"9: 35". Aksi takdirde parametre listesi, dakikaları belirtmek için üç parametre daha (makale şemasında) ile genişletilir.

Zamanı belirtmek için uygun bir standart olasılık olsaydı harika olurdu. Artık tarih saatimiz var, zaman yaratmamız gerekiyor. )

 

Aslında, hepsi program kodu, IMHO bir makale olarak uygun değil, daha ziyade Kod Tabanı bölümü için.

 
revers45:

Aslında, hepsi program kodu, IMHO bir makale olarak çalışmıyor, daha ziyade Kod Tabanı bölümü için.

Oh, pekala. İyi iş o zaman. Her şeyi Code Base'de yazın ve yayınlayın ;)
 
revers45:

Aslında, hepsi program kodu, IMHO bir makale olarak çalışmıyor, daha ziyade Kod Tabanı bölümü için.

Bu tür makaleler dili öğrenmek için uygundur.

Hem metni hem de kodu okumak ve resimlere aynı anda bakmak, makalede ayrı ayrı gezinmekten ve farklı dosyalardan kodları ayırmaktan daha kolaydır.

Ancak bazı açıklayıcı kısımların eksik olduğuna katılıyorum. Düz metin şeklinde kavram ve uygulamanın ana noktaları.

 
komposter:

Bu tür makaleler bir dili öğrenmek için uygundur.

Hem metni hem de kodu okumak ve resimlere bir kerede bakmak, makaleyi ayrı ayrı kaydırmaktan ve farklı dosyalardan kodları ayırmaktan daha kolaydır.


Ancak bazı açıklayıcı kısımların eksik olduğuna katılıyorum. Düz metin şeklinde kavram ve uygulamanın ana noktaları.

Bu makale dizisi daha çok sıralı dil öğrenimi içindir. Şema önceki makalelerden birinde açıklanmıştı ve muhtemelen her şeyi tekrar açıklamanın bir anlamı yok. Makalenin başında, bu şemanın ayrıntılı olarak ele alındığı makaleye bir bağlantı bulunmaktadır. Burada ek fonksiyonlar yazılmış ve bazı küçük değişiklikler yapılmıştır. Her şey basit ve gereksiz hiçbir şey yok ve koddaki her satır yorumlanmış. Bence alıp kullanabileceğiniz çok sayıda farklı hazır şemaya sahip olmak güzel.

Makaleye başka neler eklenebileceğini hayal bile edemiyorum. Ama sorun değil. ))

 
Birkaç sembol için neden bu kadar çok kod? Her sembol için bir Uzman Danışman koymak daha kolay olmaz mıydı, bence programın daha hızlı çalışmasını sağlayacaktır. Bu bağlamda, sevgili yazar, #define NUMBER_OF_SYMBOLS değişkenine bir tane koymanın yolu dışında, bekleyen emirlerle çalışmak için bu işlevleri yalnızca bir sembol için olacak şekilde nasıl dönüştürebileceğimi söyleyebilir misiniz?
 
kuva:
Neden birkaç sembol için bu kadar çok kod var?

Sistemi test cihazında aynı anda birkaç sembol üzerinde test edebilmek için.

kuva:
Bir Uzman Danışmanı farklı sembollere koymak daha basit olmaz mıydı, bence programları yürütmek daha hızlı olacaktır. Bu bağlamda, sayın yazar, #define NUMBER_OF_SYMBOLS değişkenine bir tane koymanın yolu dışında, bu kodu yalnızca bir karakter üzerinde çalışacak şekilde nasıl dönüştürebileceğimi söyleyebilir misiniz?

Eğer sadece tek bir karakter üzerinde çalışmasını istiyorsanız, karakter arama ile ilgili tüm döngüleri kaldırın. Bazı fonksiyonlardan karakter sıra numarasının ilk parametresini kaldırmanız gerekecektir.

Ayrıca, harici parametrelerin değerleriyle başlatılan dizilere artık ihtiyaç duyulmayacaktır. Kullanıldıkları fonksiyonlarda, harici parametrelerin değişkenleri ile değiştirilmeleri gerekecektir.

[Silindi]  
Gerçek keneler üzerinde ileri test yapın - optimizasyon sonucu tam tersi olacaktır.
 
Sembolleri symbol_number ile aramak son derece zahmetli. Eskiden bu şemayı kullanırdım, ancak şimdi OOP'ye geçtim. Her sembol = sınıfın bir örneği. Çalışma zamanında, her OnChartEvent olayında, sınıfın örneklerini sırayla ararsınız. Hatta biraz daha hızlı çalışıyor.