MetaTrader 5 Python Kullanıcı Grubu - Metatrader'da Python nasıl kullanılır - sayfa 81

 
Maxim Dmitrievsky :

Ve varsayımsal olarak ONNX desteği alırsak, ithal modeller MQL'nin kendisinden daha mı yavaş olacak?

Sen kendin kontrol et.

Ancak, ONNX üzerindeki gerçek sarmalayıcının kesinlikle python için bir kitaplık / modül ve ardından belirli bir ekran kartının sürücüsü / kitaplığı (uygunsa) şeklinde C ++ içinde olacağını unutmayın.

Python, onunla oldukça pahalı veri dizileri biçiminde değiş tokuş yapmak zorunda kalan verimli kitaplıklara yapılan çağrılar arasındaki bir koridordur.

İnsanlar Python'un gerçekten sadece kütüphane çağrıları üzerinde bir sarıcı olduğunu ve başka bir şey olmadığını yeterince anlamıyor. Python'un güçlü ve modern bir dil olduğunu düşünüyorlar. Ancak gerçekte bu, C ++ kitaplıkları arasında bir bağdır;)

Ayrıca, python'un dinamik yapılarıyla (numpy'de bile) uyumluluğu sağlamak için her kütüphanenin korkunç bir maliyeti vardır.

 
Renat Fatkhullin :

Sen kendin kontrol et.

Ancak, ONNX üzerindeki gerçek sarmalayıcının kesinlikle python için bir kitaplık / modül ve ardından belirli bir ekran kartının sürücüsü / kitaplığı (uygunsa) şeklinde C ++ içinde olacağını unutmayın.

Python, onunla oldukça pahalı veri dizileri biçiminde değiş tokuş yapmak zorunda kalan verimli kitaplıklara yapılan çağrılar arasındaki bir koridordur.

İnsanlar Python'un gerçekten sadece kütüphane çağrıları üzerinde bir sarıcı olduğunu ve başka bir şey olmadığını yeterince anlamıyor. Python'un güçlü ve modern bir dil olduğunu düşünüyorlar. Ancak gerçekte bu, C ++ kitaplıkları arasında bir bağdır;)

Ayrıca, python'un dinamik yapılarıyla (numpy'de bile) uyumluluğu sağlamak için her kütüphanenin korkunç bir maliyeti vardır.

Ayrıntıları öğrenene kadar kontrol edeceğim.

python'un esas olarak araştırma için olduğu açıktır.

Ancak daha sonra önceden eğitilmiş bazı sinir ağlarının kodunu çıkarmak için (ve araştırma sırasında her seferinde değişirler), o zaman bir yere bir şey aktarmak zaten gerçekçi değil :)

Belki de tam olarak ne yapmak istediğini anlamıyorum. Her durumda, Python API ile birçok fırsat vardır. Piyasa geçmedikçe

 
Renat Fatkhullin :

Nein. En basit ve en iyi şey, Selbstmord begehen ve eine Sprache wählen werden, die hunderte Erkek langsamer ist als unsere, um den Tester loszuwerden.

Für uns ist es viel rentabler, unsere Idea zu entwickeln, C++ Zu diesem Zweck, daha fazla bilgi için, einen externen LLVM-Compiler in Editor aufzunehmen.

Sorumun doğru tercüme edilip edilmediğini bilmiyorum. Soru biraz farklı.

Python modülü strateji test cihazı için komutlar alıyor mu? Sonunda mı yoksa kesinlikle değil mi?
 

5 sentimi koyacağım :)

Python'u aldım çünkü içindeki ağlarla çalışmak çok daha kolay (bana öyle geliyor). Bir sürü iş. Al ve uygula. Ve sinir ağları artık bir kenara itilemez. Benim düşünceme göre, MQL'nin bu varlıkla çalışmak için kütüphanelere ihtiyacı var...

 
Almaz :

Ne yaptığı ve verileri nasıl elde ettiğiniz net değil kelimelere göre yavaşlayan Python kodunuzun bir örneğine bakın. Ve neden sürekli dosyaya yazıyor? Sonunda yapılamaz mı?

Python kodunu biraz değiştirdim: kene talebi bir günden 30'a yükseldi, dosyaya satır satır değil, 500 satırlık bloklar halinde yazmayı düzenledim. Çalışma süresi birkaç saniye azaldı. Gösterge hiçbir şey değildir.

Göstergemi değiştirdim. Tamponlar eklendi ve dosyaya satır satır veri yazıldı. Onay isteği aynı kaldı - bir gün.

Göstergeyi grafikte düşürdüm

 2020.11 . 29 17 : 58 : 07.306 newCandles_F_1. 01 (GBPUSD,H2)   00 : 01 : 01

Gösterge çizildi ve tüm veriler bir dakika içinde bir dosyaya yazıldı.

Python - 3 saat

MQL - 1 dakika

 

Hepiniz hoşgeldiniz.

Nedenini söyle.

Bir veri çerçevesine bir csv dosyasını okuma. Sonra bir satıra birkaç satır ekleyip yeni bir csv dosyasına yazarım.

....
csv_framе = pd.read_csv(flname, delimiter= ',' )
# тут меняю имя файла
if os.path.isfile(flname):
    os.remove(flname)

rows, cols = csv_framе.shape
for i in range(candles_in_train, rows):
    lst = list()
     for k in range(candles_in_train):
        m = i - candles_in_train + k
        l = list(csv_framе.iloc[m])
         if m < i - 1 :
            del l[- 1 ]
        lst += l
    mf.write_csv_data(flname, 'a' , lst)

Bu kod 17 saniye çalışır.

Ancak tüm bunları hemen yeni bir çerçeveye yerleştirip bir dosyaya dökersem, kod işleme süresi 1 dakikaya çıkıyor. 44 saniye

...
new_frame = pd.DataFrame()

rows, cols = csv_framе.shape
for i in range(candles_in_train, rows):
    lst = list()
     for k in range(candles_in_train):
        m = i - candles_in_train + k
        l = list(csv_fraim.iloc[m])
         if m < i - 1 :
            del l[- 1 ]
        lst += l
    #mf.write_csv_data(flname, 'a' , lst)
    r, c = new_frame.shape
     if r == 0 :
        new_frame = pd.DataFrame([lst])
     else :
        new_frame.loc[r] = lst
new_frame.to_csv(flname, header=None, index=False)

Nedenmiş?

 

kodlama sorunu? (Google çevirici)


 

Bir tablo var (pandalar DataFrame). Koşullara göre yeni bir sütun nasıl oluşturulur: "1" sütunu < "2" sütunu ise 145 yazın, aksi takdirde 874 yazın?


Ekle:

genel olarak karar verildi

import numpy as np
... np.where(
 
İyi günler, MT5'te Python kullanarak WinApi'ye ulaşabilir misiniz?

Özellikle işe yarayıp yaramayacağıyla ilgileniyor musunuz?

keybd_event(VK_CONTROL, 0 , 0 , 0 );
 

Ofset nasıl yapılır?

İşte bir tablo (Veri Çerçevesi)

      time  
2020 - 11 - 25
2020 - 11 - 26
2020 - 11 - 27
2020 - 11 - 30  
2020 - 12 - 01         

böyle nasıl yapılır:

      time             time_1
2020 - 11 - 25	   2020-11-26
2020 - 11 - 26         2020-11-27
2020 - 11 - 27         2020-11-30
2020 - 11 - 30         2020-12-01 
2020 - 12 - 01          ничего не писать 
Neden: