MT için Python'da bir ticaret sistemi yapmak. - sayfa 11

 
Yuriy Asaulenko :

Teoriden Pratiğe konusunu okuyanlar, sistemimin ve A_K2 sisteminin yaklaşık olarak aynı ideolojiye göre inşa edildiğini zaten biliyorlar - kanalda çalışıyorlar. Tek fark, benimkinin bir yıl önce inşa edilmiş olması. Daha önce, bu stratejinin Python'da küçük değişikliklerle uygulandığını ve test edildiğini zaten yazmıştım, ancak onu çalıştırmanın bir anlamı yok - yeni bir şey beklenmiyor.

Çünkü Çok fazla fikrim yoktu, her türlü göstergeyi geliştiriyordum - bunlardan biri yukarıdaki bir yazı. On adet perçinli. Sonuç olarak, yılanı kirpi ile geçmek için fikir oluştu: kanaldaki çalışmayı trend çalışmasıyla tek bir tutarlı sistemde birleştirmek. Genel olarak, henüz denemedim, ancak bazı unsurları çoktan çözdüm. Her şey uyuyor gibi görünüyor, ancak sorular var. Pratikte ne olduğunu söylemek zor, belki de hiçbir şey. Bakalım.

Merhaba Yuri! Python bilgisini geliştirmek ve deneyimlerden öğrenmek için geliştirmenizin en son sürümünü indirebilir / bakabilir miyim? :-)
 

Her ihtimale karşı, Python kullananlar için haber. Sürüm 3.6 geliştirmeyi durdurdu, yalnızca güvenlik güncellemeleri olacak. Destek 21 yaşına kadar devam edecek.

Mevcut sürüm 3.7'dir. Mevcut 3.7.2. En son Anaconda ile 3.7.1 kullanıyorum.

Aslında Anaconda'mı kırdım ve yenisini kurmaya başladığımda çok şeyin değiştiğini öğrendim. Dedikleri gibi, sürüm 3.7 daha hızlı hale geldi (fark edene kadar, her şey daha önce bana uygundu), sözdizimi eklendi ve yeni işlevler ortaya çıktı.

 

Eller hala sinir ağlarına ve diğer ML'ye ulaşmıyor - Ölçüme kapıldım. Mevcut piyasa parametrelerini ve trendlerini ölçmek için araçlar yapıyorum. Gerçek şu ki, hiçbir sinir ağı-orman-ağaç ve diğer Ml bu parametreleri icat edemez veya hesaplayamaz, ancak tüm bunları kullanabilir ve genelleyebilir.

Ve işte Python'da başka bir araç.

1 dakikalık TF için burada sadece 3 saat. Eğri, piyasa aktivitesini ölçer. Kural olarak, piyasa faaliyeti, fiyat hareketi başlamadan önce bile önemli ölçüde artar ve bu, hareketin başlangıcının habercisi olan iyi bir göstergedir. Ve faaliyette bir düşüşün başlangıcı, neredeyse her zaman bir daireye geçişin başlangıcıdır. Resim, göstergenin fiyat tablosunda MA(12)'nın bile önünde olduğunu gösteriyor.

Gösterge gelecekteki hareketin yönünü belirlemez. MO dalında olduğu gibi kesişme noktalarında dikdörtgenler çizmek ve yön değiştirmek önemsiz bir mesele, onları zihinsel olarak çizebilirsiniz ve işte size bir trend göstergesi.)) Ve sadece önemsiz değil, gereksiz ve zararlı - bu, bir dizi gösterge parametresini yok eder. Ve sistem, göstergelerin ortak işlenmesine dahil olacak ve bunu daha uygun şekilde yapacak.

PS Burada PM'de göstergenin ATR'ye benzer olduğu söylendi.

Esasen, evet, aynı zamanda oynaklığı da ölçer, ancak matematik farklıdır. Bu benim anlayışımdaki oynaklık,)) ve bence ticaret faaliyetini daha iyi yansıtıyor.

 

Forumdaki birisinin gönderiminden Kalman filtresini uyguladı. Öyle övülerek, öyle övülerek...

Genel olarak, orada somut bir sonuç olmayacağını yazdı, ancak yine de kontrol etmeye karar verdi.

Şekil MA 48 ve bu MA temelinde yapılan Kalman filtresi (doğru bir karşılaştırma için aynı nesneyi ele almalıyız).

Evet, yaklaşık 1.5 kat daha hızlıdır, ancak 28-30'luk bir süre ile MA ile değiştirilebilir. Tamamen örtüşmeyecekler, ancak hangisinin daha iyi olduğunu söylemek zor, MA veya Kalman.

Sonuç: çok fazla sorun, az anlam. Tabii ki ticaret görevleri için. Navigasyon yapmıyoruz.

 

Python modeli için polinom regresyonu gerekliydi. Belki senin de ihtiyacın olacak.

Kaynak:

import matplotlib.pyplot as plt
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Ridge
from sklearn.pipeline import make_pipeline

# Подготовка данных
x=np.linspace(- 5 , 5 ,num= 100 )
Y =np.array([( 0.13 *x1** 3 - 0.5 *x1** 2 - 0.8 *x1- 0.1 ) for x1 in x])
# график исходной кривой.
plt.plot(Y)
X=x[:, np.newaxis]
N= 3
# полином регрессия
model=make_pipeline(PolynomialFeatures(N, include_bias=False), Ridge())
model.fit(X,Y)
y_plot = model.predict(X)
# накладываем поверх графика линию регрессии
plt.plot(y_plot)

Takvim:

Bu bir tablo değil, iki. Tamamen örtüştüler, çünkü bu beklenen bir şeydi. ve orijinal eğri ve regresyon 3. derece polinomlardır. Sipariş hatası 1e-3.

 

Başka bir polinom regresyon modeli. İçindeki hata zaten yaklaşık 1.0e-15.

import matplotlib.pyplot as plt
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
#from sklearn.linear_model import Ridge
#from sklearn.pipeline import make_pipeline

# Подготовка данных
x=np.linspace(- 5 , 5 ,num= 100 )
Y =np.array([( 0.13 *x1** 3 - 0.5 *x1** 2 - 0.8 *x1- 0.1 ) for x1 in x])
plt.plot(Y)
X=x[:, np.newaxis]
N= 3
# расчет и вычисление линии регрессии
poly=PolynomialFeatures(N,include_bias= False )
Xm=poly.fit_transform(X)
reg = LinearRegression().fit(Xm, Y)
y_plot=reg.predict(Xm)
# график линии регрессии
plt.plot(y_plot)

Programı göstermiyorum, değişmedi. Yukarıdaki gönderiye bakın.

 

Şimdi MA'nın regresyon çizgisini değiştirip değiştiremeyeceğini görelim. Resmi görmek.

Yeşil - regresyon çizgisi (3. derece polinom), turuncu - MA(350).

Uzun süre elime aldım, yakından kombinlemek bile mümkün olmadı. Bu MA muhtemelen en iyilerinden biridir. Bu arada, bu aynı zamanda göstergeleri yeniden oluşturmanın faydalarıyla da ilgilidir.)

Gelecekte, hala regresyon çizgileriyle bir dizi deney yapabiliriz.

 
Yuriy Asaulenko :

Forumda birisinin sunumundan Kalman filtresini uyguladım. Öyle övülerek, öyle övülerek...

- Yani Pavarotti'yi sevmedim, çıldırıyor, notalara vurmuyor ...

- Pavarotti konserine gittin mi?

- Hayır, Rabinovich bana telefonda şarkı söyledi.

 
TheXpert :

- Yani Pavarotti'yi sevmedim, çıldırıyor, notalara vurmuyor ...

- Pavarotti konserine gittin mi?

- Hayır, Rabinovich bana telefonda şarkı söyledi.

Alım satım için Kalman filtresini uygulayacaksanız yazıdan kusabilirim. Klasik algoritma, zil ve ıslık yok. Burada sadece matematik makalesinde kendinizi programlamanız gerekecek. Kararını ver ve Rabinovich tarafından yönlendirilmeyeceksin.)