EURUSd için iyi bir geçmiş dosyasına ihtiyacım var - sayfa 4

 

schnappi'ye göre, doğal olarak hatalı onay işaretlerini ve veri açıklarını belirleme (ve sonunda düzeltme) metodolojisinin kendisi gelişen bir süreçtir. Harici olarak tanımlanmış filtrelerin standart yaklaşımıyla başladım (fiyat deltası> X ise, o zaman kötü bir onayımız var vb.) finansal aracın fiyat evrimi dinamiklerinin içsel istatistiksel özelliklerini temsil eden veya etmeyen bir görünüm.

Sonunda yöntemim, verilerin finansal aracın kendi içsel özellikleriyle kendi kendine tutarlı olmasını istediğim noktaya kadar yinelendi (bu tartışmada döviz çifti, ancak genel olarak geçerlidir). Bunun pratikte anlamı şudur: "bilinen iyi piyasa verilerini" alıyorum ve özelliklerini sağlam bir şekilde karakterize ediyorum: zaman boşlukları, fiyat boşlukları, vb. Bu, döviz çifti için (komisyoncu olacak) doğal/karakteristik fiyat evriminin bir profilini oluşturur. her komisyoncunun fiyat akışını "canlı tutmak" için kendi ince "pompa ve nabız" algoritmaları olduğu için spesifiktir.

Bu karakterizasyon verileriyle donanmış olarak, komut dosyasının daha eski, daha sorgulanabilir zaman periyotları boyunca her bir çubuğun, döviz çiftinin doğal doğası ile istatistiksel olarak tutarlı olup olmadığının esasına göre değerlendirilmesini sağlarım. Örneğin USDJPY için ardışık M1 mumları arasında oluşan fiyat farkının genellikle <3pip olduğunu gözlemlediğimizi varsayalım. Diğer bir deyişle, N+1 mumu için yakın teklif, genellikle N mumu için açılış teklifinden -3 ila +3 pip arasında herhangi bir yerdedir.

Bu, istatistikleri oluşturmak için kolay bir metriktir, sadece verileriniz için close(i+1)-open(i)'yi analiz edin ve bir histogram oluşturun: (kendilerinin sahip olduğu mum çiftlerinden gelen fiyat boşluklarını özellikle/kasıtlı olarak hariç tuttuğumu unutmayın. karakterizasyonun bu aşaması için aralarında bir zaman aralığı)


Şimdi, örneğin 2003 gibi önceki bir yıl için geçmiş verileri değerlendirirseniz ve senaryonuz, istatistiksel olarak tutarlı aralığın oldukça dışında olan (bu örnek için 50pip boşluk tespit edildiğini varsayalım) ardışık mumlar arasında (zaman boşluğu yok) bir fiyat farkı gözlemlerse, o zaman betiğinizin o anda değerlendirilmekte olan fiyat verilerini şüpheli olarak değerlendirmek için bir nedeni var.

Şüpheli mumlarınızla ne yaptığınız (düzeltme aşaması) tamamen başka bir sorudur, ancak işte bir örnek:


Verileri iyileştirmede kaçınılması gereken tehlikeler ve tuzaklar vardır, kötü mumların tahliye listenizi ve bunların ikamelerini nasıl tanımladığınıza dikkat etmezseniz, bilmeden yarardan çok zarara neden olabilirsiniz (sadece mumu mumdan silmeyi düşünüyorum). Bu durumda kötü bir fiyat boşluğunu yapay bir zaman boşluğuyla değiştirir).

 
Phillip, bu ilginç şeyler ama bana çok riskli ve zaman alıcı görünüyor. Yapamadığım kaynakları 'düzeltmeye' çalışmaktansa güvenebileceğim kaynakları kullanmayı tercih ederim...

Şu 'şüpheli' mumlara gelince. Birçok broker, çeşitli nedenlerle garip fiyat artışlarına sahiptir. Yukarıdaki örneğinizde, bunun bariz bir "kötü tik" verisi olduğunu nereden biliyorsunuz? Böyle sıçramalar olur...
 
gordon wrote >>
Phillip, bu ilginç şeyler ama bana çok riskli ve zaman alıcı görünüyor. Yapamadığım kaynakları 'düzeltmeye' çalışmaktansa güvenebileceğim kaynakları kullanmayı tercih ederim...

Şu 'şüpheli' mumlara gelince. Birçok broker, çeşitli nedenlerle garip fiyat artışlarına sahiptir. Yukarıdaki örneğinizde, bunun bariz bir "kötü tik" verisi olduğunu nereden biliyorsunuz? Böyle patlamalar olur...


Ynt: bunun bariz bir "kötü tik" verisi olduğunu nereden biliyorsunuz ... bu durumda bu komisyoncu ile 3 + yıllık verilerin ayrıntılı bir analizi, 1 milyondan fazla mumda bir kez bile böyle bir yükselişin asla meydana gelmediğini gösterdi veri. Occam'ın usturası... 2 Ağustos 1999 04:29'da gerçekleşmesi daha muhtemel olan şey: piyasa 60 pips yukarı fırladı, mum mumun En Yüksek seviyesinde kapandı ve ardından bir sonraki tik, bir sonrakinin açılış fiyatını işaret ediyor mum piyasa 50 pips geri hareket etti ve müteakip piyasa faaliyeti, yükselişten önceki mumlardan daha fazla oynaklık göstermedi mi? Veya bu özel mum, meşru bir şekilde (güvenle) ortadan kaldırılabilecek sahte bir şekilde kötü bir kene içeriyor mu?

Yukarıdaki mesajımdaki ilk grafikten fark edeceksiniz, 3+yıllık veri için, bu çift için sadece 4 pips'i aşan açık-yakın bir boşluğun frekansı sıfırdır. Bu örnekte, 50pip aykırı değeri bariz bir aykırı değer olarak markalamakta ve onu tarihi ticaret kaydımın kopyasından çıkarmakta rahat hissettim.

Ynt: güvenilir kaynaklara karşı düzeltme ... MT4 platformunu kullanırken satış fiyatı için herhangi bir geçmiş kayıta güvenemeyeceğiniz için, güvenilir ve güvenilmez geçmiş verilere sahip olma fikri, bence gerçekten kişisel rahatlıklardan biridir. Tabii ki, sizin özel ticaret stratejinize bağlıdır, benim durumumda tarihsel kaydın kesin özellikleri benim EA'm için önemsizdir. Bir ticaret stratejisi, kârlı olması için tarihsel kayıtlarda kesinlik ve doğruluk gerektiriyorsa, tüm satış fiyatları sabit bir spread (ki bu değil) varsayılarak geriye dönük testlerde üretildiğinden, herhangi bir döviz çiftindeki kısa pozisyonlar için büyük olasılıkla karlı olmayacaktır. t tarihsel olarak doğru veya gerçek piyasa koşullarını temsil ediyor).

Dolayısıyla, geriye dönük testlerde elde edilen satış fiyatlarının gerçekleriyle başa çıkmak için yeterince sağlam bir EA yapacaksanız, muhtemelen tarihsel kayıtlardaki sahte/hatalı fiyat verileriyle başa çıkabilen bir EA oluşturmuşsunuzdur. Yanılıyor olabilirim, ilk kez olmazdı, ancak tarihsel verilere yaklaşımım, onu EA'mı agnostik yapmak amacıyla kullanmaktır.

 
1005phillip :


Ynt: bunun bariz bir "kötü tik" verisi olduğunu nereden biliyorsunuz ... bu durumda bu komisyoncu ile 3 + yıllık verilerin ayrıntılı bir analizi, 1 milyondan fazla mumda bir kez bile böyle bir yükselişin asla meydana gelmediğini gösterdi veri. Occam'ın usturası... 2 Ağustos 1999 04:29'da gerçekleşmesi daha muhtemel olan şey: piyasa 60 pips yukarı fırladı, mum mumun En Yüksek seviyesinde kapandı ve ardından bir sonraki tik, bir sonrakinin açılış fiyatını işaret ediyor mum piyasa 50 pips geri hareket etti ve müteakip piyasa faaliyeti, yükselişten önceki mumlardan daha fazla oynaklık göstermedi mi? Veya bu özel mum, meşru bir şekilde (güvenle) ortadan kaldırılabilecek sahte bir şekilde kötü bir kene içeriyor mu?

Tamam, ama bu aşırı bir durum. Ya yaklaşık 30 pip olsaydı ve bunca yıllık veride böyle 3 vakanız olsaydı. o zaman nereden biliyorsun Demek istediğim, bariz olmadığı ve tahmin etmeniz gereken durumlar olacak.


Ynt: güvenilir kaynaklara karşı düzeltme ... MT4 platformunu kullanırken talep fiyatı için herhangi bir geçmiş kayıtlara güvenemeyeceğiniz için, güvenilir ve güvenilmez geçmiş verilere sahip olma fikri, bence gerçekten kişisel rahatlıklardan biridir (...)

Ama mesele bu değil. Olduğu gibi kullanabileceğiniz ve tüm bu zahmete girmeyeceğiniz güvenilir kaynaklardan bahsediyorum. MT4 Tester'da Ask fiyatının (sabit spread) olmamasının bununla hiçbir ilgisi yok çünkü hem kötü kaynakları hem iyi kaynakları hem de sabit kaynakları etkiliyor... Bu tamamen ayrı bir konu.

 

Phillip: Bence gidilecek yol bu. Aşağıdaki oynaklıkla birlikte fiyat artışlarını analiz ederek kötü kenelerin oldukça güvenli bir şekilde tanımlanabileceğini düşünüyorum. Piyasa bir sonraki M1-bar'da bir ani yükseliş gösteriyorsa ve anormal bir oynaklık yoksa, o zaman bu çok yüksek bir ihtimalle kötü bir işarettir. Yukarıda gösterdiğiniz ekran görüntüsü buna bir örnek.

Daha önemli bir sorunla zaten karşılaştınız: Kötü keneleri tanımlamak bir şeydir - onları düzeltmek başka bir şeydir. Bana göre bunu yapmanın 2 yolu var.

1: Kötü keneleri belirleyin ve tahmin ederek düzeltin. Aniden +50 pip fark eden açıksa, o zaman +3 pip demek için tekrar ayarlayın ve bu böyle devam eder. --> kesin olmayabilir ama uygulaması kolay olabilir
2.: hatalı onay işaretlerini belirleyin ve fiyatları başka bir veri akışıyla karşılaştırın. Bu daha kesin bir yol olurdu - ancak uygulanması çok daha zor.

 

Gordon , tarihsel kayıtların kendi içinde tutarlı olmasını sağlamak için istatistiklerin kendilerine güvenerek tahmin yapmaktan kaçınıyorum. Sanırım, başka bir gönderide temel istatistik odaklı bir tüccar olduğunuzu söylediğinizi hatırlıyorum, bu yüzden öncül, şüpheli veri kümesi ile bilinen iyi veri kümesi (ne "güvenilir kaynak" olarak etiketlersiniz).

Sadece forex durumunda, finansal piyasaların basıklığı tipik olarak sıfırdan büyük olduğundan, normal gauss dağılımları yerine genelleştirilmiş normal dağılımı kullanırdık. Size yeni bir şey söylediğimden şüpheliyim, ancak şüpheli verileri güvenle belirleme ve tahliye etme metodolojimin öncülünü genişletiyorum (machismo türü değil istatistiksel tür;) yani seçim kriterimin bir şey olmadığını biliyorsunuz. yüksek/düşük bant geçiş filtreleri ayarlamak ve verileri sıkıştırmak kadar basit (ve kusurlu).

Doğal olarak, stokastik bir süreç olarak ele alındığında, finansal aracın fiyatlama verilerinin "güvenilir kaynak" dönemi boyunca durağanlığına ilişkin varsayımlar yapılmaktadır. Ancak, EA kodlarımın etkinliklerini gelecek zaman serilerinde eşdeğer durağanlık dönemleriyle sınırlandırmasını istemem şartıyla, kendi kendine tutarlılık yaklaşımın doğasında vardır. "Güvenilir kaynak" verilerinin uzunluğu sonlu olduğundan, karakterizasyonumuzda yakalanan geçmiş döngüsel süreçlerin gelecekteki zaman serilerinde temsil edilmesini bekleyebileceğimiz zaman aralığı için bir üst sınır belirler.

Ancak burada pekiştirilmesi gereken daha yüksek bir nokta var ki, ikimizin de hemfikir olabileceğimiz, verilerin "tarihsel doğruluğu" veya veriler tarafından temsil edilen zamanın uzunluğu ne olursa olsun, tarihsel verileri kullanmaktan elde edilecek değer ve Bir ticaret stratejisini "optimize etmek" için geriye dönük test yapmak, tamamen klavyenin arkasında oturan ve geriye dönük test ile yanıtlanması gereken soruları bilen kişiye bağlıdır. Miktar kaliteyi gölgede bırakmaz, ne geçmiş verilerin uzunluğu ne de yinelemeli geriye dönük test yoluyla bir optimizasyonu sıkıştırmak için harcanan saatler, soru ilk etapta iyi tanımlanmadıysa yanıtlanması gereken soruları yanıtlayamaz. "Hangi parametreler bana maksimum kâr veya minimum düşüş sağlayacak?" diye anlamanız ne kadar sürdü? denenecek ve geriye dönük testlerle cevaplanacak soru DEĞİLDİ :)

Schnappi , elde etmeye çalıştığınız şey açısından hedefinizin ne olduğuna bağlıdır. Tarihsel olarak doğru fiyatlandırma nüanslarını daha fazla yansıtan bir veri seti mi istiyorsunuz yoksa ticaret tetikleyicilerinizin ve para yönetiminin test edildiği zaman serilerinin sayısıyla mı ilgileniyorsunuz? Yanlış cevap yok, elbette herkes piyasa ticaretine farklı yaklaşıyor. Şahsen ben doğrusal zaman serisi testi için geçmiş verileri kullanmıyorum, bu konuda yalnız olmadığımı biliyorum ama insanların çoğunun kullanmadığını özgürce kabul ediyorum. Bir döviz çiftinin karakteristiklerinin (Lévy-Itō ayrıştırması) altında yatan ham istatistiksel doğayı çıkarmak için tarihsel verileri kullanıyorum ve daha sonra monte carlo rutinleri yoluyla istatistiksel olarak eşdeğer ancak aynı olmayan tarihsel veri zaman serilerini oluşturmak için kullanıyorum. Sonra bu fabrikasyon hst zaman serileriyle geriye dönük test yapıyorum. ( Bu hafif bir okuma materyali değil, ancak zaten farkında olmadığınız ve okumak istediğiniz bağlantı ihtimalini ekliyorum)

Tıpkı hava durumu tahmininde olduğu gibi, bugünün ve dünün hava durumunu her zamankinden daha yüksek hassasiyet ve doğrulukla öğrenmeye odaklanarak yarının hava durumunu tahmin etmezsiniz, bunun yerine hava durumu metriklerinin evriminin doğal istatistiklerini (sıcaklık, nem, basınç, vb) ve sonra kasıtlı olarak başlangıç koşullarını değiştirirsiniz ve monte carlo'nun zamanda ileri gitmesine izin verirsiniz, bunu birkaç bin kez yaparsınız ve sonuçların ortalamasını alırsınız (ruhta, gerçek ayrıntılar doğal olarak daha karmaşıktır) ve bu temeli formüle eder yarının tahmini için "30'ların ortalarında en düşük ve 60'ların en yükseklerinde".

3 yıl yerine 10 yıllık veriyi geriye dönük test etmek istediğiniz için eski geçmiş verilerden kötü keneleri filtreleme fikrine yaklaşıyorsanız, o zaman sizi birçok geriye dönük testçinin "miktar kaliteyi artıracağı" yanılgısına düşebileceğiniz konusunda uyaracağım. kariyerlerinin bir noktasında aşık olurlar. Bir zamanlar ben de oradaydım, bir süre orada kaldım. Geri testi optimize etmek için daha uzun geçmiş verilerim olsaydı, kaybeden kodlarımın kazanan olacağına/olabileceğine ikna olmuştum. Belki bazıları için doğru olduğu ortaya çıktı ve bu daha uzun geriye dönük teste sahip olmak, ileriye dönük test karları için gerçekten hile yapıyor ama benim için sadece aptal altını (ve çok fazla zaman kaybı) olduğu ortaya çıktı.

Otokorelasyon işlevlerini ve benzerlerini kullandığınız için daha uzun tarihsel kayıtlar istiyorsanız, muhtemelen mandallarınızı ve faz kilitlerinizi bilemek için kendi sanal/sentetik fiyatlandırma veri dizinizi oluşturmaktan daha iyi durumdasınızdır, o zaman doğrudan sağlamlığını kontrol edebilirsiniz. ilk etapta zaman serilerini nasıl ürettiğiniz yoluyla kilitleme protokolleri.

Doğru cevaplara sahip olduğumu iddia etmiyorum, sadece ilk etapta doğru sorularla başlamazsak, o zaman cevapların genel hedefimize (muhtemelen karlar) herhangi bir faydası olmasını umamayacağımızı söylüyorum. .

 
Evet, bu terimleri biliyorum ama çoğunlukla teorik düzeyde. Geçmişim aslında Donanım Mühendisliğinde ve bir yıldan biraz fazla bir süredir sadece istatistiksel algoritmalarla ilgileniyorum. Şu anki projelerim birkaç matematikçiyle birlikte yürütülüyor, dolayısıyla teorik çalışmaların çoğu onlar tarafından yapılıyor. Bu konuları sizinle tartışarak daha iyi iş çıkaracaklarına eminim :). Büyüleyici şeyler ama. Birkaç ay önce uydurulmuş tarih konusunun gündeme geldiğini hatırlıyorum ama bu konuyu hiç ele almadık. Hala 'gerçek' geçmiş üzerinde test ediliyor... ('güvenilir' bir kaynaktan).
 
Phillip: Her şeyden önce, bu anlayışlar için çok teşekkürler.
Bir pazarın istatistiksel özelliklerini çıkardığınızı ve ardından sentezlenmiş pazar verileri oluşturduğunuzu ve bu veriler üzerinde monte-carlo simülasyonları çalıştırdığınızı söylüyorsunuz. Bu son derece ilginç, ama ne yazık ki bu benim becerilerimin ötesinde. Gönderdiğiniz iki linki okumaya başladım ama onları anlayamadığımı söylemeliyim. Üniversite geçmişim var ama matematik veya benzeri bir şey yok. Benim yaklaşımım biraz daha fazla, hadi buna "uygulamalı" diyelim - en azından isteğe bağlı bir tüccarın bakış açısından. Gerçekten üzgün. Muhtemelen staj teklif etmiyorsunuz, değil mi?

"Nicelik kalite yanılgısına yol açacaktır" dediğinizin farkındayım - çünkü ben de bu noktada takılıp kalarak çok zaman kaybettim. Bu zamanı boşa harcamış olacağımı söylemesem de, bu farklı bir nokta. Hayır, bu tartışmaya girmemin nedeni şu anda geliştirme sürecimi geliştiriyor olmam. Kapsamımı genişletmek için ek veriler alacağım. Ayrıca MT vb. ile geriye dönük testleri otomatikleştirmek için bir çözüm üzerinde çalışıyoruz.
 

schnappi Gönderinizi şimdi gördüm, duyarlılığınızı takdir edebilirim ve ilk bakışta her şeyin oldukça karmaşık göründüğüne katılıyorum (basit olmadığından emin olmak için) ancak kendinizi bunun yapabileceğiniz bir şey değilmiş gibi hissetmenize izin vermeyin Yakın gelecekte bir gün kendi şartlarınızda ustalaşın. Bu şeyleri anlamak ve kullanmak için bir üniversite diplomasına ihtiyacınız yok, sadece devam etmek için zamana/bağlılığa ve kişisel dürtüye ihtiyacınız var ve kaçınılmaz olarak konulara hakim olacaksınız.

Mevcut profesyonel yatırım finansmanı endüstrisindeki, öğrenme eğrisini kısaltmak için bir miktar mesafe kat edecek bazı terim ve konulardan haberdar olmanıza yardımcı olur ve umarım yazılarım bu kapasitede size yardımcı olmuştur. Benden öncekiler omuzlarını üzerinde durmam için bana teklif etmeseydi, şu an bulunduğum yerde olmazdım.

Biz "evde yetişen" nicel tüccarların çok ortak noktası var, geçmişlerimiz son derece çeşitli ve çoğumuz finans veya programlama alanında yüksek eğitime sahip değiliz, ancak örgün eğitimde eksiklerimizi azim ve hırsla kapatmayı hedefliyoruz. Thomas Edison için işe yaradı... kuşkusuz etik/ahlak açısından en iyi örnek değil, ama onun 10.000 ampul prototip örneği, hikayenin ahlaki değeridir.

Kişisel ilerleme hızınızın doğası gereği yinelemeli olduğunu fark edeceksiniz ve belki de zaten sahip olacaksınız. Kodlama teknikleri hakkında daha fazla bilgi edinirsiniz ve kodlarınız daha karmaşık hale gelir, geçmişte işe yarayan ve yaramayan ticaret stratejileri hakkında daha fazla şey öğrenirsiniz ve kendi stratejilerinizi biraz daha geliştirirsiniz, risk yönetimine karşı risk ölçümü hakkında bilgi edinirsiniz. İlk etapta ihtiyaç duyduğunuzun bile farkında olmadığınız şekillerde mahvolma riskiniz ile boğuşmaya başlayın.

Ve yaklaşımımın görünüşte karmaşık olması, karmaşıklığın bir gereklilik olduğu anlamına gelmez...çok daha basit ve çok daha az karmaşık yaklaşımlar her yönden üstün olabilir... Henüz nasıl olduğunu anlayacak kadar zeki değilim. Ampul yapmanın aptalca karmaşık birçok yolu vardır ve daha karmaşık yöntemler daha iyi bir ampulü garanti etmez.

Bu yüzden, yaklaşımınızın karmaşıklığı/basitliği ile benimkinin eksikliği arasında sahip olabileceğiniz herhangi bir algıya kapılmayın...

 

1005phillip : 2010.03.17 18:38

Bu ( ekli mq4 betiği ), işi halletmek için kullandığım şey, hoş değil (olan kod) ve bazı temizlik ve anahtarlar için tekrarlayan if'leri değiştirme vb.

Not: W1 mum açılış saatleri, işlem haftasının ilk gününe (Pazartesi) otomatik olarak ayarlanır ve MN mum açılış saatleri, yeni ayın ilk açık piyasa gününe otomatik olarak ayarlanır
Bu komut dosyası bozuk . Ticaret haftasının ilk günü Pazartesi değil Pazar (2200z)'dir. Ve Cuma veya Pazartesi günleri Tatilleri işlemez. Basit düzeltme:
      time0=Time[i];
//    if((TimeDayOfWeek(time0)==1 && TimeDayOfWeek(Time[i+1])==5) || i==0)
       if (TimeDayOfWeek(time0) < TimeDayOfWeek(Time[i+ 1 ])         || i== 0 )