Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 1175

 
Alexey Vyazmikin :

3 dersim var, yani. ağacın satın almak, satmak ve beklemek için bir sinyali var, şimdi bir catboost ile deniyorum ve hedefleri tek bir sınıfa sıkıştırmak için basitleştiriyorum...

ctree ve cnode sınıfları hakkında ve genel olarak OOP hakkında hiçbir şey bilmiyorum - programlama da çok iyi değil, bu yüzden burada sınıf kodunda bir programcı olmadan anlayabilirsiniz ...

Evet, daha çok nasıl inşa edileceği ve neden sorusu var. Optimize edicide genetik yoluyla da dallara ayrılabilirler, ancak bu artık sizinkine benzemeyecektir. Bunun yerine, optimize edilmekte olan bir algoritma ağacı gibi görünecek ve sanki katmanlar halinde kendi başlarına daha karmaşık hale gelecekler ya da başka bir şey .. optimuma ulaşıldığında, optimize edicide gereksiz olanları ayıklayın. Bu sadece bir seçenek, işe yaradığı gerçeği değil

 
Maksim Dmitrievski :

Evet, daha çok nasıl inşa edileceği ve neden sorusu var. Optimize edicide genetik yoluyla da dallara ayrılabilirler, ancak bu artık sizinkine benzemeyecektir. Bunun yerine, optimize edilmekte olan bir algoritma ağacı gibi görünecek ve sanki katmanlar halinde kendi başlarına daha karmaşık hale gelecekler ya da başka bir şey .. optimuma ulaşıldığında, optimize edicide gereksiz olanları ayıklayın. Bu sadece bir seçenek, işe yaradığı gerçeği değil

Kodun özünü anlamadıysanız tartışmak zor ...

Tahminci gruplarının rotasyonu üzerine bir deney yaptım - aynen söylediğim gibi - bazı tahmin edicilerin örneği iyi kırdığını ve kökte durduğunu, ancak aynı zamanda tüm resmi bozduğunu söylüyorlar.

Genel olarak 9 grubum var - bunları öngörücülere gömülü mantığa göre böldüm, sadece mantıktan daha genel. 512 grup kombinasyonu aldım, aşağıdaki grafik grupların kombinasyonuna bağlı olarak finansal sonucun yayılmasını gösteriyor - Seçim için "Hassasiyet" metriğini kullandım, set önceki günle aynıydı - değişiklik yok, hedef sütunlar_100, ağaç seviyesi 4, sadece 1000 yineleme yaptı.

Tablo, tüm setin sonucunu tüm tahmin edicilerle - 1710 birim ve maksimum - 3511 ve minimum - 607 sonuçları gösterir.


Sonra cezalı bir hesap yaptım yani. grup bayrağının engellenmesini kombinasyonun finansal sonucu ile çarparsak, değer sıfırsa (grup kullanıldı), o zaman grup için pozitif bir sonuç sabitleriz, değer sıfıra eşit değilse, grup engellendi - sonucu -1 ile çarparız, ardından her grup için değerleri toplarız. Bu fikre göre, blok yaparken daha fazla ceza alan grup, toplamda diğerlerinden daha kötü olan gruptur ve elbette daha fazla araştırma için sıralanabilirler.

İşte grafikte göstergelerin birikimi nasıl görünüyor

Tabii ki, eğrilerin şekli kombinasyon algoritmasına bağlıdır, çünkü hepsinde aynı sayıda sıfır ve bir vardır, nihai sonuç hala geçerlidir. Ve öyle - aşağıdaki tabloda.



Tablodan, 1, 8 ve 9 gruplarını devre dışı bırakmanın finansal sonucu iyileştirmede iyi bir etkisi olduğu anlaşılmaktadır.

En iyi finansal sonucun kombinasyonuna bakalım



Ve şimdi en kötü sonucun kombinasyonu için



Genel olarak, tahmin yöntemi işe yaradı - en iyi sonuçta, gerçekten de engellenmemiş bir grup 3,4,5,7 var ve en kötüleri engellendi, en kötü durumda durum neredeyse ayna görüntüsüdür.

Sonuç - bu yaklaşımın yaşam hakkı vardır ve olumsuz etkileyen öngörücü gruplarını agresif bir şekilde tanımlayabilir.

O zaman iki yol vardır, ya negatif grupları bölerek bu kadar kötü sonuçların nedenini aramak ya da pozitif grupları bölerek iyi sonuç veren sihirli tahmin edicilerin nerede olduğunu belirlemeye çalışmak. Öte yandan, iki yoldan gidebilirsiniz ...

En iyi ve en kötü on kombinasyon:

Peki, diğer hedefe ne olacağını görmen gerek...

Ve işte başka bir grafik - üzerinde açıkça görülüyor. daha doğru kararlar (Proc_All - tüm kararlarla ilgili doğru/yanlış kararların deltası (toplamda sıfırlar ve birler)), özellikle bunlar tüm girdilere göre doğru ticari girdiler (Proc_1_V02) ise, kâr o kadar büyük olur.


 
Alexey Vyazmikin :

peki ve sonra üretimde, sinyalleri almak için bu tahmin edicileri nasıl işlersiniz? hepsi aynı model mi?

 
Maksim Dmitrievski :

peki ve sonra üretimde, sinyalleri almak için bu tahmin edicileri nasıl işlersiniz? hepsi aynı model mi?

Üretim (ticaret için gerçek kullanım) hala çok uzakta, ancak modelleri eşleştirme ve onlardan ormanlar inşa etme planları bir sonraki aşama, ancak hala bu süreci nasıl otomatikleştireceğimi bilmiyorum...

Nihai formdaki tahminler Expert Advisor'da elde edilir, bu nedenle kullanım için onları seçmek zor değildir.
 
Maksim Dmitrievski :

Tamam. başarı) katbust ile bir demet mt kurduysanız - bir makale yazın :)

Kelimenin tam anlamıyla bugün beyin üzerinde çalışıyordum... Algo iyileştirmeleri, dağlar yükseliyor, dağlar dikleşiyor.

son 3 ayda geri kalanı 2018'in başına kadar çalıştı, 15 dakika

bir şeyler izle ve rahatla.. Yine de bir vagon işi olsa da. Üstelik hatalar çocukça, .. dizilerinden biri başlangıçta yanlış döndü (seri olarak) ve her zaman ters çevrilmiş özellikler üzerinde eğitildi, iyi çalışmadığı için öfkelendi.

Tabii CatBoost modelinin EA'ya tanıtılması konusu hala açık, bir yandan hiç anlamadığım C++ kodunu yükleme imkanı var, diğer yandan genel olarak modeli düzeltmek için sayfalarda veri almak istiyorum ve bu amaçlar için kendim yazmayacağım bir tercümana ihtiyacım var ...

Evet, kendi yaklaşımınız var - modeller nispeten kısa mesafeler için çalışıyor, ancak neden gerçek koşulları tarihte denemiyorsunuz, yani. 3 ay boyunca geçmiş üzerinde çalışın ve geleceğe yönelik 1 işlem yapın ve ardından sonuçları birbirine yapıştırın - kullanıma uygun ilginç bir sonuç elde edebilirsiniz.

Ve hatalar - evet, herkesin başına gelir - Komik bir hata yaptım - Eğitim örneğinde eğitilmeyen hedefi "kullanmaz" olarak işaretlemeyi unuttum ve birkaç dakikalığına sonuçları değerlendirmekten mutlu oldum: )

 
Alexey Vyazmikin :

Kodun özünü anlamadıysanız tartışmak zor ...

Tahminci gruplarının rotasyonu üzerine bir deney yaptım - aynen söylediğim gibi - bazı tahmin edicilerin örneği iyi kırdığını ve kökte durduğunu, ancak aynı zamanda tüm resmi bozduğunu söylüyorlar.

Genel olarak 9 grubum var - bunları öngörücülere gömülü mantığa göre böldüm, sadece mantıktan daha genel. 512 grup kombinasyonu aldım, aşağıdaki grafik grupların kombinasyonuna bağlı olarak finansal sonucun yayılmasını gösteriyor - Seçim için "Hassasiyet" metriğini kullandım, set önceki günle aynıydı - değişiklik yok, hedef sütunlar_100, ağaç seviyesi 4, sadece 1000 yineleme yaptı.

Tablo, tüm setin sonucunu tüm tahmin edicilerle - 1710 birim ve maksimum - 3511 ve minimum - 607 sonuçları gösterir.


Sonra cezalı bir hesap yaptım yani. grup bayrağının engellenmesini kombinasyonun finansal sonucu ile çarparsak, değer sıfırsa (grup kullanıldı), o zaman grup için pozitif bir sonuç sabitleriz, değer sıfıra eşit değilse, grup bloke - sonucu -1 ile çarparız, ardından her grup için değerleri toplarız. Bu fikre göre, blok yaparken daha fazla ceza alan grup, toplamda diğerlerinden daha kötü olan gruptur ve elbette daha fazla araştırma için sıralanabilirler.

İşte grafikte göstergelerin birikimi nasıl görünüyor

Tabii ki, eğrilerin şekli kombinasyon algoritmasına bağlıdır, çünkü hepsinde aynı sayıda sıfır ve bir vardır, nihai sonuç hala geçerlidir. Ve öyle - aşağıdaki tabloda.



Tablodan, 1, 8 ve 9 gruplarını devre dışı bırakmanın finansal sonucu iyileştirmede iyi bir etkisi olduğu anlaşılmaktadır.

En iyi finansal sonucun kombinasyonuna bakalım



Ve şimdi en kötü sonucun kombinasyonu için



Genel olarak, tahmin yöntemi işe yaradı - en iyi sonuçta, gerçekten de engellenmemiş bir grup 3,4,5,7 var ve en kötüleri engellendi, en kötü durumda durum neredeyse ayna görüntüsüdür.

Sonuç - bu yaklaşımın yaşam hakkı vardır ve olumsuz etkileyen öngörücü gruplarını agresif bir şekilde tanımlayabilir.

O zaman iki yol vardır, ya negatif grupları bölerek bu kadar kötü sonuçların nedenini aramak ya da pozitif grupları bölerek iyi sonuç veren sihirli tahmin edicilerin nerede olduğunu belirlemeye çalışmak. Öte yandan, iki yoldan gidebilirsiniz ...

En iyi ve en kötü on kombinasyon:

Peki, diğer hedefe ne olacağını görmen gerek...

Ve işte başka bir grafik - üzerinde açıkça görülüyor. daha doğru kararlar (Proc_All - tüm kararlarla ilgili doğru/yanlış kararların deltası (toplamda sıfırlar ve birler)), özellikle bunlar tüm girdilere göre doğru ticari girdiler (Proc_1_V02) ise, kâr o kadar büyük olur.


Sadece teneke, okuması kolay, ancak anlamını yakalamak gerçekçi değil - benim için aşırı olan bir kelime oyunu veya bir konuşma şekli ... artı Maxim'in makaleyle ilgili önerisi :)

Uzman Danışmanların Python konsolu ile bağlantısı ile ilgili olarak, MQL'den gerçek zamanlı olarak Python kod blokları göndermenize ve yürütmenize izin veren kendi motorumu zaten sundum, hatta test cihazında çalışıyor.

 
Ivan Negreshniy :

Sadece teneke, okuması kolay, ancak anlamını yakalamak gerçekçi değil - benim için aşırı olan bir kelime oyunu veya bir konuşma şekli ... artı Maxim'in makaleyle ilgili önerisi :)

Uzman Danışmanların Python konsolu ile bağlantısı ile ilgili olarak, MQL'den gerçek zamanlı olarak Python kod blokları göndermenize ve yürütmenize izin veren kendi motorumu zaten sundum, hatta test cihazında çalışıyor.

Ve bir makale söyleyin - basit bir düşünceyi ifade edemiyorsam, o zaman hangi makale var ...

Mesele şu ki, bir ağaç inşa ederken, başlangıçta iki büyük gruba ayrılan tahminciler arasında mantıksal bağlantıların ortaya çıkmasını önleyen açgözlülük ilkesi kullanılır (bir karar ağacının nasıl inşa edildiğini anlıyor musunuz?), böylece model olabilir. Bu nedenle ve aynı zaman periyodu için daha fazla sayıda tahmin edici kombinasyonunu kontrol etmekten dolayı daha az sayıda tahmin edicide daha iyi sonuç verir, ancak bu daha az ölçüdedir.

Sözlerim size kelimelerin anlamını açıklamıyorsa, belirli bir soru sorun.

 
Alexey Vyazmikin :

Ve bir makale söyleyin - basit bir düşünceyi ifade edemiyorsam, o zaman hangi makale var ...

Mesele şu ki, bir ağaç inşa ederken, başlangıçta iki büyük gruba ayrılan tahminciler arasında mantıksal bağlantıların ortaya çıkmasını önleyen açgözlülük ilkesi kullanılır (bir karar ağacının nasıl inşa edildiğini anlıyor musunuz?), böylece model olabilir. Bu nedenle ve aynı süre için daha fazla sayıda tahmin edici kombinasyonunu kontrol etmekten dolayı daha az sayıda tahmin edicide daha iyi sonuç verir, ancak bu daha az ölçüdedir.

Sözlerim size kelimelerin anlamını açıklamıyorsa, belirli bir soru sorun.

Bir forumda düşüncelerin akıcı bir şekilde ifade edilmesi ve bir makalenin yayınlanması farklı türlerdir.

İşte bu başlıkta ne kadar çok tartışıldı, ancak mantıklı ve pratik bir sonuç yok.

Ve sorular, özellikle bir ağacın yapısı gibi temel sorular, onu burada tartışmanın amacı nedir.

Makaleler ve/veya kod yazmak daha iyidir - makine öğrenimi modellerinin, kullanılan kitaplıkların etkinliğini karşılaştırmak, Uzman Danışmanları test etmek ve izlemek...

 
Ivan Negreshniy :

Bir forumda düşüncelerin akıcı bir şekilde ifade edilmesi ve bir makalenin yayınlanması farklı türlerdir.

İşte bu başlıkta ne kadar çok tartışıldı, ancak mantıklı ve pratik bir sonuç yok.

Ve sorular, özellikle bir ağacın yapısı gibi temel sorular, onu burada tartışmanın amacı nedir.

Makaleler ve/veya kod yazmak daha iyidir - makine öğrenimi modellerinin, kullanılan kitaplıkların etkinliğini karşılaştırmak, Uzman Danışmanları test etmek ve izlemek...

MO hakkında makaleler var, orada her şey bilimsel olarak doğrulanıyor, ancak burada daha çok yeni gelenler soru sorabilir veya denemek için bazı fikirleri tartışabilir. Genel olarak, eylemlerimin sonuçlarından zaten emin olduğumda bir makale yazılmalıdır, hala ondan uzağım.

 

Dün, farklı tahmin grupları kullanırken farklı finansal göstergeler hakkında yazdım ve bazen her şeyi tek bir karmaşaya sokmanın mantıklı olmadığını söyledim. Bu mesajda, grupların önemini seçmek için kar gibi bir gösterge kullandım. Bugün, Maxim'in sorusunu hatırlayarak, test örneğindeki modelin sonuçlarına bakmaya karar verdim (bundan önce sadece inceleme örneğine baktım), aynı manipülasyonları yaptım ve üzüldüm - grupların önemi baş aşağı değişti - nasıl, diye düşündüm ... İki örneğin sonuçlarını karşılaştırarak, saf kar gibi bir kriterin uygun olmadığı ortaya çıktı - sorunu çözmek için başka yollar aramanız gerekiyor.

Ve bir fikrim var, ya açgözlü değilseniz ve 512 modelin tümünden elde edilen ortalama kârdan daha yüksek bir sonuç gösteren bu modellerin toplamında bir seçim olarak iyi bir sonuç düşünürseniz!? Mevcut göstergelerden hangisinin bunu en iyi şekilde uygulayabileceğini aramaya karar verdim. Teknik basittir, test örneğinde göstergenin ortalama değerini belirleriz, ardından modelin her versiyonunu kontrol ederiz - ortalama değerden büyükse 1 olur ve daha azsa 0 olur (Bunu Excel'de yaptım ve ara hesaplamalar anlamak için yararlıdır), o zaman aynısını inceleme örneği ile yaparız ve her iki örnekten gelen göstergeleri birbiriyle karşılaştırırız, böylece göstergeyi birine atamanın güvenliğini gösteren istatistikler elde ederiz. gruplar (ortalama değerin üstünde veya altında). Bundan sonra, her göstergenin inceleme örneğinde ne kadar kâr getirdiğine de baktım, test örneğini ilkeye göre bölersek - ortalama değerden fazla veya ortalama değerden az, ortalama karı tuttum.

ilginç bir sonuç



Tablo, kâra göre seçimin (FinRez) iki örnek arasındaki en kötü eşleşme yüzdesini verdiğini ve dahası, "ortalamanın altında" ("0" numaralı sütun) filtreleme yapıldığında, bu grubun en karlı modelleri içerdiğini göstermektedir. testte ortalamanın üzerinde performans gösteren gruba göre sınav örneği. Bunu düşünürseniz, bu makul, çünkü eğitim regresyona değil sınıflandırmaya göre yapılır ve stratejide kar almam varsa, o zaman zararı durdur, aynı sayıda bile sonuçları çarpıtacak şekilde yüzer. doğru sınıflandırılmış sinyallerin Diğer göstergelere bakarsanız, tahmin edilebilirlikleri çok daha yüksektir, yani. bu, trendin hem test örneğinde hem de inceleme örneğinde model için ortalama olarak korunduğu anlamına gelir. Proc_1_V01 göstergesine odaklanmaya karar verirken - bu, numunedeki tüm birimlerden doğru sınıflandırılmış hedef birimlerin yüzdesidir, bu gösterge, örneğin iki boyutlu uzayda (yukarıda/ ortalama değerin altında) - %87,3, bence çok iyi, artı numuneyi kendi yöntemine göre bölmek, yaklaşık olarak aynı ortalama kâr değerini ve hatta ortalama değerden biraz daha fazlasını veriyor - 1488. bu göstergeye göre model seçerken iyi bir finansal sonuç için daha fazla şansınız var mı yoksa dikkate almadım mı?

Bu arada, FinRez (kar) değil, yani Proc_1_V01 göstergesini dikkate alarak grupları revize etmeye karar verdim, metodolojiyi aynı bıraktım, sonuç olarak çok cazip bir sonuç aldık


Grupların önemi, grup 7 hariç, hem test örneğinde hem de inceleme örneğinde tutarlılığını korudu, gösterge tarafından grubun tanımı ile durumun aksine - aşağıdaki tabloda sunulan finansal sonuç .



Buradan şu sonucu çıkarıyorum - istikrar, rastgele olma olasılığı daha yüksek olan mutlak kâr değerlerinden daha önemlidir.

Karın numuneler arasında nasıl dağıldığını gösteren bir grafik de ekleyeceğim (sırasıyla test ve sınava göre %100'e düşürüldü) - filtrelenmiş göstergeler sol tarafta ve alınanlar sağ tarafta, bu, Proc_1_V01 göstergesinin ortalama değerini 1,25 faktörü kadar artırırsanız gerçekleşir.

ve bu karşılaştırma için - eğer kâra göre bir seçim yaparsanız - yoğunluk arttı, ancak %20'den -%15'e kadar yağlı bir kuyruk ortaya çıktı, bu iyi değil.

Genel olarak trendi en iyi şekilde belirleyecek bir gösterge düşünmeniz gerekiyor.

Ancak, iki göstergeyi birleştirerek, Proc_1_V01'e ekleyerek ayrıca kar yüzdesine göre filtreleme -> %20 - çünkü çok daha az kayıp vardır ve aşırı değerler genellikle rastgele olduğu için < %80, o zaman böyle daha değerli bir sonuç elde edebilirsiniz. resim.