Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 157

 
Andrey Khatimlianskii :

Hey!

MT4 çevrimdışı çizelgelerinin bir analogu özel araçlardır. Dahil olmak üzere herhangi bir hikaye yükleyebilirsiniz. 1 çubuk = 1 onay işareti yapın.

Ancak, MT4'te olduğu gibi, her çubuk bir öncekinden en az bir dakika farklı olmalıdır, bu nedenle normal bir zaman ölçeği olmayacaktır.

not: işte bitmiş gösterge - https://www.mql5.com/en/blogs/post/719145

MT4'te bir çubuğun süresi önceki çubuktan daha büyük olmalıdır ve ardından MT4 çubuğu görüntüleyecektir, yani. MT4'te çevrimdışı çizelgelerde saniyelere kadar doğrulukla çubuklar çizebilirsiniz, KB'de ikinci bir çizelge yayınladım

ancak MT5 ile bu numara çalışmaz, saniyeler hariç aynı açılış süresine sahip özel bir sembole 2 çubuk göndermeye çalışırsanız, yalnızca bir çubuk görüntülenecektir, yani. özel MT5 çizelgelerinde M1'den daha düşük doğruluk çalışmayacak

 
fxsaber :

İşte diyagram. İşler.

TP hareketi olmadan? Her seferinde doğru çalışıyor mu? Şanstan başka bir şey değil.


fxsaber :

Katlanılabilecek / katlanılması gereken idealliğin sınırı nerededir? Ara sıra yapılan reddetmelerin ve yeniden fiyatlamaların Tester ile ne ilgisi var?

Reddetmelerin bununla hiçbir ilgisi yok.

Limitin, test cihazında veya gerçek hayatta bilinen son fiyattan tetiklenmesi gerekli değildir. Gönderildiği süre boyunca fiyat her yere gidebilir.

Başka bir soru da, 0-gecikme modunda (ideal yürütme), testçi, emrin komisyoncuya gönderildiğini ve anında yerine getirildiğini iddia edebilir, ancak bunda herhangi bir fayda görmüyorum, çünkü tekrar ediyorum, görmüyorum. Gerçek hayatta zaten farklı olacaksa, ideal testteki noktayı görün.

 
Igor Makanu :

MT4'te bir çubuğun süresi önceki çubuktan daha büyük olmalıdır ve ardından MT4 çubuğu görüntüleyecektir, yani. MT4'te çevrimdışı çizelgelerde saniyelere kadar doğrulukla çubuklar çizebilirsiniz, KB'de ikinci bir çizelge yayınladım

Düzenleme için teşekkürler, unutmuşum. Bir zamanlar hatalar tırmanıyordu, eğer zaman birkaç dakika değilse, o zaman işe yaramış gibi görünüyordu.

Beşte kesinlikle mümkün değil.

 
Andrey Khatimlianskii :

Hey!

MT4 çevrimdışı çizelgelerinin bir analogu özel araçlardır. Dahil olmak üzere herhangi bir hikaye yükleyebilirsiniz. 1 çubuk = 1 onay işareti yapın.

Ancak, MT4'te olduğu gibi, her çubuk bir öncekinden en az bir dakika farklı olmalıdır, bu nedenle normal bir zaman ölçeği olmayacaktır.

not: işte bitmiş gösterge - https://www.mql5.com/en/blogs/post/719145

Oh, özel semboller doğru! Ve tik zamanı benim için önemli değil. Teşekkürler, bu doğru yönde bir destek. )))

 
Andrey Khatimlianskii :

TP hareketi olmadan? Her seferinde doğru çalışıyor mu? Şanstan başka bir şey değil.

Tabii ki değil. Bu nedenle, döngü.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql4 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2019.12.13 00:27

Şematik olarak, bir pozisyonun acil kapatılması şu şekilde yapılır
 const double ClosePrice = OrderType() ? MathMin (OrderClosePrice(), Bid + MaxSpread * _Point ) 
                                      : MathMax (OrderClosePrice(), Ask - MaxSpread * _Point );
    
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), ClosePrice, 0 ); // StopLoss оставлен для истории
Elbette bir döngüde . Başka seçenekler var mı?

Reddedilmelerin bununla hiçbir ilgisi yok.

Limitin, test cihazında veya gerçek hayatta bilinen son fiyattan tetiklenmesi gerekli değildir. Gönderildiği süre boyunca fiyat her yere gidebilir.

Başka bir soru da, 0-gecikme modunda (ideal yürütme), testçi, emrin komisyoncuya gönderildiğini ve anında yerine getirildiğini iddia edebilir, ancak bunda herhangi bir fayda görmüyorum, çünkü tekrar ediyorum, görmüyorum. Gerçek hayatta zaten farklı olacaksa, ideal testteki noktayı görün.

Gerçek hayatta, mevcut fiyattan (veya daha iyi) tam (veya kısmi) yürütme veya reddetme olacaktır. Onlar. performans mükemmel olabilir veya olmayabilir.

Test Cihazının pazar için her zaman mükemmel performans gösterdiğini, ancak her zaman limit için başarısız olduğunu anlıyoruz.

 
fxsaber :

Test Cihazının pazar için her zaman mükemmel performans gösterdiğini, ancak her zaman limit için başarısız olduğunu anlıyoruz.

Bu yüzden piyasalar için bir sonraki kene uygulamasını yapmayı tercih ederim. Test cihazı, drenajı gerçek olandan daha iyi gösterecektir. Ve kasenin bundan kaybolması pek olası değildir.

 
Andrey Khatimlianskii :

Bu yüzden piyasalar için bir sonraki kene uygulamasını yapmayı tercih ederim. Test cihazı, drenajı gerçek olandan daha iyi gösterecektir. Ve kasenin bundan kaybolması pek olası değildir.

Bir sonraki tik doğru değil, piyasanız bir tik oluşturmalıdır ve işlem hacmi dikkate alınarak en yakın teklif veya talepte gerçekleştirilecektir.
Sınırlayıcı, hacim dikkate alınarak garantili bir fiyatla da doldurulmalıdır.
Şu anda yapılan diğer tüm algoritmalar yalnızca yanıltıcıdır ve gerçek sonuçlar elde etmektedir.
Bu nedenle test cihazını hiç kullanmıyorum. Temelde, infazın ikame edilmesinin hiçbir anlamı yoktur.

 
Roman :

Bir sonraki tik doğru değil, piyasanız bir tik oluşturmalıdır ve işlem hacmi dikkate alınarak en yakın teklif veya talepte gerçekleştirilecektir.
Sınırlayıcı, hacim dikkate alınarak garantili bir fiyatla da doldurulmalıdır.
Şu anda yapılan diğer tüm algoritmalar yalnızca yanıltıcıdır ve gerçek sonuçlar elde etmektedir.
Bu nedenle test cihazını hiç kullanmıyorum. Temelde performansın ikame edilmesinin hiçbir anlamı yoktur.

Bunun için sipariş defterinin geçmişine veya en azından aşırı teklif/sorunun ciltlerine ihtiyacınız var. Ve değiller.

Ve kene piyasası, test cihazında oluşmamalıdır, aksi takdirde tarih, test edilen stratejiye bağlı olacaktır.

 
Andrey Khatimlianskii :

Bunun için sipariş defterinin geçmişine veya en azından aşırı teklif/sorunun ciltlerine ihtiyacınız var. Ve değiller.

Ve kene piyasası, test cihazında oluşmamalıdır, aksi takdirde tarih, test edilen stratejiye bağlı olacaktır.

Moderatörlerden biri MT5'in döviz piyasaları için geliştirildiğini belirttiği gibi,
ancak test cihazının uygulanmasına bakıldığında, gelişimi, gerçek keneler üzerinde bile aynı işlem yürütme ilkesine indi.

O zaman nasıl test ediyorsun? Hangi tarihsel veriler?
Ve sonra bu tür tarihsel alıntılar üzerindeki testlere mi güveniyorsunuz?
:))

Doğal olarak kene geçmişine ihtiyaç vardır ve test gerçek keneler üzerinde yapılmalıdır.
Kene geçmişi nereden alınır, kullanıcının sorunu, kendin topla, satın al, kimseden al vb.

Evet, teklif talebi hacimlerinin şu anda kaydedilmediğini kabul ediyorum, ancak geliştiricilerin üç sütun eklemesini engelleyen nedir !

  1. Hacim sütununu sor
  2. Teklif hacmi sütunu
  3. Yön sütunu Son işlem, Al veya Sat


Ardından, gerçek keneler üzerinde doğru test ile ilgili tüm sorunlar otomatik olarak ortadan kalkacaktır.
Ve test cihazında döviz emirlerinin yürütülmesini olması gerektiği gibi yapmak mümkün olacak.

Evet, kene oluşturma konusunda, bunu böyle söylemedim, bu, test cihazındaki piyasanın, fiyat seviyelerinde likidite toplayarak en yakın Teklif Taleplerinde yürütülmesi gerektiği anlamına geliyordu.
Yani BuyMarket'i 25 hacimli gönderirsek, işlem fiyatı 10 ve 15 olmak üzere iki seviye toplayacak ve otomatik olarak pozisyonun net fiyatının ortalamasını alacaktır.

182.13 Sor1 15
182.12 Sor0 10
--------------------
182.11 Teklif0 5
182.10 Teklif1 8

Ve limit emirleri için, Son işlemlerin hacmi, limitin belirlendiği garantili fiyattan limit emrinizin hacmini doldurmalıdır.
Yani limit emrinin doldurulması kısmi olmalıdır. Limit emriniz 25 hacimli olarak verilirse, 5 hacimli son bir işlem, 5 emrinizden bir ısırık alacaktır.
Limit emriniz şimdi 20 hacim değerinde, bir sonraki Son işlem 10 hacim, limit emriniz şimdi 10 hacim,
En son 10'luk bir hacimle geçti, limit emriniz tamamen doldu.
Fiyat tersine döndüyse ve limit emrinin tüm hacmini doldurmadıysa, gerçek durum budur, gerçek uygulama.
Ve kalan limit hacminiz, Last tekrar gelene kadar beklemeye devam eder veya bu uygulamayı kendiniz iptal edersiniz.

Bu nedenle, yürütme algoritmasının şimdi test cihazında uygulandığı biçimde, gerçeklikle hiçbir ilgisi yoktur.
Bulanık gözlü Alya oyuncak.


 

Tek bir format açmak için POD yapılarımla uğraşmıyorum. Yapıların birçok alanı vardır. Bazı yapılar kalıtsaldır, bazılarının özel alanları vardır.


Genel olarak, görev, incelenen formatı düzenlemek için bu yapıları sıfırlamaktı. Ve gerçekten hiçbir şey çıkmıyor. Sonuç olarak, bu seçeneği kullanmaya başladım.

 #include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

// Обнуление переменной.
template < typename T>
void ToNull( T &Value )
{
   uchar Bytes[ sizeof (T)];
   ArrayInitialize (Bytes, 0 );
  
  _W(Value) = Bytes;
}


Başvuru.

 struct A
{
private :
   int i;
  
public :
   int j;  
};

void OnStart ()
{
//  A a = {0};     // 'a' - cannot be initialized with initializer list
//  ZeroMemory(a); // 'a' - not allowed for objects with protected members or inheritance
  
  ToNull(a);
}


Alternatif kabul edilir.