"MQL5 Sihirbazı: EA'ya Herhangi bir Fiyattaki Bekleyen Emirleri Açması Nasıl Öğretilir?" makalesi için tartışma - sayfa 2

 

Merhaba Vladimir,


Bu makaleyi beğendim, başka bir gösterge kullanarak işlem açmak için yalnızca bekleyen emirleri kullanan bir EA yazmak mümkün mü. örneğin, fiyat bir yönde 5 oranında hareket ederse, ne olursa olsun bir alış veya satışı tetikler.

 
Tafadzwa Nyamwanza :

Merhaba Vladimir,


Bu makaleyi beğendim, başka bir gösterge kullanarak işlem açmak için yalnızca bekleyen emirleri kullanan bir EA yazmak mümkün mü? örneğin, fiyat bir yönde 5 hareket ederse, ne olursa olsun bir alış veya satışı tetikler.

Sorunuzun MQL5 Wizard: How to Teach an EA to Open Pending Orders at Any Price makalesi ile ilgili olduğundan emin misiniz?

 
Hey Vladimir.

Bu Makalenin Bekleyen Emirler hakkında olduğunu biliyorum, ancak EA'nızı bir piyasa emri açmak için nasıl programlıyorsunuz?

 
Ayanda Mhlauli:
Hey Vladimir.

Bu Makalenin Bekleyen Emirler hakkında olduğunu biliyorum, ancak EA'nızı bir piyasa emri açmak için nasıl programlıyorsunuz?

input double             Signal_PriceLevel         =0.0;         // Bir anlaşmayı gerçekleştirmek için fiyat seviyesi
 
PriceLevel() işlevini doğrudan sinyal oluşturucunun içinde çağırmak yeterli olmaz mıydı, neden *sinyal işaretçisini sinyal oluşturucuya geçirmeniz gerekiyor?
 

Merhaba @Vladimir Karputov -- çok öğretici bir makaleydi, bunun için teşekkürler!

Şahsen MQL5'teki bu OOP çerçevesini uzmanları, sinyalleri, filtreleri, göstergeleri, risk yöneticilerini vb. temsil eden nesneler oluşturarak botlar oluşturmak için oldukça ilginç buluyorum - bence çok zarif bir yaklaşım, çünkü görünüşe göre çok fazla güçten ödün vermeden kodun yeniden kullanımını ve genişletilebilirliğini destekliyor... ancak karmaşıklığı nedeniyle öğrenme eğrisi oldukça dik görünüyor.

Her halükarda, yalnızca MQL5'e geçiş yaptığım ve OOP kavramları/dilleri konusunda iyi bir deneyime sahip olduğum için, yeni ticaret fikirlerinin prototipini oluşturmada ve ticaret sistemleri geliştirmede kendi kullanımım için uyarlamaya gerçekten hevesliyim. Kütüphane kodunu inceliyor ve onunla oynuyordum ve aşağıdakiler için önerdiğiniz en iyi uygulama yaklaşımını merak ediyordum:

SORU: Uzman tarafından alınan sinyaller için bir trend filtresini nasıl entegre edersiniz?

Kütüphane CExpertBase::m_trend_type özelliğini içeriyor ancak ne yazık ki platformla birlikte verilen örneklerin hiçbir yerinde kullanılmıyor. İki tasarım olasılığı arasında bölündüm... Bir ekleme trend filtreleme nesnesi doğrudan CExpert alt sınıfımda (aşağıdaki kod parçasına bakın), bu da uzman düzeyinde alım satım kararları verme konusunda daha fazla kontrol sağlayabilir. Bunu çözmenin bir başka yolu da ana sinyal nesnemin filtreleriyle uğraşmak ve bir şekilde trendi hesaplamak ve CSignalExpert alt sınıfımın içinde, örneğin CSignalWithTrendFilter::Direction() içinde bir karar vermek olabilir. Bir yöntemin diğerine göre avantaj ve dezavantajlarının neler olduğundan ve hangisinin gelecekteki projelerimin gereksinimleri için bana daha fazla esneklik sağlayacağından, yani karmaşıklık olmadan daha fazla kod yeniden kullanımı ve temel sınıflarımda daha az ince ayar yapılacağından henüz tam olarak emin değilim.

class CExpertWithTrendFilter : public CExpert
{
protected:
   CExpertSignal    *m_trend;   // ürettiği sinyalleri filtrelemek için CExpert::m_signal ile paralel çalışır
// ...
   virtual bool      Processing(void);
   virtual bool      CheckOpen(void);
// ...
};

bool CExpertWithTrendFilter::Processing(void)
{
   CExpertBase::m_trend_type = (ENUM_TYPE_TREND) m_trend.Direction();   // CExpertSignal'den türetilen özel nesneyi temel alarak mevcut eğilimi belirleyin
   
   m_signal.TrendType(m_trend_type);             // trend türünü/gücünü m_signal'a girdi olarak aktarın, ayrıca CExpertSignal'dan alt sınıflanmıştır
   m_signal.SetDirection();                      // SEÇENEK #1 >>> muhtemelen yukarıda belirlenen eğilimi dikkate alarak (veya almayarak) sinyal yönünü hesaplayın

// ...

   if(CheckOpen())                               // SEÇENEK #2 >> alternatif olarak, uzun veya kısa pozisyon açmadan önce trend tipi/gücü uzman tarafından kontrol edilebilir
      return(true);

   retun(false);                                 // herhangi bir işlem yapmadan geri dön
}

bool CExpertWithTrendFilter::CheckOpen(void)
{
   if(m_trend_type > TYPE_TREND_FLAT && CheckOpenLong())    // yalnızca trend filtresi yönü uyuşuyorsa uzun açılmasına izin verin
      return(true);
   if(m_trend_type < TYPE_TREND_FLAT && CheckOpenShort())   // sadece trend filtresi yönü uyuşuyorsa kısa açılmasına izin ver
      return(true);

   return(false);                                // herhangi bir işlem yapmadan geri dön
}

Yardımlarınız ve önerileriniz için şimdiden teşekkürler.

 
Uzun zaman önce ticaret motoruma geçtim Bir EA kurucusu geliştirme girişimi - daha esnek.
An attempt at developing an EA constructor
An attempt at developing an EA constructor
  • www.mql5.com
In this article, I offer my set of trading functions in the form of a ready-made EA. This method allows getting multiple trading strategies by simply adding indicators and changing inputs.
 
Vladimir Karputov #:
Uzun zaman önce ticaret motoruma geçtim Bir EA kurucusu geliştirme girişimi - daha esnek.

Tamam, anlıyorum -- makaleyi okuyorum ve ekli koda bir göz atacağım... her durumda, sakıncası yoksa yukarıdaki soruyla ilgili yorumunuzu / görüşünüzü yine de takdir ediyorum. Çok teşekkür ederim!

 
Dima Diall # :

Tamam, anlıyorum -- makaleyi okuyorum ve ekteki koda bir göz atacağım... her durumda, sakıncası yoksa yukarıdaki soruyla ilgili yorumunuzu / görüşünüzü yine de takdir ediyorum. Çok teşekkürler!

CExpertSignal geçmişte kaldı. Yorum yok.

 
Vladimir Karputov #:

CExpertSignal geçmişte kaldı. Yorum yok.

:-)