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

 

Editörde python betiklerini derlemek, onu editörün içinde çalıştırmak anlamına gelir.

Hata pencerelerindeki çıktıya bakın ve günlüğe kaydedin. Günlük, ana çıktıyı gösterirken, hatalar stderr çıktısını gösterir.

 
Renat Fatkhullin :

Editörde python betiklerini derlemek, onu editörün içinde çalıştırmak anlamına gelir.

Hata pencerelerindeki çıktıya bakın ve günlüğe kaydedin. Günlük, ana çıktıyı gösterirken, hatalar stderr çıktısını gösterir.

Apaçık. "Hatalar" penceresinde hata yok,

hata yok

ve "Günlük" penceresinde, komut dosyası muhtemelen benim eylemimi bekliyor

senaryo benim eylemimi bekliyor

Anladığım kadarıyla, geri bildirim yok (belki de henüz değil).


Sonra 1 numaralı gönderideki örneği çalıştırmaya çalışıyorum ( https://www.mql5.com/en/forum/306688 ) - matplotlib ve MetaTrader5 paketini kurdum.

İlk gönderideki örneği çalıştırmaya çalışıyorum

hatalar içinde

test.py started test.py 1       1
Traceback (most recent call last):      test.py 1       1
    MT5Initialize()     test.py 1       1
NameError: name 'MT5Initialize' is not defined  test.py 1       1
test.py finished in 389 ms              1       1

dergide

 2020.01 . 27 10 : 08 : 12.899 Python   "E:\Programs\Python37\python.exe" "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\test.py"

ve hiçbir şey olmuyor (terminal çalışıyor).

 
Renat Fatkhullin :

Editörde python betiklerini derlemek, onu editörün içinde çalıştırmak anlamına gelir.

Hata pencerelerindeki çıktıya bakın ve günlüğe kaydedin. Günlük, ana çıktıyı gösterirken, hatalar stderr çıktısını gösterir.

Yani .py betiği .ex5'e derlenmeyecek mi?
Ve gezginden yürütme için çalıştırın.

 
Vladimir Karputov :

Apaçık. "Hatalar" penceresinde hata yok,


ve "Günlük" penceresinde, komut dosyası muhtemelen benim eylemimi bekliyor

Anladığım kadarıyla, geri bildirim yok (belki de henüz değil).


Sonra 1 numaralı gönderideki örneği çalıştırmaya çalışıyorum ( https://www.mql5.com/en/forum/306688 ) - matplotlib ve MetaTrader5 paketini kurdum.

İlk gönderideki örneği çalıştırmaya çalışıyorum

hatalar içinde

dergide

ve hiçbir şey olmuyor (terminal çalışıyor).

MetaTrader5 kitaplığı kurulu değil, aşağıdakileri yapın:

pip install --upgrade metatrader5

her şey çalışıyor:


 
Roman :

Yani .py betiği .ex5'e derlenmeyecek mi?
Ve gezginden yürütme için çalıştırın.

Elbette derlenmeyecek, ancak gezginde *.py programı olarak görünecek ve ayrı bir terminal iş parçacığında gizli olarak çalıştırılacaktır.

Python için normal MetaTrader 5 kitaplığı aracılığıyla terminalle iletişim.

 
Renat Fatkhullin :

MetaTrader5 kitaplığı kurulu değil, aşağıdakileri yapın:

her şey çalışıyor:


Kütüphanenin değeri:


( matplotlib ile hemen teslim edildi)


Eklendi: ve python'da çalışmaz:


 
Renat Fatkhullin :

Elbette derlenmeyecek, ancak gezginde *.py programı olarak görünecek ve ayrı bir terminal iş parçacığında gizli olarak çalıştırılacaktır.

Python için standart MetaTrader 5 kitaplığı aracılığıyla terminalle iletişim.

Şimdi bu noktaya geldi, Python görsel bir dizüstü bilgisayar gibi olacak, sadece kodun tamamı çalışıyor.
Derleme için zaten dudağımı yuvarladım ve derleme genellikle uçup giderdi.
Gerçek şu ki, .py'den .exe'ye standart derlemeyle, tersine mühendisliğe karşı çok zayıf bir koruma vardır. Hiçbiri diyebilirsin.
.py, .ex5 olarak derlenmişse, mql5'in onu iyi korunan yürütülebilir bir .ex5 olarak derlemesi açısından mql5 büyük ölçüde iyileşirdi.
Python ile bu küresel bir sorundur, bir düşünün. Ayrıca, python'u .exe'ye derlemek, C veya C ++ benzeri bir derleyici kullanır.
Ve mql5 LLVM'de.

 

Kaldırılan piton. 3.8.1 x64 teslim edildi.

Python'da çalışırken, şimdi şu hatalar:


Python 3.8 . 1 (tags/v3. 8.1 : 1 b293b6, Dec 18 2019 , 23 : 11 : 46 ) [MSC v. 1916 64 bit (AMD64)] on win32
Type "help" , "copyright" , "credits" or "license()" for more information.
>>> 
= RESTART: C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\metatrader5-test.py
Traceback (most recent call last):
  File "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\metatrader5-test.py" , line 2 , in <module>
     from MetaTrader5 import *
  File "E:\Programs\Python\Python38\lib\site-packages\MetaTrader5\__init__.py" , line 35 , in <module>
     from .C import *
ImportError: DLL load failed while importing C: Не найден указанный модуль.
>>> 
 
Vladimir Karputov :

Kütüphanenin değeri:


( matplotlib ile hemen teslim edildi)


Eklendi: ve python'da çalışmaz:


Python 3.8'e sahipsiniz, 3.7.6'yı yüklemek daha iyidir, çünkü zaten birçok kitaplık henüz 3.8'e hazır değil.

1) Komut satırından komut dosyasını kontrol edin

2) Python yolunun PATH içinde olduğundan emin olun.

3) Python'un yalnızca bir kopyası olduğundan ve diğer sürümlerle çakışma olmadığından emin olun.

4) Düzenleyici ayarlarında yolun tam olarak Python'un o tek kopyasına gittiğinden emin olun.


Visual Studio gibi farklı ortamlardan dolaylı olarak kurulmuş Python'lardan oluşan bir hayvanat bahçesine sahip olmak oldukça mümkündür.

 
Vladimir Karputov :

Sonra 1 numaralı gönderideki örneği çalıştırmaya çalışıyorum ( https://www.mql5.com/en/forum/306688 ) - matplotlib ve MetaTrader5 paketini kurdum.

İlk gönderideki örneği çalıştırmaya çalışıyorum

hatalar içinde

dergide

ve hiçbir şey olmuyor (terminal çalışıyor).

Biraz beklemeniz gerekiyor - komut dosyası 28/01/2019 tarihinden itibaren veri istiyor - bu zaman alıyor.

İkinci olası neden, terminalin sınırlı bir " Penceredeki maksimum çubuklar " değerine sahip olmasıdır.

ticks1 = MT5CopyTicksFrom( "EURAUD" , datetime ( 2019 , 1 , 28 , 13 ), 10000 , MT5_COPY_TICKS_ALL)
ticks2 = MT5CopyTicksRange( "AUDUSD" , datetime ( 2019 , 1 , 27 , 13 ), datetime ( 2019 , 1 , 28 , 13 , 1 ), MT5_COPY_TICKS_ALL)

rates1 = MT5CopyRatesFrom( "EURUSD" , MT5_TIMEFRAME_M1, datetime ( 2019 , 1 , 28 , 13 ) , 1000 )
rates2 = MT5CopyRatesFromPos( "EURGBP" , MT5_TIMEFRAME_M1, 0 , 1000 )
rates3 = MT5CopyRatesRange( "EURCAD" , MT5_TIMEFRAME_M1, datetime ( 2019 , 1 , 27 , 13 ), datetime ( 2019 , 1 , 28 , 13 ))

Yardım açıkça https://www.mql5.com/en/docs/integration/python_metatrader5/mt5copyratesfrom_py diyor

MetaTrader 5 terminali, çubukları yalnızca kullanıcının grafiklerde kullanabileceği geçmişin sınırları dahilinde işler. Kullanıcının kullanabileceği çubuk sayısı ayarlarda " Penceredeki maksimum çubuklar " parametresi ile belirlenir .


Gerçekten çubuk sayısıyla ilgiliyse, sınırı değiştirebilir veya komut dosyasını önümüzdeki birkaç dakika sürecek şekilde düzeltebilirsiniz, örneğin 2020 için - çalışması gerekir

Настройки платформы - Начало работы - Справка по MetaTrader 5
Настройки платформы - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
Neden: