![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Python'un MT5 ile entegrasyonu tamamlanmadı demek istiyorum. Gösterge değerlerini DOĞRUDAN alamazsınız
Python'da veri okuma
Konunun amaçları beş sent kadar basittir: herkesin terminal ile iletişimi başlatmak, fiyat teklifi istemek, sunucudan bir işlemi açmasını veya kapatmasını istemek gibi kod parçalarını basitçe kopyalayarak Python'da algoritmik ticarete başlamasına izin vermek. vb. Üstelik bunun için son derece uygun bir dilde sadece mantığa odaklanın.
peki, evet ... mantık algoritmik ticaret için yeterli değil - "herkes" kod parçalarını eklemeden ve gerçek ticarete tırmanmadan önce bir ticaret stratejisini test etmeniz gereken mantık
neyse, "efsanevi olmayan" hedeflerinde iyi şanslar
)))
Fiyatların dosyalara kaydedilmesine ihtiyaç duymayan kişiler, kodu hafifçe yeniden yazacak ve "dosyalara yaz - dosyalardan oku" değil, sadece hemen ihtiyaç duydukları veri yapısını yapacaktır. Burada, birçok yönden, ilk adımları atmak isteyenler için sadece ilkel şeylerin bir görüntüsü.
Ancak, listeler, demetler, sözlükler vb. gibi kavramlara zaten aşina olanlar.
Fiyat dosyalarından read_all_files_with_prices işlevini kullanarak okumanızı öneririm; bu işlev, her bir simge için fiyatların bulunduğu dosyayı okumak için read_file_with_prices işlevini kullanır.read_file_with_prices işlevinin , orijinal fiyat dosyasına karşılık gelen satırları ve sütunları olan bir numpy.ndarray dizisi (fiyatlar başarıyla okunduysa ve veri bütünlüğü denetiminden geçtiyse, her öğenin türü numpy.float64'tür) veya ' dizesi döndürsün. veri yok 'veriler okunmadıysa veya eksikse.
read_all_files_with_prices işlevinin tüm araçlar için tırnak işaretleri içeren bir sözlük döndürmesine izin verin. Bu sözlükteki anahtarlar, araçların adları, değerler - karşılık gelen bir enstrüman için tırnak işaretleri olan sözlükler olsun. Bir enstrüman için tırnak içeren sözlüklerde, anahtarlar tarih-saat okumalarıdır (tarih_saat sınıfı), değerler çubuklardır (çubuk sınıfı), ayrıca anahtar sağlamayı öneriyorum:
'is_data': anahtara göre değer - Tırnak işaretleri varsa doğru, Yanlış - dosyadan okuma işlevi 'veri yok' döndürdüyse,
'enstrüman': anahtara göre değer - araç (str);
'prices': anahtara göre değer - araç fiyatları dizisi (numpy.ndarray)
Kısacası, böyle bir veri yapısı öneriyorum:
Python kodu en iyi şekilde IDE/editör/web sitesinden ekran görüntüleri olarak yerleştirilir.
en azından kod yorumlarının yerel olarak vurgulanmaması, onu okunamaz hale getirir, ana metinle birleşir.
Dosyaları okumak ve yukarıdaki veri yapısını oluşturmak için fonksiyonlar eklendi:
Python kodu en iyi şekilde IDE/editör/web sitesinden ekran görüntüleri olarak yerleştirilir.
en azından kod yorumlarının yerel olarak vurgulanmaması, onu okunamaz hale getirir, ana metinle birleşir.
Ancak onu kopyalayabilir ve IDE'de açabilirsiniz ve resimden manuel olarak yeniden yazabilirsiniz, belki ...
Yukarıdaki program nasıl çalışır:
Prensip olarak, verileri analiz etmeye, ticaret kararları vermeye ve uygulamaya başlamak için hemen hemen her şey hazırdır.
Ancak onu kopyalayabilir ve IDE'de açabilirsiniz ve resimden manuel olarak yeniden yazabilirsiniz, belki ...
kimsenin kodu kopyala-yapıştır ile uğraşması pek olası değildir .. burada kimsenin buna ihtiyacı yok
okuyun ve tartışın. Meraklı bir şey ya da önerecek bir şey Podcherppat. Ve IDE'ye sürüklenmesi pek olası değildir. Başkalarının okuması için forumda yayınlarlar ve kullanım için kod ya eklenir ya da havuza bir bağlantı (veya birleştirilir)
ama bu soyut.
Aşağıdaki kodu, SMA'yı hesaplayan bir işlev olan Functions.py dosyasına koyun.
Zaman kaymasını uygulamak için d ve k parametrelerine ihtiyacım var, önemli değil, onları sıfıra eşitleyeceğiz.
Basit bir sakatlık mantığı ile geleceğim, örneğin:
her enstrüman için, okumalar arasındaki z=100 aralıkla SMA gecikmesini hesaplıyoruz, yani s=1+2*z=201 düzeyindeki SMA.
Piyasada işlem yoksa veya bunların sayısı (belirli bir enstrüman için) izin verilen sayıdan azsa (Satış için ayrı, Alım için ayrı ayrı), o zaman:
fiyat şu anda 30 veya daha fazla pip ile SMA(201)'den yüksekse - SL=TP=50 pip ile bir satış işlemi açın,
fiyat şu anda 30 veya daha fazla pip ile SMA(201) altındaysa - SL=TP=50 pip ile bir alım satımı açın.
Bir noktada anlaşmanın karı 20 pip'e ulaşırsa, SL veya TP'nin kapanmasını beklemeden kapatın.
Örnek olarak böyle bir ticareti uygulayalım. Ticaret açısından basit, aptalca, ancak meselenin özü uygulamada.
İşlemleri açmak ve kapatmak için aşağıdaki işlevleri sunuyorum: