"MetaTrader 5 Terminalinin Strateji Test Cihazında Tik Oluşturma Algoritması" makalesi için tartışma - sayfa 4

 
Renat :
Ancak MetaTrader 5 + MQL5 + Tester konusuna katılıyorsunuz ve doğrudan geliştiricilerle rekabet ediyorsunuz.


MetaTrader 5 terminalini bilmediğiniz için Tester'daki ticaret modlarının farkında değilsiniz ve bu konunun ilk sayfasında bu modları bir resimle açıklamama bile dikkat etmediniz.

Test modları, yatırımcıları ayıltmak ve sağlam Uzman Danışmanlar yazmak için özel olarak tasarlanmıştır. Bu, Uzman Danışmanları önemli ölçüde ve niteliksel olarak geliştirecektir.

Test cihazındaki agresif modlar hakkında forumlarda (MQL4.com ve MQL5.com) defalarca yazdım.

Sorunların kaynağı da budur - pratikte test etme isteksizliği.

Genel olarak diyaloğumuz, kilitlerin muhalifleri ve destekçileri arasındaki bir tartışma gibi görünüyor,

Her iki taraf da diğerini duymak istemiyor (muhtemelen bir taraf, rakiplerinin görmediği ve anlamadığı bazı çözümlerden muzdarip olduğu için).

Haklı olmanız ve uygulamanın bunu göstermesi iyi olacaktır,

Size iyi şanslar diliyorum ve inanın bana bu samimi bir dilek çünkü benim için daha mükemmel bir terminal kullanmak daha önemli

(ve onun yardımıyla kâr elde etmek) bazı anlaşmazlıklarda haklı olmaktan daha iyidir.

 
Renat писал(а) :

...
4. Modellemedeki "becerinizi" ve MT4'teki tutumunuzu hatırlamak. Bir soru daha sorabilirim. Bir çubukta aynı sayıda keneye sahip misiniz? MT4'te kenelerin% 20'sini atıyordunuz. Şimdi nasıl? Gerçek bir çubuğun 100 kenesi varsa, modellemede kaç keneye sahip olacaksınız?

Çakışıyor, ancak hiçbir şeyi kontrol etmek istemiyorsunuz. Teorik düşünmek sizin için yeterli.

Tamam, kontrol edelim. Bir uzman çizdim. Kod burada.

  int ticks=0; 
  double  old_bid=0, old_ask=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {return(0);}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick)) // получаем тик по символу
     {
     // ограничение по времени, собираем смоделированные тики за 1 час. 2010.05.21   22:00
      if(last_tick.time>"2010.05.21 21.00.00" && last_tick.time<"2010.05.21 23.00.00") {
      if(old_ask!=last_tick.ask || old_bid!=last_tick.bid)  { // если нет изменения цены это не тик, пропускаем
         // это тик запоминаем цену, увеличиваем счетчик тиков и выводим принт для проверки
         old_bid=last_tick.bid;
         old_ask=last_tick.ask;
         ticks++;
         Print("ticks=", ticks," ",last_tick.time,": Bid =",last_tick.bid," Ask =",last_tick.ask);
     }      
     }
     }
   else Print("SymbolInfoTick() failed, error =",GetLastError());
//---
  }

İşte sonuç.

Rakamlar uyuşmuyor. Şimdi iki şeyden biri. Ya benim ellerim yamuk ya da sen yalan söylüyorsun. Herkes indirip kendisi kontrol edebilir. Kodumda bir hata bulursanız memnun olurum.

Dosyalar:
111.mq5  3 kb
 

Uygulamalı test ilk seçenekle sonuçlandı. Limitlerde bir saat yerine 2 saat belirterek hata yaptınız.

İşte zaman sınırının doğru varyantı:

      if(last_tick.time>="2010.05.21 21:00" && last_tick.time<"2010.05.21 22:00") 

Ve sonuçlar:

2010.05.23 20:13:07     Core 1  ticks= 2315   2010.05.21 21:59:59 : Bid = 1.25721  Ask = 1.25738

Gerçek 2318 tik üretilmesi gerekirken 2315 tik üretildi. 2318'den 3 tiklik bir kayıp normal bir varyanttır.


 

Harika. Bu kodun kontrol edilebileceğini kabul ediyorsunuz. Sadece doğru zaman aralığını girmeniz gerekiyor. Lütfen bunu girin.

      if(last_tick.time>"2010.05.19 12.00.00" && last_tick.time<"2010.05.19 13.00.00") {

5200 kenenin nereye gittiğini açıklayın?

 

Alıştırma testlerine devam ediyor olmanız güzel.

Bu saatte 5869 tik yok, 679 tik var. İşte bu dönemi çalıştırma sonuçlarım - 679 tik. Tiklerin %100'ü simüle edildi.


Görünüşe göre, önbelleğe alınmış bir saatiniz var (ve dakikalar toplam 679 tik için doğruydu) - 19'unda kısa bir süre için ticker'ı açtık, ancak sonra geri aldık.

Grafik üzerinde "Yenile" komutunu çağırın ve tekrar çalıştırın.

YYY.MM.DD HH:MM:SS zaman formatının doğru olmasına dikkat edin.

 

bu makalede ele alınması unutulan bir konu

mt5'te gerçek hacim verilerinin görünmesi ile

bu bilgilerin nasıl oluşturulacağı

 

Urain ve Prival bunu reddetse de pip tüccarlarını çok iyi anlıyorum. Ancak TS'lerim tam tersine mümkün olan maksimum gürültü filtreleme üzerine inşa edilmiştir, TS'ler tiklerin niteliklerine karşı bağışık hale gelir. Bu tür TS'ler herhangi bir teklif sağlayıcı ile kullanılabilir. Urain'in bahsettiği NN ile ilgili olarak - NN üzerine tik kalitesine duyarlı bir TS inşa etmek mantıklı değil.

Geliştiricileri de iyi anlıyorum.

Geliştiriciler tarafından standart tik oluşturucuya, oluşturulan tiklerin "kabarıklığını" düzenlemeye izin verecek bir eklenti oluşturulmasında, tiklerde emisyonların oluşum sıklığını ve boyutunu düzenleme olasılığı ile bir uzlaşma görüyorum. Bana göre bu, testin "saldırganlık derecesini" ayarlamakla aynı şey değildir. Belki de test cihazında üretilen keneler ile gerçek keneler arasındaki uyuşma derecesi için bir tür analizör seçeneğini düşünmeliyiz, böylece kullanıcıların ayarlayabileceği parametrelerin çıktısını alabiliriz.

Her durumda, geliştiricilerin kendi çıkarlarını ve son yatırımcıların çıkarlarını korumak için bir şeyler yapması gerekir. Neredeyse her zaman uzlaşmacı çözümler bulunabilir.

Not: Evet, bir şey daha var. DC filtreleri her gün değiştirebiliyorsa, birikmiş tik geçmişini işe yaramaz hale getiriyorsa, neden tik geçmişine ihtiyacımız olduğunu bilmiyorum (çünkü yeterli gerçek test gereklidir), çünkü TS'nin gelecekteki davranışı gerçek tik geçmişinde bile test edildikten sonra beklenenden oldukça farklı olacaktır. Bu nedenle, kullanıcı tarafından "kabarıklık" ayarı yapılan varyantın, gerçek bir tik geçmişine sahip olma olasılığından daha tercih edilebilir olduğunu düşünüyorum.
 
joo писал(а) :

Urain ve Prival bunu reddetse de pip tüccarlarını çok iyi anlıyorum. Ancak TS'lerim tam tersine mümkün olan maksimum gürültü filtreleme üzerine inşa edilmiştir, TS'ler tiklerin niteliklerine karşı bağışıklık kazanır. .....

Ve anlamadan etiketleyen insanları anlamıyorum. Bir kez daha, işte ilk sayfadaki bağlantı. https://www.mql5.com/ru/forum/115584/page11#150512. Resme daha yakından bakın !!! orada her şeyi görebilirsiniz - işlemler grafikte çizilir.

Parametreler - pip cinsinden ortalama işlem büyüklüğü 650, bir işlemi tutmak için minimum süre 1 saat. BEN PIPI ADAMI MIYIM?

Keneleri analiz etmemi neden yasaklıyorsunuz? Gelen bilgileri SİZİN uygun gördüğünüz şekilde çalışmanızı ve analiz etmenizi yasaklıyor muyum? Saatlik tiklerle çalışarak otomatik olarak gürültüden kurtulduğunuzu düşünüyorsunuz - bu bir yanılsama, daha da iyi bir varyant öneriyorum - yıllık mum çubukları üzerinde çalışın, sistem daha da iyi, daha sağlam, hatta gürültüsüz olacak, veri sağlayıcıların hiçbir sorunu yok, tüccara yılda bir kez 5 basamaklı OHLC ve "hacim" verdi ve ticaret yapmasına izin verdi. Herkes mutlu, tüccarın sağlam bir sistemi var, gürültü yok, tedarikçinin ölçeklendirme ile ilgili hiçbir sorunu yok, vb. (bilimde böyle bir yöntem vardır, bir fikrin saçma olup olmadığını anlamak için uç durumların ikame edilmesi... kendi sonuçlarınızı çıkarın).

Şimdi Renat'a bir cevap yazacağım ve hepsi bu kadar. modellemesi ile gerçek alıntılar arasında tutarsızlık gördüğüm yerleri açıklamaya çalışacağım. Bu onun buluşu, keneleri modellemeye karar verdi ve 'un birçok parametresinin modellemede önemsiz olduğuna inanıyor.

Bizim işimiz test uzmanına nerede ve ne konuda güvenebileceğimizi anlamaktır. Ve test uzmanının bizi nerede kandıracağını. Birbirimizin fikirlerini değiştiremeyiz. Renat, gerçek modelden daha iyi bir model yaratmanın mümkün olduğu yanılgısı içinde. Ben öyle düşünmüyorum.

Bize TC'yi sadece model üzerinde inceleme fırsatı veriliyor ve oluşturulan TC'yi gerçek veriler üzerinde çalıştırma imkanı yok (kötü ya da iyi, kabarık ya da değil, fark etmez). Bizim böyle bir şansımız yok!!!. Neden bize en azından bağımsız olarak, örneğin buradan http://www.dukascopy.com/swiss/russian/data_feed/historical/ geçmişi indirme, test cihazına koyma ve TS'yi bu veriler üzerinde çalıştırma fırsatı vermiyorlar? Sonucu hepiniz çok iyi biliyorsunuz, kimse karşılaşmadı mı? Test cihazında her şey güzel, ama gerçek hayatta, TS'yi bulsanız bile, yüzünüzde çok güzel alabilirsiniz https://www.mql5.com/ru/forum . Ve böyle bir şeyi modellemek (bir jeneratör yardımıyla bile olsa) ve böyle bir şeye karşı dayanıklı olacak ve bu koşullarda çalışacak bir TS yaratmaya çalışmak için mutlak bir paranoyak olmalısınız....

Şimdi geçmiş tiklerin ve modellenmiş tiklerin sayısını karşılaştırmaya gelelim....

Evet, bu geçmişle ilgili bir sorun (tam olarak bundan bahsediyoruz).

Hizmet Masasına #14710 2010.05.18 08:42 a.m. tırnak içindeki hatalar hakkında yazdım. Çözmeleri uzun zaman aldı, görünüşe göre çözmemişler. 20.05'te tüm teklifleri manuel olarak temizledim, hepsini yeni indirdim, yani sorun o değil (19'unda deneme yapıyordunuz). Hizmet Masasından gelen yazışmalarla yeni aldığım teklifler 2010.05.20 12:08 civarında yeni olarak indirildi.

Böylece daha fazla yanlış anlaşılma olmayacaktı. Yine klasör geçmişlerini tamamen sildim ve yeni bir tane yükledim.

  1. Evet, gerçekten de yenileme düğmesine tıkladığımda - geçmiş değişti. Veriler ticks= 678 ile eşleşti.
  2. Veri sağlayıcının bakış açısından bu iyi, geçmişi bir sihirbaz gibi değiştirebilir.
  3. Yatırımcının bakış açısından bu bir kabus. Böyle bir durumu hariç tutun. Bu veriler terminalimde var, hesaplamalara, göstergelere katılıyorlar, TS'ler oluşturmak ve kararlar almak için kullanılıyorlar.

Başka nelere dikkat ettim, bu kontrol işe yaramaz.

if(old_ask!=last_tick.ask || old_bid!=last_tick.bid)  

1. Sadece sor veya teklif değiştiğinde (satıcı veya alıcı söküldüğünde) durumlarınız yoktur. Ve bu çok sık olur. Teklif durur, sadece teklif değişir veya tam tersi.

2. Spread bir sabite eşittir. Bu da gerçeklerle uyuşmamaktadır.

3. Modelin kalitesini araştırmak için yardım istiyorsanız. Tercihen 3-4 kaynaktan kendiniz tik toplayın ve gönderin. Bu tiklerin modellemesinin sonuçlarını, fiyatın 1000 tik başına 30 puan düştüğü bir resim şeklinde göstermeyin. Ancak, kısa bir zaman aralığında büyük hareketler de dahil olmak üzere farklı durumların olduğu bir gün için diyelim.

4. Gerçek verilerden sapmanın sayısal özelliklerini verin, en azından her iki eksendeki RMS.

5. Bu tüm dünyada yapılır, aynı başlangıç verilerine sahip başka biri de aynı sonucu alırsa sonuçlara güvenilebilir.

6. Aksi takdirde, durum yukarıda olduğu gibi olacaktır, terminalde 678 tik var, bende 5800 var. Buraya tik toplamanın tüm nüanslarını eklersek, gerçeği asla bulamayız.

7. 2-3 gün oturup birilerine bir şeyler göstermek ya da kanıtlamak için tik toplamak, kusura bakmayın ben zaten zamanımda topladım. Bir fikir oluşturmak için tiklerin nasıl oluştuğunu görmek benim için yeterli.

8. Geçmişi terminalde saklamak ve beslemek için seçilen format nedeniyle tüccarların bilgi kaybetmesi üzücü. Renat, ne kadar uğraşırsan uğraş, diyelim ki Renko, Kagi şeklinde bir grafik oluşturamayacaksın. Yeniden çizilecek ve gerçek veriler üzerine inşa edilenden farklı olacaktır.

Tüccarlar için sonuçlarım ve önerilerim. Bunları dikkate alabilir veya almayabilirsiniz, bu size kalmış.

  1. Test modu işe yaramaz. Zaman kaybıdır, çünkü çubuk içindeki tiklerin yapısı doğru bir şekilde yeniden üretilmez.
  2. En doğru test yöntemi muhtemelen açılış fiyatlarında MT4'tekiyle aynıdır. Daha doğrusu, yeni bir çubuğun başladığından emin olmanız ve bir öncekinin fiyatlarını almanız gerekir. Aynı zamanda, gerçek ticarette bunun gibi verilerin varlığı ve senkronizasyonu için "paranoyak" kontroller kullanmanız gerekir https://www.mql5.com/ru/forum/993 ve sonuçlar yine de çakışmayabilir.
  3. Sistemi küçük bir stop veya trol değeri ile test ederseniz, Düşük ve Yüksek zaman arasındaki olası bir uyumsuzluk nedeniyle sonuçlar açılış fiyatlarında bile farklılık gösterebilir. (Yeniden düzenlenebilirler).
  4. Uzman Danışman gerçek hayatta çalışmadan önce, onu başlatırken, geçmişin doğruluğunu bir şekilde kontrol etmelisiniz (yenileme düğmesine basmayı simüle edin).
MetaTrader не отражает реальности ! как с этим бороться? - MQL4 форум
  • www.mql5.com
MetaTrader не отражает реальности ! как с этим бороться? - MQL4 форум
 
Prival :

Ne hakkında konuştuklarını bilmeden insanları etiketleyen insanları anlamıyorum. Bir kez daha, işte ilk sayfadaki bağlantı. https://www.mql5.com/ru/forum/115584/page11#150512. Resme daha yakından bakın !!! orada her şeyi görebilirsiniz - anlaşmalar grafikte çizilmiştir.

Parametreler - pip cinsinden ortalama işlem büyüklüğü 650, bir işlemi tutmak için minimum süre 1 saat. BEN PIPI ADAMI MIYIM?

Keneleri analiz etmemi neden yasaklıyorsunuz? Gelen bilgileri SİZİN uygun gördüğünüz şekilde çalışmanızı ve analiz etmenizi yasaklıyor muyum? Saatlik tiklerle çalışarak otomatik olarak gürültüden kurtulduğunuzu düşünüyorsunuz - bu bir yanılgı, daha da iyi bir seçenek öneriyorum - yıllık mum çubukları üzerinde çalışın, sistem daha da iyi, daha sağlam, hatta gürültüsüz olacak, veri sağlayıcıların hiçbir sorunu olmayacak, tüccara yılda bir kez 5 basamaklı OHLC ve "hacim" verin ve ticaret yapmasına izin verin. Herkes mutlu, tüccarın sağlam bir sistemi var, gürültü yok, tedarikçinin ölçeklendirme ile ilgili hiçbir sorunu yok, vb. (bilimde böyle bir yöntem vardır, ifade edilen fikrin saçma olup olmadığını anlamak için aşırı durumların ikame edilmesi ... kendi sonuçlarınızı çıkarabilirsiniz).

................

Neden bu kadar şiddetli tepki veriyorsunuz, biraz şaşırdım? Ben sizin bakış açınızı destekliyordum. "Tıfıl" kelimesini sevmiyorum - sözümü geri alıyorum. Sizde olumsuz duygu fırtınasına neden olduğum için özür dilerim.

Ben "kavalcı" kelimesini daha geniş bir anlamda anlıyorum. Kavalcı, kene kalitesine duyarlı bir TS'dir. Hepsi bu kadar. Sanki yazımın sadece ilk satırını okumuşsunuz gibi. Ve yazımın devamında uzlaşmacı bir çözüm önerdim.

Not: Daha yüksek bir TF'ye geçmekten başka gürültü filtreleme yöntemleri kullanıyorum (yazımda kalın harflerle). Araştırmam M1 üzerine odaklanmıştır.

 
joo писал(а) :

....

Eğer bu bilgiyi kişisel olarak algıladıysanız, özür dilerim. Evet, şiddetli tepki veriyorum, çünkü ticaret yapmak ve ailem için bir parça ekmek kazanmak yerine oturup yazıyorum. Bu daha ziyade, bir kişi keneleri analiz ederse, onun bir pip oyuncusu olduğunu düşünenlere yazılmıştır. Bu doğru değil. Elimden geldiğince bunu göstermeye çalışıyorum.

Nitelikli/niteliksiz tik diye bir kavram yoktur. Buna bağlı olarak, niteliksel ya da niteliksel olmayan tiklerin toplamı da yoktur. Kene, ticaret terminalinde bize verilen bir gerçekliktir. Bize gelir, Uzman Danışman başlatılır ve biz onu analiz ederiz. Burada kim varsa şunu söyleyebilecektir. Bu tik yüksek kalitede mi, bu değil mi?

Birisi yalnızca çubukların kapanışını = saatin sonunda gelen bir keneyi analiz eder. Bu tikin kalite açısından bir saniye önce gelen tikten farkı nedir? Diyelim ki birisi bunun daha "kabarık" olduğunu iddia ediyor, bu nedir ve neyle ilgilidir? Umarım bu tür iddiaların saçmalığını görürsünüz.

Şimdi bir düşünün, teklif sağlayıcılar kene seviyesinde çalışıyorlar, evet onları filtreliyorlar, birkaç tedarikçileri var, belirli bir zamanda kendileri için gerekli ve karlı gördüklerini bize veriyorlar. Ancak OHLC ile değil, tiklerle çalışırlar. Daha sonra katlananlar çubuklar halinde. Oradaki tüm DC'ler aptal mı ve tik seviyesinde çalışmanın intihar olduğunu görmüyorlar mı?

Değilse, akıllı ve yetkinler mi? Neden kenelerle değil de hastanenin ortalama sıcaklığıyla çalışmalıyız? Tiklerden istediğiniz her şeyi, her türlü grafiği kesebilirsiniz. Bunu dakikalarla yapamazsınız, çünkü bu kayıplı bir veri sıkıştırma şeklidir, geri dönüşü olmayan kayıp.

Bir paketleme algoritması gibi, aynı *.rar bilgiyi sıkıştırdı, bir başkasına verdi, o açtı ve okudu, diyelim ki bu bir kitap. Ve şimdi algoritmayı değiştiriyoruz, cümledeki sadece ilk(Açık) ve son(Kapalı) harfiaçıyoruz, peki, iki harf daha ekleyebilirsiniz, en kalın ( Yüksek'in benzeri) ve en ince ( Düşük'ün benzeri). Nasıl yani? Kim böyle bir kitabı okumak ister misiniz? Burada da durum aynı ((((