MQL5 Sihirbazı ve Standart Ticaret Sınıfı Kitaplığı hakkında sorular - sayfa 10

 
Sevrer :

Merhaba.

Sadece eğitim amaçlı kendi sinyal modülümü yazmaya karar verdim. Bir sorunla karşılaştı. Bekleyen siparişler ayarlamam gerekiyor, bunun CExpertSignal::OpenLongParams(...) aracılığıyla yapılabileceğini anladım. Evet, bu kötü şans, test eden kişi Geçersiz Süre Sonu'na yemin eder. Kaynakları inceledikten sonra, ORDER_TIME_SPECIFIED dışında hiçbir zaman türünün işe yaramayacağı anlaşıldı, ancak ORDER_TIME_GTC istiyorum.

Şimdiye kadar zor bir hamle yaptım ama bu tamamen doğru değil. Kütüphanedeki işlevi düzelttim:

ne tavsiye edebilirsin

Merhaba.

Kesinlikle haklısın. Sıfır son kullanma tarihini hesaba katmadım.

Çözümünüz güzel. Standart Kitaplıkta gerekli düzenlemeleri yapacağım.

Teşekkür ederim.

 
uncleVic :

Merhaba.

Kesinlikle haklısın. Sıfır son kullanma tarihini hesaba katmadım.

Çözümünüz güzel. Standart Kitaplıkta uygun değişiklikleri yapacağım.

Teşekkür ederim.

İyi olacak, ama şimdilik, bu durumda, başka bir çıkış yolu buldum, doğru olanı :) , CExpert'ten miras alınan bir sınıf oluşturarak CheckOpenLong() ve CheckOpenShort() işlevlerini geçersiz kıldım ve zaten oradayım bu tür ayarlamalar yaptı:

         if (expiration == TimeCurrent () || expiration == 0 )
        {
                m_expiration = 0 ;
                m_trade.SetOrderTypeTime( ORDER_TIME_GTC );
        }
         else
        {
               if (!m_trade.SetOrderExpiration(expiration))
        	{
         		m_expiration=expiration;
        	}
        }
 
Sevrer :

İyi olacak, ama şimdilik, bu durumda, başka bir çıkış yolu buldum, doğru olanı :) , CExpert'ten miras alınan bir sınıf oluşturarak CheckOpenLong() ve CheckOpenShort() işlevlerini geçersiz kıldım ve zaten oradayım bu tür ayarlamalar yaptı:


Kalıtım en doğru yaklaşımdır.
 

Lütfen Expert_EveryTick parametresinin mantığını açıklayın

Expert_EveryTick=true her onay işaretini işler mi? Yani her yeni tikte hem giriş/çıkış koşullarını hem de pozisyon takibini (trol) kontrol ediyor, değil mi?

Ve Expert_EveryTick=fasle ile - sadece yeni bir çubuğun ilk işaretinde mi? ve trol sadece ilk kene üzerinde mi çalışacak?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
mr.Taras :

Lütfen Expert_EveryTick parametresinin mantığını açıklayın

Expert_EveryTick=true her onay işaretini işler mi? Yani her yeni tikte hem giriş/çıkış koşullarını hem de pozisyon takibini (trol) kontrol ediyor, değil mi?

Ve Expert_EveryTick=fasle ile - sadece yeni bir çubuğun ilk işaretinde mi? ve trol sadece ilk kene üzerinde mi çalışacak?


Evet, her şeyi doğru anladınız.
 

Expert Advisor'ın mantığıyla ilgili daha fazla soru:


Örneğin satın alma gibi açık bir pozisyon ve örneğin 1 için sabit bir lot var.

diğer yönde, satmak için bir sinyal var.

danışmanın eylemleri nelerdir? 1 lot için iki satış anlaşması mı olacak (ilki alışı "kapatacak") yoksa 2 lot için bir satış anlaşması mı olacak? mevcut satın almanın "eksi" veya "artı" arasında bir fark var mı?


danışman kendini "doldurmaz", yani bir alım pozisyonu ve tekrar bir alım sinyali varsa? CheckOpenLong() "yüklemek" için hangi yöntemler geçersiz kılınmalıdır?

 
mr.Taras :

Expert Advisor'ın mantığıyla ilgili daha fazla soru:


1. açık bir pozisyon var , örneğin bir satın alma ve sabit bir lot, örneğin, 1.

diğer yönde, satmak için bir sinyal var.

danışmanın eylemleri nelerdir? 1 lot için iki satış anlaşması mı olacak (ilki alışı "kapatacak") yoksa 2 lot için bir satış anlaşması mı olacak? mevcut satın almanın "eksi" veya "artı" arasında bir fark var mı?


2. Danışman kendini "doldurmaz", yani, eğer bir alım pozisyonu ve tekrar bir alım sinyali varsa? CheckOpenLong() "yüklemek" için hangi yöntemler geçersiz kılınmalıdır?


1. iki tetik eşiği (danışman ayarları). Kapat eşiği aşılırsa, pozisyon basitçe kapanır. iki eşik (Kapat ve Aç) aşılırsa, konum tersine döner. -/+ fark yok.

2. İşleme yöntemi

 
uncleVic :

1. iki tetik eşiği ( danışman ayarları ). Kapat eşiği aşılırsa, pozisyon basitçe kapanır. iki eşik (Kapat ve Aç) aşılırsa, konum tersine döner. -/+ fark yok.

2. İşleme yöntemi

Kapat ve Aç eşikleri, sinyal modülünde ShortCondition() veya LongCondition() döndürdüğü "oylamanın" sonucu mu?

 
mr.Taras :

Kapat ve Aç eşikleri, sinyal modülünde ShortCondition() veya LongCondition() döndürdüğü "oylamanın" sonucu mu?

Eşikler, "oylama" sonucunun karşılaştırıldığı parametrelerdir (Signal_ThresholdOpen ve Signal_ThresholdClose).
 

Üç soru:

  1. Sinyal modülünün her tıklamada değil, yalnızca açık fiyatlarda çalışması nasıl sağlanır?
  2. Konum takip modülündeki sinyal modülünün oylama değerleri nasıl alınır? Önceden hesaplanmış bir sinyal üzerinde trol yapmak ve izleme için başka bir sinyal modülü oluşturmamak gerekir.
  3. Para ve risk yönetimi modülünde sinyal modülü oylama değerleri nasıl alınır? Hacimleri hesaplamak için başka bir sinyal modülü oluşturmamak ve önceden hesaplanmış alım satım sinyallerine bağlı olarak hacim açmak gereklidir.

Teorik olarak, elbette, bir sihirbaz yardımıyla bir danışman toplayabilir ve ardından koda girebilir ve tüm bu ekonomiyi manuel olarak bağlayabilirsiniz. Ancak tüm bunların standart yöntemler, yani. Örneğin, bir sinyal modülünü diğeriyle değiştirmek isterse, koda girip düzenleme yapmak zorunda kalmamak için sihirbazı kullanmak isteyen aptallar için.