Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Her şey hazır ve Python TS'mizi MT terminaline bağlamanın zamanı geldi. Ancak bunu başarmak için bazı adımların atılması gerekiyor.
Gelecekteki TS'miz dosyaları C:\PyTS klasörüne okur ve yazar, ancak MQ'nun bilinmeyen bir hevesi nedeniyle MT terminali dosyaları yalnızca kendi dizinine okuyabilir ve yazabilir - C:\<och. birçok harf ve sayı>\Dosya ve başka bir şey yok. Tabii ki, Python kodundaki ayarları değiştirebilir ve yerel MT klasöründe değiş tokuş etmesine izin verebilirsiniz, ancak dosyaları oradan ve ihtiyacım olan yerde okumak ve yazmak için terminale ihtiyacım var ve terminalin sabırsız olduğu yere değil . Ayrıca, gelecekte gerekli olacaktır.
Aslında, bu sorun birkaç yıl önce benim başlığımda çözüldü - https://www.mql5.com/ru/forum/79922 .
Her şey Windows aracılığıyla çözülür. Terminal klasöründe C:\<och. birçok harf ve sayı>\Files, terminal (ve işletim sistemi de) tarafından Files\PyTS'nin bir alt klasörü olarak algılanan C:\PyTS klasörüne bir bağlantı yerleştirilir ve terminal oraya yazar, C:\ PyTS, kendi başına olduğu gibi.)
Bu, yerel Windows yardımcı programı MKLINK kullanılarak komut satırında yapılır. Kendi başlarına çözemeyenler için ayrıntılı bir açıklama:
Çalıştır - cmd veya menüden - Windows Araçları -> Komut İstemi yazıyoruz. Kediye bir pencere açıyoruz. MKLINK veya mklink yazıyoruz. Sahibiz:
Şimdi satırda C:\ içerene kadar birkaç kez cd .. yazıyoruz.
Şimdi gezgini açın ve C:\<och klasörüne gidin. birçok harf ve sayı>\Files, terminal dosyaları kediye yazar ve Ctrl-Ins klasörünün yolunu seçip kopyalar.
Komut istemi penceresine geri dönüyoruz ve orada Shift-In'leri kullanarak cd <space> yazıyoruz, yolu ... \Files klasörüne yapıştırıyoruz ve Enter'a basıyoruz. Alırız:
Şimdi komut satırına yazıyoruz - mklink /D PyTS c:\PyTS ve her zamanki gibi - Enter. Alırız:
Bağlantının oluşturulduğunu görüyoruz. ......\Files klasöründe göründüğüne bakarız ve içine gireriz - dosyaları C:\PyTS klasöründen görürüz. )) Herşey.
Şimdi, terminal tarafından ...Files\PyTS klasörüne yazılan tüm dosyalar aslında C:\PyTS klasörüne yazılacaktır.
.
MQL kodu da ekte bulunmaktadır. - MQL geçmişi okur ve Python uygulamasına iletir. Python kabul eder ve yazdırır. Python'da Başlat düğmesine basmayı unutmayın. )
Umarım MQL koduna yorum yazmanıza gerek yoktur - bir referans var.) Evet, MT'den veri aktarımı bir zamanlayıcıda yapılır - benim için bu aşamada daha uygun.
Şimdilik duracağım - şimdi stratejiyle ilgili sorunları çözmemiz gerekiyor. Öneriler olursa değerlendiririz.)
Bir kez daha tekrarlıyorum: Bir strateji geliştirirken ve hata ayıklarken dosya paylaşımı idealdir, çünkü. değiştirmek için herhangi bir çaba gerektirmez. Çoğu gerçek strateji için gelecekte uygundur. Ancak, gerekirse, programda önemli bir değişiklik yapmadan - 1-2 gün içinde - her zaman başka bir şeyle değiştirebiliriz.
Sık sık yazacağıma söz vermedim, sadece müsait olduklarında. Proje arka planda, ne titrek ne de yuvarlanarak, boş zamanlarında başka şeylerden yapılır.
Sistemin grafikleri göstermesinin iyi olacağını düşündüm
Genel olarak Python basit bir dildir - öğrenmek için birkaç gün yeterlidir. Modüllerle uğraşmak çok daha zor - bunlardan birkaç bin var ve kimin neyi ve neden gerekli olduğu her zaman açık olmaktan uzak. Listelerde olan buydu - bunu anlamak uzun zaman aldı. Ama sonuç şu:
Program CSV dosyasını okur ve çizer.
Grafik, yaklaşık 50 bin mum olan Kapanış fiyatlarını gösterir.
Büyüteç üzerine tıklarsanız ve grafik alanında bir dikdörtgen seçerseniz - bunun gibi:
sonra grafiğin ölçeğini artırabiliriz ve şunu elde ederiz:
Bu birden çok kez yapılabilir. Grafik ayrıca resim olarak taşınabilir ve kaydedilebilir ve tabii ki tam ekrana genişletilebilir.
Uygulamadaki tüm gerekli dosyalar. Zip'i bir klasöre açın ve yürütmek için CSVGraph.py dosyasını çalıştırın
Başlamadan önce, program tarafından içe aktarılan modüllerin kurulu olup olmadığını öğrenmeyi unutmayın.
Saçmalıkları komşulara ve amatör akılcılara bırakalım ve ön sonuçları kendimiz özetleyelim.
Konuyu zaten anladıysan Python'u bir dereceye kadar biliyorsun, CSV dosyalarıyla nasıl çalışılacağını biliyorsun, grafiklerin nasıl oluşturulacağını ve terminal ile nasıl iletişim kurulacağını biliyorsun. Bu, ticaret stratejilerini geliştirmek, simüle etmek ve test etmek için zaten oldukça yeterli. Stratejileriniz keneler kullanmadan 1 dakika veya daha fazla zaman dilimlerinde çalışıyorsa ve yaklaşık 5-10 s aralıklarla terminale erişiyorsa, o zaman doğrudan Phyton'da çalışma stratejileri yapabilir, terminali yalnızca veri sağlamak ve "yürütmek" için bırakabilirsiniz. senin emirlerin.
Ayrıca, yerel makine öğrenimi savunucuları arasında çok popüler olan R dili ve ortamının yeteneklerinin ötesine geçen Phyton programlama ve ortam becerilerine zaten sahipsiniz. Şimdi bile Python'da çok karmaşık gösterge stratejileri oluşturabilirsiniz, ancak Python'un tüm özellikleri (R'ye benzer şekilde) modüller kullanılarak uygulanabilir. Temada sadece 3 modül kullandık - tkinter, numpy ve matplotlib.
Şimdi, Python'un makine öğrenimini kullanarak daha gelişmiş stratejiler geliştirmesi için buna ihtiyacı var. Bunu yapmak için - scikit-learn modülünü kullanabilirsiniz. scikit-learn'in kullanılmasıyla aşağıdaki özellikler kullanılabilir hale gelir - Kullanıcı Kılavuzu . Yöntem setini nasıl buldunuz? - Bayes sınıflandırmasından rastgele ormanlara ve sinir ağlarına kadar R'de bilinmeyen yöntemler ve "Makine Öğrenimi" konusu dahil hemen hemen her şey zaten var.
Bu, Python'daki makine öğrenimi modüllerinden sadece bir tanesidir ve bunlardan yaklaşık bir düzine vardır. Scikit-learn modülünün en iyisi olmadığı ve en gelişmişi olmadığı söyleniyor. Bu kimin neye ihtiyacı var. Gerisini çevrimiçi bulmak kolaydır.
PS Python ile çalışmaya başlayan veya başlamak üzere olanlar için.
Birkaç Python geliştirme ortamı denedim ve en başlangıç dostu olana (kendimi dahil ettiğim) karar verdim - Anaconda . Python da dahil olmak üzere ihtiyacınız olan her şeyin kitte yüklü olması burada uygundur. Spyder kullandığım editör Anaconda ile kurulu. Ayrıca VSCode düzenleyicisini kurmanızı da tavsiye ederim - ayrıca çok iyi ve doğrudan Anaconda'dan yüklendi.
Belki profesyoneller seçimimden memnun olmayacaklar.
Gerekli göstergeler hazır. Python'da yapılan çizime bakın (Python her türlü grafiği çizmek için çok kullanışlı ve hızlıdır.). Bu, tek bir sıçramaya - 1(t) veya bir geçiş fonksiyonuna verilen yanıttır. Aslında standart testlerden biri.
fm - olağan hareketli ortalama (yalnızca kalibrasyon için), f1 - EMA, değiştirilmiş katsayılar ve f2 - standart olmayan gösterge.
Ancak ortak arkadaşımızın dediği gibi:
Milyonlarca kez söyledim ve muhtemelen aynı sayıda tekrar edeceğim... MT sunumundaki göstergelerden daha iyi (standart... eski Slav göstergeleri, tabiri caizse... pagan!!!) hayır bir şey ile geldi.
Dolayısıyla bilimle kafanızı karıştırmamak için standart bir EMA ve strateji kaynakları alacaksınız. Ancak, stratejimi göstergelerime göre yapacağım ve test edeceğim. Belki meraklı gözlerden bir şey saklayacağım, ancak işlevselliği kaybetmeden.
Ancak, EMA'yı geçmek uğruna değil, tüm bunlar başlatıldı. Tüm bunların amacı, makine öğrenimi stratejileridir. Şu anda çeşitli sınıflandırma yöntemlerini test ediyorum. Ve işte test sonuçları:
Şimdiye kadarki en iyi Gauss, RBF SVM, Sinir Ağları ve saf Bayes sınıflandırmasında. Python programı zaten hazır, internette bir yerde ama verilerin hazırlanması kullanıcıya kalmış.
Gitmek.
Gerekli göstergeler hazır. Python'da yapılan çizime bakın (Python her türlü grafiği çizmek için çok kullanışlı ve hızlıdır.). Bu, tek bir sıçrama - 1(t) veya bir geçiş fonksiyonuna verilen yanıttır. Aslında standart testlerden biri.
fm - olağan hareketli ortalama (yalnızca kalibrasyon için), f1 - EMA, değiştirilmiş katsayılar ve f2 - standart olmayan gösterge.
Ancak ortak arkadaşımızın dediği gibi:
Dolayısıyla bilimle kafanızı karıştırmamak için standart bir EMA ve strateji kaynakları alacaksınız. Ancak, stratejimi göstergelerime göre yapacağım ve test edeceğim. Belki meraklı gözlerden bir şey saklayacağım, ancak işlevselliği kaybetmeden.
Ancak, EMA'yı geçmek uğruna değil, tüm bunlar başlatıldı. Tüm bunların amacı, makine öğrenimi stratejileridir. Şu anda çeşitli sınıflandırma yöntemlerini test ediyorum. Ve işte test sonuçları:
Şimdiye kadarki en iyi Gauss, RBF SVM, Sinir Ağları ve saf Bayes sınıflandırmasında. Python programı zaten hazır, internette bir yerde ama verilerin hazırlanması kullanıcıya kalmış.
Gitmek.
Sinir ağlarına geçmeleri üzücü. Ama çoğunlukla çok faydalı, işe yarayacağını düşünüyorum.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Makine öğrenimi robotları
Yuriy Asaulenko , 2018.09.21 00:45
Yapamayacaklar. Olacak maksimum, tarih için aynı uygunluktadır.
Sinir ağlarına geçmeleri üzücü. Ama çoğunlukla çok faydalı, işe yarayacağını düşünüyorum.
Bu konuda NS ve diğer ML yöntemlerine geçiş planı bulunmamaktadır. En azından şimdilik.) Bakalım.
Python'da sistem şablonunun yapıldığı yer burasıdır. Bu şablonun belirli içeriği, belirli bir kullanıcının işidir.
Pekala, zaman zaman Python kitaplıklarının olasılığını göstermenin gereksiz olmadığını düşünüyorum.
Program başlatıldığında, strateji test edilir, tüm işlemlere ilişkin bir rapor bir CSV dosyasına kaydedilir, konsolda diske kaydedilebilecek bir kar tablosu görüntülenir - bkz.