Bir mayın tarlasında pazar görgü kuralları veya görgü kuralları - sayfa 84

 

Nötron gönderilen tez için teşekkürler


Konu ve yapıcı için teşekkürler

Şu anda SSAS kullanmaya benzer bir şey uygulamayı başardım (maalesef hem bu konuyu hem de tezi sadece bugün okudum),

muhtemelen doktora bundan yararlanın:

1. Avg'a göre birkaç küme için Klassterem gün içi aralığı. H1 mumunun değeri, bunlara dayanarak gün zaman aralıklarına bölünür ( VI )

(çoğunlukla 2 küme ve 2 VI, ancak bir Jenn çiftinde 4 küme ve 7 VI çıktı)

2. Her araç ve VI için modeller oluşturulur:

- önceki hareketlerin iki giriş için ayrı ayrı yukarı ve aşağı kümelenmesi. parametreler: fiyat ve zaman

- iki girdi için ayrı ayrı yukarı ve aşağı gelecek hareketlerin kümelenmesi. parametreler: fiyat ve zaman
(bu model elbette sadece eğitim aşaması için veri hazırlamak için kullanılır)

- tahmine dayalı modeller:
-- naif bayanlar

-- eşek. tüzük

-- ilişki kuralları

-- NS

-- karar ağacı

3. Ekstremden minimum sapma temelinde, bir zikzak inşa edilir - parçalı bir monoton fonksiyon ve buna göre N segment kalıpları elde ederiz.

4. İlgili kümeleme modellerini eğitir ve segmentleri sınıflandırırız.

5. Modelin prognostik ufkunu, modelin veya düzeltmenin uzunluğunun bir kesri olarak hesaplayın. uzunluk veya desenin uzunluğunun en yakın katına

6. "Tahmin"i hesaplayın ve sınıflandırın

7. Tahmine dayalı modelleri eğitin

Çalışma sırasında, EA verileri MS SQL'e yükler ve zikzak noktaları ve tahminleri belirlemek için periyodik olarak bir istek gönderir. Onları aldıktan sonra, desteklerinin değerlerini ve kuralların güvenilirliğini analiz eder. Karşılaştırmaya dayanarak bir karar verir.


Avantajlar:

- birkaç DM modelinin sonuçlarını kullanmak ve karşılaştırmak mümkündür

- modellerin kendisinde çeşitli yöntemler arasından seçim yapmak mümkündür

Dezavantajları:

- modelleri özelleştirmek için daha az parametre

- kaynak yoğun çalışma MSSQ L

- temelde bilimsel çalışma eksikliği (söz konusu tezin sonuçları da dahil olmak üzere düzelteceğiz)


Sözü edilen eserde ilmîliğin ve ispatın büyük gölgesine hiçbir şekilde tecavüz etmeden,

Bu konuyu okuyan herkese bir soru sormak istiyorum.

parçalı monoton add kümeleme için segmentleri kullanmanın uygunluğu üzerine. hacim, pazar deltası vb. girdiler

Belki, örneğin filtreleme gibi ek bir rol oynayabilirler.


S. Privalov : Özünde, bu çalışma (tez), tahmin için bir model oluşturmak için bir metodoloji tanımlar.

IMHO, bahsettiğimiz şey buydu - örneğin, acc için bir tahmin alırken. kurallar, desenin parçalarının N sayısını ayarlayabilir ve ileriye doğru farklı sayıda tahmini adım talep edebilir ve bunları farklı destekler ve güvenlerle elde edebilirsiniz - yani. tahmin için temel olarak kullanılabilecek bir model elde ederiz.

Ne düşünüyorsunuz, f.Kalman kullanma fikrinizi onlara uygulamak mümkün mü/nasıl uygulanıyor?

Bir modele sahip olmak/-ve onu onlar için eğitmek ilginç olurdu.


Modeller SSAS'ta bu şekilde görünüyor, bu araç için 3 VI belirlendi

Burada http://www.fxexpert.ru/forum/index.php?showtopic=656 mql ve diğer faydalı olanlar dahil ızgara kitaplıkları vardır.

 

En uygun gizli nöron sayısını belirlemeye çalışırken buradaki ağın derinliklerine inmeye başladım. Başkalarının muhtemelen uzun zaman önce geldiği oldukça ilginç bir sonuca vardım. Her şeyi sezgisel olarak açıklamaya çalışacağım. 20 girişi olan bir gizli katman nöronu hayal edin. Dokunaçlar gibi bu girdilerle girdi verilerini araştırır ve araştırma sürecinde girdilerin ağırlıkları ağın beklenen çıktılarını elde etmek için optimize edilir. Şimdi, 20 girişi ilk nöronun 20 girişine bağlı, ancak farklı ağırlıklara sahip başka bir gizli nöron ekleyeceğiz. İkinci nöron aynı girdiyi araştırdığından, esasen yeni bir bilgi sağlamaz. Eğer öyleyse, ağın eğitilmesi her iki nöron için aynı girdi ağırlıklarıyla sonuçlanacaktır. Her iki nöronun çıktıları, çıktı nöronunun karşılık gelen ağırlıkları ile çarpılıp toplandığından, her iki gizli nöronun girdi ağırlıkları, çıkış nöronunun ağırlıklarının oranına eşit bir faktör ile genlik olarak birbirinden farklı olabilir.

Genel olarak, böyle bir 20-2-1 ağı eğittikten sonra, iki gizli nöronun aşağıdaki girdi ağırlıklarını alıyorum:

Sabit çarpan dışında her iki ağırlık kümesinin de giriş sayısına bağlı olarak aynı şekilde davrandığını unutmayın. Yani her iki nöron da çıkış nöronuna aynı bilgiyi verir. Belki de bu yüzden ikinci bir gizli nöron ekledikten sonra ağımın eğitim hatası neredeyse düzelmiyor. İşte gizli nöron ağırlıklarının başka bir resmi. Burada işaretler farklıdır, ancak çıkış nöronunun ağırlıklarının işaretleri de farklıdır.


Genel olarak, böyle bir iki katmanlı ağ, basit bir tek katmanlı ağ (AP modeli) ile aynı şekilde davranır. Bu sonuca göre, çıkmazdayım. Sinir ağlarının sadece sınıflandırma için uygun olduğu ortaya çıktı, yani. çıktının yalnızca iki değeri olduğunda: evet veya hayır. Fiyat tahmini için ağı kullanma girişimi, AR modeliyle aynı sonuçlara yol açar, çünkü nöronların çıktıları doygun değildir ve girdi verileri -1'in altında normalleştirilse bile doğrusal olmayan aktivasyon işlevi küçük bir rol oynar. .+1. Gidip bir bira içeceğim - belki yeni düşünceler ortaya çıkacak (örneğin, ağ girişlerine +1 ve -1 uygulansın mı?)

 
M1kha1l писал(а) >>

Şu anda SSAS kullanmaya benzer bir şey uygulamayı başardım (maalesef hem bu konuyu hem de tezi sadece bugün okudum),

Burada http://www.fxexpert.ru/forum/index.php?showtopic=656 mql ve diğer faydalı olanlar dahil ızgara kitaplıkları vardır.

Nazik sözlerin ve bilgini paylaşmaya karar verdiğin için teşekkür ederim M1kha1l .

Yazınızı anlamak biraz zaman alıyor. Okuyorum.

gpwr yazdı >>

Optimal gizli nöron sayısını belirlemeye çalışırken buradaki ağın derinliklerine inmeye başladım. Başkalarının muhtemelen uzun zaman önce geldiği oldukça ilginç bir sonuca vardım. Her şeyi sezgisel olarak açıklamaya çalışacağım. 20 girişi olan bir gizli katman nöronu hayal edin. Dokunaçlar gibi bu girdilerle girdi verilerini araştırır ve araştırma sürecinde girdilerin ağırlıkları ağın beklenen çıktılarını elde etmek için optimize edilir. Şimdi, 20 girişi ilk nöronun 20 girişine bağlı, ancak farklı ağırlıklara sahip başka bir gizli nöron ekleyeceğiz. İkinci nöron aynı girdiyi araştırdığından, esasen yeni bir bilgi sağlamaz. Eğer öyleyse, ağın eğitilmesi her iki nöron için aynı girdi ağırlıklarıyla sonuçlanacaktır. Her iki nöronun çıktıları, çıktı nöronunun karşılık gelen ağırlıkları ile çarpılıp toplandığından, her iki gizli nöronun girdi ağırlıkları, çıkış nöronunun ağırlıklarının oranına eşit bir faktör ile genlik olarak birbirinden farklı olabilir.

Harika iş, gpwr , paralel nöronların ağırlıklarına bakmak hiç aklıma gelmemişti!

Eğitim sürecinde çok katmanlı bir NN için öğrenme hatasını (kırmızı) ve genelleme hatasını (mavi) azaltma sürecine bir göz atalım:

Genelleme hatasının minimumunun (ki bu bize karar vermede istatistiksel bir avantaj sağlar) minimum genelleme hatasıyla örtüşmediği görülebilir. Bu anlaşılabilir bir durumdur çünkü tarih her zaman tam olarak tekerrür etmez, yaklaşık olarak tekerrür eder. Ve eğer öğrenme için yalnızca bir küresel minimum varsa, o zaman genelleme için birçok yerel minimum vardır ve en iyisini seçmenin bir yolu yoktur. Biri sadece tahmin edebilir. Ve burada istatistikler gizli bir katmanda çok sayıda nöron şeklinde ön plana çıkıyor. Hepsi biraz eğitimsiz ve yerel minimumda "yuvarlanıyor", bazıları en iyi ihtimalle (genelleme hatası açısından), bazıları en kötü ihtimalle. anladın mı Genel olarak, çözümlerinin çıktı lineer nöron tarafından ortalaması alınır ve bu tahmin en iyisidir. Ayrıca, tahmin hatası, gizli katmandaki nöron sayısının karekökü kadar düşmektedir. Bu nedenle, gizli katmandaki nöron sayısı arttıkça NN'nin tahmin gücü artar.

Bahsettiğiniz veriler, şebekenin yeniden eğitilmesi ve bunun sonucunda gizli katmandaki tüm nöronlarının senkronize çalışması hakkında konuşuyor. Çok katmanlı NS'de lineer bir algılayıcıya bir dejenerasyon vardı!

 
Neutron >> :

Nazik sözlerin ve bilgini paylaşmaya karar verdiğin için teşekkür ederim M1kha1l .

Yazınızı anlamak biraz zaman alıyor. Okuyorum.

Harika iş, gpwr , paralel nöronların ağırlıklarına bakmak aklıma bile gelmedi!

Eğitim sürecinde çok katmanlı bir NN için öğrenme hatasını (kırmızı) ve genelleme hatasını (mavi) azaltma sürecine bir göz atalım:

Genelleme hatasının minimumunun (ki bu bize karar vermede istatistiksel bir avantaj sağlar) minimum genelleme hatasıyla örtüşmediği görülebilir. Bu anlaşılabilir bir durumdur çünkü tarih her zaman tam olarak tekerrür etmez, yaklaşık olarak tekerrür eder. Ve eğer öğrenme için yalnızca bir küresel minimum varsa, o zaman genelleme için birçok yerel minimum vardır ve en iyisini seçmenin bir yolu yoktur. Biri sadece tahmin edebilir. Ve burada istatistikler gizli bir katmanda çok sayıda nöron şeklinde ön plana çıkıyor. Hepsi biraz eğitimsiz ve yerel minimumda "yuvarlanıyor", bazıları en iyi ihtimalle (genelleme hatası açısından), bazıları en kötü ihtimalle. anladın mı Genel olarak, çözümlerinin çıktı lineer nöron tarafından ortalaması alınır ve bu tahmin en iyisidir. Ayrıca, tahmin hatası gizli katmandaki nöron sayısının karekökü kadar düşmektedir. Bu nedenle, gizli katmandaki nöron sayısı arttıkça NN'nin tahmin gücü artar.

Bahsettiğiniz veriler, şebekenin yeniden eğitilmesi ve bunun sonucunda gizli katmandaki tüm nöronlarının senkronize çalışması hakkında konuşuyor. Çok katmanlı NS'de lineer bir algılayıcıya bir dejenerasyon vardı!

Ağıma ağırlık sayısı 45 olan 300 eğitim örneği verildi. Literatürde eğitim örneklerinin sayısı ağırlıkların 5 katı olursa ağın %95 olasılıkla genelleştirileceğine dair bir görüş var. Onlar. ağımın teoriye göre iyi bir genellemesi olmalı, ama gerçekte yok. Bu nedenle, bunu doğrulamak için örnekler verdim. Buradaki noktanın daha fazla eğitim örneği almamak olduğunu düşünüyorum. Buradaki nokta, ağı çözmeye zorladığım görevin doğasıdır. Ağın bir sonraki fiyat adımının boyutunu tahmin etmesini sağlamaya çalışırsanız, eğitim sırasında, tahmin edilen adım ile girdi arasındaki orantılılığı korumak için nöronların aktivasyon fonksiyonunun doğrusal bölgesinde çalıştığı ağırlıklara yönelecektir. geçmiş adımlar. Yani, görevin kendisi doğrusaldır. Bu durumda, gizli nöronların eklenmesi hiçbir şeyi iyileştirmeyecektir. Ve gizli katmanın kendisi gereksiz hale gelir. Ağımla deneyler yaparak, tek katmanın çift katman kadar iyi çalıştığı sonucuna vardım. Bence bu konudaki geçmiş yazılarınızı okuyarak EURUSD için de aynı sonuca vardınız.

Benim düşünceme göre, ağ, nöronların aktivasyon fonksiyonunun kademeli olarak seçilebileceği oldukça doğrusal olmayan görevler (XOR görevi veya sınıflandırma görevleri gibi) için kullanılmalıdır.

 

Keşfedilen etkinin özünün, aşırı sayıda eğitim dönemi nedeniyle NN'nin aşırı eğitimi ile açıklanabileceğini ve eğitim dönemlerinin sayısı için bir optimum olması gerektiğini belirtmek isterim Nopt (yukarıdaki şekle bakın) , öğrenme oranı katsayısına bağlıdır. Daha fazla eğitim örneği almanız gerektiğini söylemedim. ", Popt=w*w/d eğitim kümesinin optimal uzunluğu sorununun özü budur. Teori tam olarak bunu söylüyor ve "... eğitim örneklerinin sayısı ağırlıkların 5 katıdır ..." ile değil.

Ağ aşırı eğitiminin etkisine yol açan farklı sebepler hakkında sizinle konuşuyoruz.

Bir sonraki çubuğun işaretini ve genliğini tahmin etme görevinin çoğunlukla doğrusal olduğu ve başka bir şey olamayacağı konusunda size katılıyorum. Piyasa temelde hurda kadar basit ve hava durumu tahmini kadar tahmin edilemez. Biraz sonra, tek katmanlı, gizli katmanda iki nöronlu iki katman ve gizli katmanda 4 nöronlu iki katman için saatlik çubuklarda tahmin kalitesine ilişkin karşılaştırmalı sonuçlar yayınlayacağım. Bütün bunlar, NN'nin d girdilerinin sayısının bir fonksiyonu olarak sunulacaktır. Verilerin, 50 bağımsız sayısal deney üzerinden ortalaması alınacaktır.

 

Ama bir atı ve titreyen bir geyiği tek bir arabaya bağlamanın bir yolu yok mu? MT4 ve MathCad'i kastediyorum. Mevcut fiyatları anında Matkad'da almak ve tüm analizi orada yapmak ve üretilen sinyali MT4'e iletmek. Akla ilk gelen şey bir dosyadır, ancak her iki programın da her zaman iki farklı dosyanın içeriğini kontrol etmesi gerekecektir. Bu çok uygun değil. Belki başka bir şey vardır? MQL'de kesinti işleme olmaması üzücü. Ne kadar uygunsuz yapılmış! Bu kahrolası MT4... Sadece al, ama C++ ile otur.


Not: Şebeke verileriyle uğraşıyorum.

 

Hayır, ancak analiz algoritmasını tamamen hurda için MQL'de uygulamak mı? Ya da ne, zorluklar bir şekilde fahiş mi?

PS Ve istatistik topluyorum ...

 

Evet, her fırsatta MQL ile zorluklar var. Örneğin, bir teklifi bir dizi işleme bölmek için en basit kod (türkiye):

 #property indicator_chart_window
#property indicator_buffers 2

#property indicator_color1 Red
#property indicator_color2 MediumBlue

extern int step = 5 ;
extern int sp = 3 ;

double Trans [ ] , Kagi [ ] ;
int mn , mx , H , Cotir , Up , Dn ;
bool set_new = false , SetMax = false , SetMin = false ;

//******************************************************************************
int init ( ) 
{ 
SetIndexBuffer ( 0 , Trans ) ;
SetIndexBuffer ( 1 , Kagi ) ;

SetIndexEmptyValue ( 0 , 0.0 ) ;
SetIndexEmptyValue ( 1 , 0.0 ) ;

SetIndexStyle ( 0 , DRAW_ARROW ) ;
SetIndexStyle ( 1 , DRAW_ARROW ) ;

SetIndexArrow ( 0 , 119 ) ;
SetIndexArrow ( 1 , 162 ) ;

IndicatorShortName ( "Kagi++" ) ;
return ( 0 ) ; 
} 
//*******************************************************************************

int start ( ) 
{ 
int reset , MaxBar , MaxBarJ , counted_bars = IndicatorCounted ( ) , mx_j , mn_j ;

if ( counted_bars < 0 ) return ( - 1 ) ;
if ( counted_bars > 0 ) counted_bars - - ;
int limit = Bars - counted_bars - 1 ; MaxBar = Bars - 2 ; MaxBarJ = MaxBar - 30 ; 
if ( limit = = Bars - 1 ) limit = Bars - 2 ;

//----+ ОСНОВНОЙ ЦИКЛ ВЫЧИСЛЕНИЯ ИНДИКАТОРА 
for ( int i = limit ; i > = 0 ; i - - )
   {
     Cotir = Open [ i ] * MathPow ( 10.0 , Digits ) ;
          
     if ( ! set_new )
       {
        mx = Cotir ;
        mn = Cotir ;
        H = step * sp ;
        set_new = true ;
       }                
     if ( Cotir - mx > 0 )
       {
        mx = Cotir ;
        mx_j = i ;
       }   

     if ( Cotir - mn < 0 )
       {
        mn = Cotir ;
        mn_j = i ;
       }   

     if ( ! SetMax & & Cotir < = mx - H ) 
       {
         Trans [ i ] = Cotir / MathPow ( 10.0 , Digits ) ; 
         mn = Cotir ;            
         mn_j = i ;
         SetMax = true ;
         SetMin = false ;
         Kagi [ mx_j ] = mx / MathPow ( 10.0 , Digits ) ;
       } 
     if ( ! SetMin & & mn + H < = Cotir ) 
       {
         Trans [ i ] = Cotir / MathPow ( 10.0 , Digits ) ; 
         mx = Cotir ;        
         mx_j = i ;
         SetMax = false ;
         SetMin = true ;
         Kagi [ mn_j ] = mn / MathPow ( 10.0 , Digits ) ;
       } 

   }
return ( 0 ) ;   
}


Çalışır, ancak çalışmasının sonuçlarını grafik penceresinde çizgilerle çizmek çalışmaz. Yalnızca sembolleri (DRAW_ARROW) görüntüleyebilirsiniz, ayrıca (bu zaten benim anlayışımın ötesinde), bölme için 6'dan daha az forma alırsanız, diziler doğru oluşturulmuş olsa da hiçbir şey göstermez. MQL'de, evde yetiştirilen herhangi bir teknolojide olduğu gibi, tamamen beklenmedik birçok zorluk (çiftleri karşılaştırmadan başlayarak ..) ve "belirli anlar" elbette belgelenmemiş. sinirliyim, her şeye rağmen...

Ek olarak, MatKada'da ızgara nasıl kontrol edilir anlaşılır, ancak MQL'de nasıl yapılır - hiçbir fikrim yok? Ya bir yerde bir böcek varsa?

 
paralocus писал(а) >>

Evet, her fırsatta MQL ile ilgili zorluklar var. Örneğin, bir teklifi bir dizi işleme bölmek için en basit kod (türkiye):

eke bakın - çizin - sevinin

paralocus yazdı >>

Ek olarak, MatKada'da ızgara nasıl kontrol edilir anlaşılır, ancak MQL'de nasıl yapılır - hiçbir fikrim yok? Ya bir yerde bir böcek varsa?

Neden NeuroShell veya İstatistik kullanmayı düşünmüyorsunuz? Orada ızgaralar oluşturabilir ve bunları kitaplıklara ekleyebilir ve ardından parametrelerini MT'den eğitebilir ve izleyebilirsiniz.
Dosyalar:
 

Görünüşe göre bilgisayarımda istatistik toplamak için sabırsızlanıyorum...

Tahminin doğruluğuna ilişkin verileri NN girişlerinin sayısı için 1'lik bir adımla sunma fikrinden vazgeçmemiz gerektiğini düşünüyorum. Örneğin, girdi sayısını 2'nin katı olarak alarak sorunu basitleştirebilirsiniz...

Neden: