Kene verileriyle geriye dönük test

 

Kene verileriyle geriye dönük test

Sanırım bunu metatrader'da yapmanın iyi bir yolunu buldum - ve bu yöntemle adil bir yolum var ama STUCK'um var ve son aşamada biraz yardım istiyorum.

1) Bir şirket (ticari kaynak) sembolünden kene verisi aldım: CL (petrol) içermeyen kaynaklar örn. dukascopy vb. bu sembole sahip değildir.
2) Bu tik verilerini çubuk biçiminde (çözünürlük kaybı olmadan) işlemek için şirket yazılımını kullandı. çubuk biçimi:

tarih, saat, açık, yüksek, düşük, kapat, Hacim

Her çubukta sadece 1 onay işareti vardır! Yani, belirli bir çubuk için açık, yüksek, düşük, kapalı hepsi aynıdır çünkü çubukta sadece 1 işaret vardır.

3) Metatrader geçmiş klasörlerine gidip orada bulunan ilgili dosyaları silerek bu onay verilerini metatrader strateji test cihazına alıyorum. Metatrader'ı çevrimdışı açıyorum ve verileri oraya almak için Geçmiş merkezini ve içe aktarma işlevini kullanıyorum. Tabii ki, kene verisi olmasına rağmen - çubuk formatı ile - metatrader tarafından kabul edilir. Strateji test cihazı kullanıldığında (tabii ki hala çevrimdışı) bu verilere erişebilir.

4) AMA sorun: Metatrader'a göre, bu verilerde aynı tarih ve saat damgasına sahip birden fazla çubuk var (çünkü metatrader saniyeleri yok sayar; en küçük olarak dakikalar olarak kabul eder). Bunun çözümünün, tüm çubukların farklı tarih ve saat damgalarına sahip olması için verileri DEĞİŞTİRMEK olduğunu düşünüyorum (metatrader tarafından alınabilecek bir çözünürlükte). Yani, örneğin, eğer
bir çubuğun zaman damgası 18:00:00 ve diğerinin zaman damgası 18:00:08 - o zaman bu ikinci çubuk 18:01:00 zaman damgasına sahip olacak şekilde değiştirilmelidir. Böylece metatrader tarafından bir sonraki çubuk olarak alınabilir. Bu, elbette tüm zaman damgalarını (ve zamanı gelince tarih damgalarını) değiştirir ama bunun gerçekten önemli olduğunu düşünmüyorum. Sorum şu - TÜM TARİH VE SAAT KAMPANYALARINI BU ŞEKİLDE NASIL DEĞİŞTİREBİLİRİM?

Tabii ki, verilerin Excel için çok fazla girişi var. Microsoft Access'e erişin.

Belki her girişte yinelemeli olarak 1 saniye ekleyecek bir komut dosyası işe yarayabilir. Ama yukarı çıktıkça saati ve tabii ki tarihi ona göre değiştirmek zorunda kalacağız. Beni tutan şey bu - beni sıkıştırıyor. Bunu nasıl yapacağımı bilmiyorum.


çubuk tabanlı kene verilerimin bir örneği aşağıda kesilip yapıştırılmıştır
(bu CL verileridir - tatlı ham petrol geleceği )

tarih, saat, açık, yüksek, düşük, kapat, Hacim
20100831,18:00:00,71.70,71.70,71.70,71.70,2
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:00,71.70,71.70,71.70,71.70,1
20100831,18:00:01,71.73,71.73,71.73,71.73,2
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.73,71.73,71.73,71.73,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.74,71.74,71.74,71.74,1
20100831,18:00:01,71.75,71.75,71.75,71.75,7
20100831,18:00:01,71.75,71.75,71.75,71.75,1
20100831,18:00:04,71.75,71.75,71.75,71.75,1
20100831,18:00:05,71.74,71.74,71.74,71.74,1
20100831,18:00:05,71.75,71.75,71.75,71.75,1
20100831,18:00:05,71.75,71.75,71.75,71.75,3
20100831,18:00:08,71.75,71.75,71.75,71.75,7
20100831,18:00:09,71.75,71.75,71.75,71.75,1
20100831,18:00:10,71.75,71.75,71.75,71.75,1
20100831,18:00:10,71.75,71.75,71.75,71.75,1
20100831,18:00:10,71.71,71.71,71.71,71.71,1
20100831,18:00:11,71.70,71.70,71.70,71.70,1
20100831,18:00:11,71.68,71.68,71.68,71.68,1
20100831,18:00:19,71.71,71.71,71.71,71.71,1
20100831,18:00:19,71.71,71.71,71.71,71.71,1
20100831,18:00:19,71.69,71.69,71.69,71.69,1
20100831,18:00:19,71.69,71.69,71.69,71.69,1
20100831,18:00:19,71.68,71.68,71.68,71.68,2
20100831,18:00:19,71.67,71.67,71.67,71.67,1
20100831,18:00:34,71.72,71.72,71.72,71.72,1
20100831,18:00:34,71.72,71.72,71.72,71.72,1
20100831,18:00:35,71.72,71.72,71.72,71.72,1
20100831,18:00:37,71.72,71.72,71.72,71.72,1
20100831,18:00:56,71.71,71.71,71.71,71.71,1
20100831,18:00:56,71.71,71.71,71.71,71.71,1
20100831,18:00:56,71.70,71.70,71.70,71.70,1
20100831,18:01:00,71.71,71.71,71.71,71.71,1
20100831,18:01:02,71.72,71.72,71.72,71.72,1
20100831,18:01:11,71.71,71.71,71.71,71.71,1
20100831,18:01:12,71.71,71.71,71.71,71.71,1
20100831,18:01:13,71.71,71.71,71.71,71.71,1
20100831,18:01:16,71.70,71.70,71.70,71.70,1
20100831,18:01:26,71.70,71.70,71.70,71.70,3
20100831,18:01:26,71.70,71.70,71.70,71.70,5
20100831,18:01:28,71.70,71.70,71.70,71.70,1
20100831,18:01:33,71.71,71.71,71.71,71.71,1
20100831,18:01:36,71.70,71.70,71.70,71.70,4
20100831,18:01:45,71.70,71.70,71.70,71.70,1
20100831,18:01:46,71.71,71.71,71.71,71.71,2
20100831,18:01:46,71.71,71.71,71.71,71.71,4
20100831,18:01:49,71.71,71.71,71.71,71.71,1
20100831,18:02:19,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:25,71.70,71.70,71.70,71.70,1
20100831,18:02:26,71.70,71.70,71.70,71.70,1
20100831,18:02:26,71.70,71.70,71.70,71.70,1
20100831,18:02:39,71.74,71.74,71.74,71.74,1
20100831,18:03:10,71.74,71.74,71.74,71.74,1
20100831,18:03:29,71.75,71.75,71.75,71.75,1
20100831,18:03:34,71.75,71.75,71.75,71.75,1
20100831,18:03:34,71.77,71.77,71.77,71.77,1
20100831,18:03:41,71.78,71.78,71.78,71.78,1
20100831,18:03:41,71.78,71.78,71.78,71.78,5
20100831,18:03:41,71.78,71.78,71.78,71.78,5
20100831,18:03:41,71.79,71.79,71.79,71.79,1
20100831,18:03:44,71.78,71.78,71.78,71.78,1
20100831,18:03:50,71.78,71.78,71.78,71.78,1
20100831,18:03:52,71.79,71.79,71.79,71.79,1
20100831,18:04:14,71.79,71.79,71.79,71.79,1
20100831,18:04:14,71.79,71.79,71.79,71.79,1
20100831,18:04:14,71.80,71.80,71.80,71.80,1
20100831,18:04:14,71.80,71.80,71.80,71.80,2

Verileri aslında saniyeler olmadan ve yalnızca çözüme yardımcı olabilecek dakikalar içinde oluşturabileceğimi unutmayın.

20100831,18:00,71.70,71.70,71.70,71.70,2
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.73,71.73,71.73,71.73,2
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.73,71.73,71.73,71.73,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.75,71.75,71.75,71.75,7
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.74,71.74,71.74,71.74,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,3
20100831,18:00,71.75,71.75,71.75,71.75,7
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.75,71.75,71.75,71.75,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:00,71.68,71.68,71.68,71.68,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.69,71.69,71.69,71.69,1
20100831,18:00,71.69,71.69,71.69,71.69,1
20100831,18:00,71.68,71.68,71.68,71.68,2
20100831,18:00,71.67,71.67,71.67,71.67,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.72,71.72,71.72,71.72,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.71,71.71,71.71,71.71,1
20100831,18:00,71.70,71.70,71.70,71.70,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.72,71.72,71.72,71.72,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.70,71.70,71.70,71.70,1
20100831,18:01,71.70,71.70,71.70,71.70,3
20100831,18:01,71.70,71.70,71.70,71.70,5
20100831,18:01,71.70,71.70,71.70,71.70,1
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:01,71.70,71.70,71.70,71.70,4
20100831,18:01,71.70,71.70,71.70,71.70,1
20100831,18:01,71.71,71.71,71.71,71.71,2
20100831,18:01,71.71,71.71,71.71,71.71,4
20100831,18:01,71.71,71.71,71.71,71.71,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.70,71.70,71.70,71.70,1
20100831,18:02,71.74,71.74,71.74,71.74,1
20100831,18:03,71.74,71.74,71.74,71.74,1
20100831,18:03,71.75,71.75,71.75,71.75,1
20100831,18:03,71.75,71.75,71.75,71.75,1
20100831,18:03,71.77,71.77,71.77,71.77,1
20100831,18:03,71.78,71.78,71.78,71.78,1
20100831,18:03,71.78,71.78,71.78,71.78,5
20100831,18:03,71.78,71.78,71.78,71.78,5
20100831,18:03,71.79,71.79,71.79,71.79,1
20100831,18:03,71.78,71.78,71.78,71.78,1
20100831,18:03,71.78,71.78,71.78,71.78,1
20100831,18:03,71.79,71.79,71.79,71.79,1
20100831,18:04,71.79,71.79,71.79,71.79,1
20100831,18:04,71.79,71.79,71.79,71.79,1
20100831,18:04,71.80,71.80,71.80,71.80,1
20100831,18:04,71.80,71.80,71.80,71.80,2
20100831,18:04,71.80,71.80,71.80,71.80,1
20100831,18:04,71.80,71.80,71.80,71.80,3
20100831,18:04,71.80,71.80,71.80,71.80,17
20100831,18:04,71.80,71.80,71.80,71.80,1
20100831,18:04,71.80,71.80,71.80,71.80,4
20100831,18:04,71.79,71.79,71.79,71.79,1

 
Test cihazı FXT dosyalarını kullanır ve bunların da saniyeleri vardır. Ne yazık ki, her ardışık testte bu FXT dosyalarının üzerine yazılır ve bu nedenle kullanıcılar kendi verilerini koyamazlar (MT4'ün eski sürümlerinde mümkündü -> https://www.mql5.com/en/forum/103180/page6#321081 ) . Bu engeli aşmanın bir yolu var... Detaylı bilgi için buraya bakınız -> http://eareview.net/tick-data .
 

bu web sitesi, herhangi bir tik için standart cevap gibi görünüyor.

ama yapmaya çalıştığım şey farklı bir şey (onay verilerim bu web sitesinin varsaydığı ile aynı kaynaktan OLMADIĞI için farklı bir yoldan gittim - farklı bir başlangıç noktasına sahip ve bu nedenle sunulan dönüşüm için uygun bir alt tabaka değil dosyalar/sistemler).

Gerçekten de benim yöntemimde eski bir metatrader sürümünü kullanmaya gerek YOKTUR. eğer doğruysam. Ben de neredeyse oradayım - sadece son son aşamada yardıma ihtiyacım var,

 

Ne düşündüğünü?

1) Geçerli bir yolda mıyım?

Dediğim gibi - başlangıç noktam için geçerli olmadığı için o web sitesinin (Birt EA) yolunu kullanamıyorum.

2) Eğer öyleyse - üzerinde bulunduğum bu son yapışkan noktayı aşmak için bir fikriniz var mı?

 
Ya Birt'in yöntemini anlamadın ya da ben seni anlamıyorum. Aşağıdakiler anlamsızdır:


mikey :

[...]

4) AMA sorun: Metatrader'a göre, bu verilerde aynı tarih ve saat damgasına sahip birden fazla çubuk var (çünkü metatrader saniyeleri yok sayar; en küçük olarak dakikalar olarak kabul eder). Bunun çözümünün, tüm çubukların farklı tarih ve saat damgalarına sahip olması için verileri DEĞİŞTİRMEK olduğunu düşünüyorum (metatrader tarafından alınabilecek bir çözünürlükte). [...]

Bu, tarih merkezinde ne yaparsanız yapın, Test Cihazı her zaman geriye dönük test için Keneleri enterpolasyon yapacağından hiçbir şeyi çözmeyecektir. Birt'in yönteminin arkasındaki ana fikir, enterpolasyonlu keneler dosyasını, Test Cihazının test etmesi için gerçek keneler içeren bir dosyayla değiştirmektir. Mevcut girişiminizde başarılı olsanız bile, Test Cihazı test etmek için keneleri yine de enterpolasyon yapar, bu nedenle hiçbir anlam ifade etmez.


Bunu okumanızı tavsiye ederim -> https://www.mql5.com/en/articles/1511 ve Birt'in öğreticisini tekrar gözden geçirin. Amacınız, Tester tarafından oluşturulan FXT dosyasını değiştirmek için gerçek kenelere sahip uygun bir FXT dosyası oluşturmak olmalıdır. Birt yöntemini kullanarak "yeniden hesaplamayı" devre dışı bırakabilir ve böylece Test Cihazının FXT dosyanızı (gerçek kenelerinizle) kullanmasını sağlayabilirsiniz.

 

Her şey buna bağlı:

1) Metatrader, keneleri yalnızca çubuklar İÇİNDE enterpolasyon yapar mı? (bence olur)

2) Ve bunu çubuğun verilen değerleri tarafından yönlendirildiği ve kısıtlandığı şekilde yapar: açık, yüksek, düşük, yakın?

[1] ve [2] doğruysa, yöntemimin geçerli olduğunu düşünüyorum çünkü yöntemimde her çubukta yalnızca 1 onay işareti var. Yani, açık, yüksek, düşük ve kapalı değerlerin hepsi eşittir. Bu nedenle, metatrader bunları keneleri enterpolasyon yapmak için kullandığında - enterpolasyon yapılan tüm kenelere tam olarak aynı değer/fiyat verilir. Bu nedenle, metatrader'ın yeni keneleri enterpolasyonu sorun değil - hiçbir şeyi değiştirmez.

Sanırım sorunları anlıyorum ve işleri yapmanın daha iyi bir yolu olduğuna inandığım şeye giden yolda olabileceğimi düşünüyorum. AMA düzeltilmeye hazırım. Belki naif davranıyorum.

 
mikey :

1) Metatrader, keneleri yalnızca çubuklar İÇİNDE enterpolasyon yapar mı? (bence olur)

2) Ve bunu çubuğun verilen değerleri tarafından yönlendirildiği ve kısıtlandığı şekilde yapar: açık, yüksek, düşük, yakın?

[1] ve [2] doğruysa, yöntemimin geçerli olduğunu düşünüyorum çünkü yöntemimde her çubukta yalnızca 1 onay işareti var. Yani, açık, yüksek, düşük ve kapalı değerlerin hepsi eşittir. Bu nedenle, metatrader bunları keneleri enterpolasyon yapmak için kullandığında - enterpolasyon yapılan tüm kenelere tam olarak aynı değer/fiyat verilir. Bu nedenle, metatrader'ın yeni keneleri enterpolasyonu sorun değil - hiçbir şeyi değiştirmez. [...]

Anlıyorum... Bunu açıkladığın için teşekkürler. Peki, eğer çubuk O=C=H=L ve hacim=1 ise, o zaman gerçekten de sadece 1 tik oluşturulmalıdır. Ancak bu, zaman ölçeğini ortalama çubuk hacmiyle 'uzattığınız' anlamına gelir. Ve farklı çubukların farklı hacimleri olmasına rağmen, onu 'düzgün olarak' uzatıyorsunuz. Bunun çoğu uzman üzerinde ciddi etkileri olmalıdır. Bu aynı zamanda test raporlarındaki tarihlerin/saatlerin uzatılacağı ve bu takasın olması gerekenden çok daha fazla alınacağı anlamına gelir. Bu kulağa son derece güvenilmez geliyor ve bence çoğu uzman için 'işe yaramaz'.


Her neyse, 'nasıl yapılır' sorunuza cevap vermek için. Her çubuğun tek bir onay işaretini temsil ettiği bir M1 HST dosyası oluşturmanız yeterlidir. Bu bir komut dosyası aracılığıyla yapılabilir. HST dosya yapısı kılavuzda (Terminal Yardımı) belgelenmiştir ve csv2fxt betiğinden bazı kodları yeniden kullanabilirsiniz.


ps Tester'da enterpolasyonun nasıl yapıldığıyla ilgileniyorsanız, bunun MT5 Tester'da nasıl yapıldığı hakkında iyi bir makale var... MT4 Tester'da olanlara çok benzer (aynı değilse) olmalıdır - > https://www.mql5.com/en/articles/75 .

 

Sonuncuma daha fazla açıklama olarak:

Her bir onay işaretine kendi M1 çubuğu (tam dakika çözünürlüğünde zaman ile benzersiz bir tarih ve saat damgası olan bir çubuk) verilir.

Yani bu, zamanın kaydığı anlamına gelir - bir kene çubuğunun zamanı, o tik işaretinin gerçekte olduğu zamandan çok farklı olabilir.

Ama bu benim için bir sorun DEĞİL. Saati tam olarak bilmem gerekmiyor. Geri teste hangi verileri koyduğumu (bu tarihten o tarihe kadar) biliyorum ve bu yöntemle bu süre sonunda bir kâr veya zarar elde edilip edilmediğini sonunda öğreneceğim. (çıktı grafiğindeki kesin tarih/zamanlar beni ilgilendirmiyor)

Tekrar - düzeltilmeye hazırım. Bunların hepsi ses mi yoksa delilik mi? Lütfen beni Birts'e yönlendirmek yerine söylediklerimi gözden geçirmek için zaman ayırın. çünkü eğer bunu düzgün bir şekilde aktarabilir ve iletebilirsem ve bu mantıklı - bence bu, işleri yapmanın daha iyi bir yolu olabilir.

 

mikey :

[...] Ama bu benim için bir sorun DEĞİL. Saati tam olarak bilmem gerekmiyor. Geri teste hangi verileri koyduğumu (bu tarihten o tarihe kadar) biliyorum ve bu yöntemle bu süre sonunda bir kâr veya zarar elde edilip edilmediğini sonunda öğreneceğim. (çıktı grafiğindeki kesin tarih/zamanlar beni ilgilendirmiyor) [...]

TAMAM. Ancak bunun uzmanı etkilemeyeceğinden kesinlikle emin misiniz? Örneğin - zaman çerçevesi değerlendirmesine veya zaman çerçevelerine dayalı indi'lere dayanan herhangi bir uzman, olması gerektiği gibi çalışmayacaktır. Ayrıca takası sıfıra sıfırlamanız gerekecek, çünkü kesinlikle doğru hesaplanmayacaktır. Şu anda aklıma gelmeyen başka yan etkiler de olabilir... Kulağa çok tehlikeli geliyor.
 
BTW, MT4'te hesaplanma şekliyle alakası olmadığı için hacim verilerini hurdaya çıkarmanız gerekecek (hacim = bir çubukta alınan onay sayısı).
 

Evet. Son mesajımı gönderirken cevabınız geldi.

RE: hacim...- EA'm hacmi "okumazsa" bu konuda güvende miyim? Bunun için endişelenmene gerek yok mu? Hacim hakkında düşünmedim - ama dediğim gibi EA'm hiçbir şey için "okumuyor". Yani, sadece açıklığa kavuşturmak için - hacmi görmezden gelebilir miyim? Yoksa tüm çubuklar için sesi 1'e ayarlamalı mıyım?