Python ile Ticaret

 

Birinden basit (açıkça kârsız, asıl mesele değil) bir ticaret stratejisi önermesini istiyorum.

Eğer mesaj mantıklıysa, yani yapılması gerekenleri az çok net bir şekilde belirtecekse, burada, bu başlıkta, bu stratejiyi kullanarak alım satımı Python dilinde uygulayacağım.

Bekliyorum )

 

Herhangi bir şekilde işe yarayacak bir kod parçasıyla başlayacağım (M5 zaman çerçevesiyle çalışmayı, hesaplamalar yapmayı ve her 5 dakikada bir karar vermeyi planlıyorum):

tarih saatini dt olarak içe aktar


 class date_time(dt. datetime ):
   
    '''
    Класс описывает отсчёт даты и времени.
    Представляет собой расширение класса datetime библиотеки datetime . 
    '''
   
    @property
    def M5_view(self):
        minute = (self.minute// 5 )* 5
         if minute < 10 :
            _minute = ' 0 '+str(minute)
         else :
            _minute = str(minute)
         return self.strftime('%Y%m%d%H')+_minute
   
    @property
    def nice_view(self):
         return self.strftime('%Y.%m.%d %H:%M:%S')
   
    def __str__(self):
         return self.M5_view
   
    def __repr__(self):
         return self.__str__()


Bu sınıf sayesinde, neler olup bittiğini kaydetmek uygun olacaktır.

Örneğin, şöyle bir şey yazın:

dt_stamp_read = ...
print('\n'+date_time.now().nice_view, '- начал работу, планирую прочитать файлы с ценами в {}'.format(dt_stamp_read.nice_view))

ve şöyle bir çıktı alın:

 2021.12 . 11 22 : 41 : 23 - начал работу, планирую прочитать файлы с ценами в 2021.12 . 11 22 : 45 : 30
 

Ayrıca ihtiyacınız olacak:

 class Bar:
    
    '''
    Класс описывает бар, то есть структуру данных,
    удобную для описания изменения цен финансовых инструментов на интервалах времени.  
    '''
    
    def __init__(self, instrument, time_frame, time_close, price_open, price_low, price_high, price_close, pips_value):
        self.instrument = instrument
        self.time_frame = time_frame   
        self.time_close = time_close
        self.time_open = self.time_close - dt.timedelta(minutes=self.time_frame)
        self.price_open = price_open
        self.price_low = price_low
        self.price_high = price_high
        self.price_close = price_close
        self.w = pips_value
    
    def __str__(self):
        str1 = '(Bar: instrument={} time_frame={} time_open={} time_close={}\n'
        str2 = 'open={} low={} high={} close={} pips_value={})'
         return (str1+str2).format(self.instrument, self.time_frame, self.time_open.M5_view, self.time_close.M5_view,
                                  self.price_open, self.price_low, self.price_high, self.price_close, self.w)
    
    def __repr__(self):
         return self.__str__()

buradaki yazı tipi tek aralıklı değil, bu nedenle biçimlendirme nokta değil, görsel olarak biraz kapalı

 
Ve MQL'deki uygulamaya kıyasla avantajı ne olacak?
 
Mikhael1983 :


Lütfen kodu doğru girin: önce düğmeye basın kod tıklayın ve ardından kodu açılır pencereye yapıştırın .

 
Python'da ticaret sistemini test etmenin nasıl planlandığını merak ediyorum?
 
Aleksey Nikolayev # :
Python'da ticaret sistemini test etmenin nasıl planlandığını merak ediyorum?

Python kelimesi için makaleler arayın.

 
Mikhael1983 :

Birinden basit (açıkça kârsız, asıl mesele değil) bir ticaret stratejisi önermesini istiyorum.

Mesaj aklı başındaysa, yani yapılması gerekenleri az çok net bir şekilde belirtecekse, burada, bu başlıkta, bu stratejiyi kullanarak alım satımı Python dilinde uygulayacağım.

Bekliyorum )

MT5 ile sağlanan standart MACD Expert Advisor'ı yeniden yazın. Her aşamada kontrol etmek uygun olacaktır.

Daha spesifik olarak, önerilen test-optimizasyon yöntemi hakkında bir soru soracağım. Kendi kendine yazılmış veya üçüncü taraf python test cihazı? Dosyalar, soketler vb. aracılığıyla MQL5 ile entegrasyon?

 

Python ile ticaret iyidir..

Ancak python, veri analizi için iyi bir araçtır, ancak ticaret için değildir.

MACD seçeneğini düşünürsek, o zaman python'da:

- alıntıları indirmek kolay;

- MACD verilerini hesaplamak kolay;

Ayrıca, her yeni çubukta geçerli koşulu alın, örneğin: MACD değeri ve sinyal çizgisi, yavaş ve hızlı çizgilerin dikliği, fiyatın yavaş olandan uzaklaşması..

Koşul geçmişi boyunca çalıştırın ve belirli bir süre için belirtilen oluşum için artı/eksi istatistiklerini döndürün. Diğer her şey (açma/kapama/işlemleri sürdürme) MQL'de yapılır.

Bir test cihazı icat etmenize gerek yok - hazır bir tane var.

Python'da, SQLite'da tırnak ve göstergelerin depolanması. Soket, dosyalar veya veritabanı aracılığıyla MQL-python iletişimi (soket daha iyidir).

Herşey..

 

Python - yalnızca analiz sonuçlarını 2d (3d) grafikler şeklinde görüntüleme konusunda zengin bir yeteneğe sahip veri analizi için.

copy_rates_from , eksiksiz bir veri analizi için yeterli değildir. Gösterge verilerini (kullanıcı verileri dahil) çıkarmak mümkün olsaydı, analiz halkası kapatılırdı.

Ve bir piton aracılığıyla ticaret yapmak, IMHO, MQL5'te bir PR hareketidir.

 
Mikhael1983 :

Burada, bu başlıkta Python'da bu stratejiyi kullanarak ticaret yapıyorum.

"Sessizce kâr bekliyorum") eklemeyi unuttunuz
Neden: