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

 

Verileri mt5'ten çalışan bir python betiğine nasıl aktarabilir ve bir yanıt alabilirim?

Sanırım stdin ve stdout kullanmalı ve yönlendirmek istediğimiz işlemi belirtmeliyiz.

Bunun uygulandığı bir kodu olan var mı?

ps Bu: https://www.mql5.com/en/docs/integration/python_metatrader5 okudum ve kullandım ama bu görev için uygun değil. Veriler ayrıca strateji test cihazından da aktarılmalıdır.

Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
MetaTrader для Python - Интеграция - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

"MetaTrader5" kitaplığında bir sorun var (28/07/21 tarihinden itibaren 5.0.35).Kurduktan ve içe aktarmaya çalıştıktan sonra aşağıdaki hatayı alıyorum

(PressPurtEnv) C:\Users\User>python
Python 3.9 . 6 ( default , Jul 30 2021 , 11 : 42 : 22 ) [MSC v. 1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help" , "copyright" , "credits" or "license" for more information.
>>> import MetaTrader5 as mt5
Traceback (most recent call last):
  File "<stdin>" , line 1 , in <module>
  File "C:\Users\User\AppData\Local\R-MINI~1\envs\PressPurtEnv\lib\site-packages\MetaTrader5\__init__.py" , line 257 , in <module>
     from ._core import *
ModuleNotFoundError: No module named 'MetaTrader5._core'
>>> exit()

5.0.33 sürümüne geri alma çalışır

(PressPurtEnv) C:\Users\User>python
Python 3.9 . 6 ( default , Jul 30 2021 , 11 : 42 : 22 ) [MSC v. 1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", " copyright ", "credits" or "license" for more information.
>>>  import MetaTrader5 as mt5
  File "<stdin>", line 1
    import MetaTrader5 as mt5
IndentationError: unexpected indent
>>> import MetaTrader5 as mt5
>>> mt5.initialize()
True
>>> print(mt5. version ())
( 500 , 3003 , ' 22 Jul 2021 ')
>>> print(mt5.terminal_info())
TerminalInfo(community_account=True, community_connection=True, connected=True, dlls_allowed=True, trade_allowed=True, 
tradeapi_disabled=False, email_enabled=False, ftp_enabled=False, notifications_enabled=False, mqid=False, build= 3003 , 
maxbars= 25000 , codepage= 1251 , ping_last= 51530 , community_balance= 1.1 , retransmission= 0.0 , company='MetaQuotes Software Corp.', 
name='MetaTrader 5 ', language='Russian',path='C:\\Program Files\\MetaTrader 5 ', 
data_path='C:\\Users\\User\\AppData\\Roaming\\MetaQuotes\\Terminal\\D0E8209F77C8CF37AD8BF550E51FF075', 
commondata_path='C:\\Users\\User\\AppData\\Roaming\\MetaQuotes\\Terminal\\Common')
>>> mt5.shutdown()
True
>>> exit()

Bu hatayı onaylayan var mı?

Python 3.7/3.8/3.9 sürümlerinde kontrol edildi

 
Igor_Gagarin :

Verileri mt5'ten çalışan bir python betiğine nasıl aktarabilir ve bir yanıt alabilirim?

Sanırım stdin ve stdout kullanmalı ve yönlendirmek istediğimiz işlemi belirtmeliyiz.

Bunun uygulandığı bir kodu olan var mı?

ps Bu: https://www.mql5.com/en/docs/integration/python_metatrader5 okudum ve kullandım ama bu görev için uygun değil. Veriler ayrıca strateji test cihazından da aktarılmalıdır.

Bu uygulamada Python yalnızca terminali görür. Ona bir istek gönderir, bir yanıt alır. MCL programını görmüyor ve onunla iletişim kuramıyor. MCL programıyla etkileşim kurmak için ek özellikler kullanmanız gerekir. Test cihazıyla etkileşim hakkında hiçbir şey söylemeyeceğim, kullanmadım. Ancak yüksek bir olasılıkla - bu mümkün değil.

İyi şanlar

 
tarafımdan teyit edilmemiştir.
import os
import MetaTrader5 as mt5
print (mt5.__version__)
print (dir(mt5))
path_module=os.getcwd()
print ("Start path os.getcwd():",path_module)
ddir=path_module.split("\\")
print (ddir)
mt5.initialize()
print(mt5.version())
print(mt5.terminal_info())
#----------------------------
dir = os.path.dirname(__file__)
print ("Path os.path.dirname(__file__):",dir)
abs_path = os.path.join(dir)
print ("abs_path:",abs_path) 
##variable = open(abs_path) 
#print (variable)
#===============
#help("modules")
print ('end')
5.0.35
[ 'ACCOUNT_MARGIN_MODE_EXCHANGE', 'ACCOUNT_MARGIN_MODE_RETAIL_NETTING', 'ACCOUNT_STOPOUT_MODE_MONEY', 'ACCOUNT_STOPOUT_MODE_PERCENT', 'ACCOUNT_TRADE_MODE_CONTEST', 'ACCOUNT_TRADE_MODE_DEMO', 'ACCOUNT_TRADE_MODE_REAL' ACCOUNT_MARGIN_MODE_RETAIL_HEDGING ', 'AccountInfo', 'BOOK_TYPE_BUY', 'BOOK_TYPE_BUY_MARKET', 'BOOK_TYPE_SELL',' Book_type_sell_market ',' bookinfo ',' satın al ',' copy_ticks_all ',' copy_ticks_info ',' copy_of_week_friday ',' day_of_week_fiday ',' day_of_week_saturday ',' day_of_week_saturday ',' day_of_week_saturday ',' day_of_week_thurday ',' day_of_week_thurday ',' day_of_week_thurday ',' day_of_week_thurday ',' day_of_week_thurday ',' day_of_week_thurday ',' day_of_week_thurday , 'Day_of_week_wednesday', 'Deal_Divend', 'Deal_Divend_Franked', 'Deal_Entry_in', 'Deal_Entry_INOut', 'Deal_Entry_Out', 'Deal_Entry_Out_by', '', 'Deal_Entry_Out_by', 'Deal_Expert', 'Deal_Mobile', 'Deal_Reason_rollover', 'Deal_Reason_SL', ',', ',' DEAL_REASON_SO', 'DEAL_REASON_SPLIT', 'DEAL_REASON_TP', 'DEAL_REASON_VMARGIN', 'DEAL_REASON_WEB', 'DEAL_TAX', 'DEAL_TYPE_BALANCE', 'DEAL_TYPE_BALANCE', 'DEAL_TYPE_'BONUS' _TYPE_BUY_CANCELED '' DEAL_TYPE_CHARGE '' DEAL_TYPE_COMMISSION '' DEAL_TYPE_COMMISSION_AGENT_DAILY '' DEAL_TYPE_COMMISSION_AGENT_MONTHLY '' DEAL_TYPE_COMMISSION_DAILY '' DEAL_TYPE_COMMISSION_MONTHLY '' DEAL_TYPE_CORRECTION '' DEAL_TYPE_CREDIT '' DEAL_TYPE_INTEREST '' DEAL_TYPE_SELL '' DEAL_TYPE_SELL_CANCELED '' ORDER_FILLING_FOK ' , 'Order_filling_ioc', 'Order_Filling_Return', 'Order_Reason_Client', 'Order_reason_expert', 'Order_reason_mobile', 'Order_reason_sl', 'Order_TP', 'Order_reason_web', 'Order_State_Canceled', 'Order_state_expired', 'Order_state_Filled', ' ORDER_STATE_PARTIAL '' ORDER_STATE_PLACED '' ORDER_STATE_REJECTED '' ORDER_STATE_REQUEST_ADD '' ORDER_STATE_REQUEST_CANCEL '' ORDER_STATE_REQUEST_MODIFY '' ORDER_STATE_STARTED '' ORDER_TIME_DAY '' ORDER_TIME_GTC '' ORDER_TIME_SPECIFIED '' ORDER_TIME_SPECIFIED_DAY '' ORDER_TYPE_BUY '' ORDER_TYPE_BUY_LIMIT ' , 'ORDER_TYPE_BUY_STOP', 'ORDER_TYPE_BUY_STOP_LIMIT', 'ORDER_TYPE_CLOSE_BY', 'ORDER_TYPE_SELL', 'ORD ER_TYPE_SELL_LIMIT '' ORDER_TYPE_SELL_STOP '' ORDER_TYPE_SELL_STOP_LIMIT '' OrderCheckResult '' OrderSendResult '' POSITION_REASON_CLIENT '' POSITION_REASON_EXPERT '' POSITION_REASON_MOBILE '' POSITION_REASON_WEB '' POSITION_TYPE_BUY '' POSITION_TYPE_SELL '' RES_E_AUTH_FAILED '' RES_E_AUTO_TRADING_DISABLED ' 'RES_E_FAIL', 'RES_E_INTERNAL_FAIL', 'RES_E_INTERNAL_FAIL_CONNECT', 'RES_E_INTERNAL_FAIL_INIT', 'RES_E_INTERNAL_FAIL_RECEIVE', 'RES_E_INTERNAL_FAIL_SEND', 'RES_E_INTERNAL_FAIL_TIMEOUT', 'RES_E_INVALID_PARAMS', 'RES_E_INVALID_VERSION', 'RES_E_NOT_FOUND', 'RES_E_NO_MEMORY', 'RES_E_UNSUPPORTED', ' RES_S_OK '' SYMBOL_CALC_MODE_CFD '' SYMBOL_CALC_MODE_CFDINDEX '' SYMBOL_CALC_MODE_CFDLEVERAGE '' SYMBOL_CALC_MODE_EXCH_BONDS '' SYMBOL_CALC_MODE_EXCH_BONDS_MOEX '' SYMBOL_CALC_MODE_EXCH_FUTURES '' SYMBOL_CALC_MODE_EXCH_OPTIONS '' SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN '' SYMBOL_CALC_MODE_EXCH_STOCKS '' SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX '' SYMBOL_CALC_MODE_FOREX '' SYMBOL_CALC_MODE_FOREX_NO_LEVE RAGE '' SYMBOL_CALC_MODE_FUTURES '' SYMBOL_CALC_MODE_SERV_COLLATERAL '' SYMBOL_CHART_MODE_BID '' SYMBOL_CHART_MODE_LAST '' SYMBOL_OPTION_MODE_AMERICAN '' SYMBOL_OPTION_MODE_EUROPEAN '' SYMBOL_OPTION_RIGHT_CALL '' SYMBOL_OPTION_RIGHT_PUT '' SYMBOL_ORDERS_DAILY '' SYMBOL_ORDERS_DAILY_NO_STOPS '' SYMBOL_ORDERS_GTC '' SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT ' 'SYMBOL_SWAP_MODE_CURRENCY_MARGIN', 'SYMBOL_SWAP_MODE_CURRENCY_SYMBOL', 'SYMBOL_SWAP_MODE_DISABLED', 'SYMBOL_SWAP_MODE_INTEREST_CURRENT', 'SYMBOL_SWAP_MODE_INTEREST_OPEN', 'SYMBOL_SWAP_MODE_POINTS', 'SYMBOL_SWAP_MODE_REOPEN_BID', 'SYMBOL_SWAP_MODE_REOPEN_CURRENT', 'SYMBOL_TRADE_EXECUTION_EXCHANGE', 'SYMBOL_TRADE_EXECUTION_INSTANT', 'SYMBOL_TRADE_EXECUTION_MARKET', 'SYMBOL_TRADE_EXECUTION_REQUEST', ' Symbol_Trade_Mode_CroseOnly ',' Symbol_Trade_Mode_Fode_Disabled ',' Symbol_Trade_Mode_Longonly ',' Symbol_Trade_Mode_Longonly ',' Sell ',' SymbolInfo ',' Tick_Flag_ask ',' Tick_Flag_Bid ',' Tick_Flag_Buy ',' Tick_Flag_Last ',' Tick_FL AG_SELL', 'TICK_FLAG_VOLUME', 'TIMEFRAME_D1', 'TIMEFRAME_H1', 'TIMEFRAME_H12', 'TIMEFRAME_H2', 'TIMEFRAME_H3', 'TIMEFRAME_H4', 'TIMEFRAME_H4', 'TIMEFRAME_H6','TIMEFRAME_H6','HRAM_M_E,'M_E_FRAME' , 'TIMEFRAME_M15', 'TIMEFRAME_M2', 'TIMEFRAME_M20', 'TIMEFRAME_M3', 'TIMEFRAME_M30', 'TIMEFRAME_M4', 'TIMEFRAME_M5', 'TIMEFRAME_M6', 'TIMEFRAME_M6', 'TIMEFRAME_MACTION_,'MDE_1ACTION_',' 'TRADE_ACTION_PENDING', 'TRADE_ACTION_REMOVE', 'TRADE_ACTION_SLTP', 'TRADE_RETCODE_CANCEL', ' TRADE_RETCODE_CLIENT_DISABLES_AT ', 'TRADE_RETCODE_CLOSE_ONLY', 'TRADE_RETCODE_CLOSE_ORDER_EXIST', 'TRADE_RETCODE_CONNECTION', 'TRADE_RETCODE_DONE', 'TRADE_RETCODE_DONE_PARTIAL', 'TRADE_RETCODE_ERROR',' TRADE_RETCODE_FIFO_CLOSE '' TRADE_RETCODE_FROZEN', 'TRADE_RETCODE_INVALID', 'TRADE_RETCODE_INVALID_CLOSE_VOLUME', 'TRADE_RETCODE_INVALID_EXPIRATION' LID_STOPS' 'TRADE_RETCODE_INVALID_VOLUME' 'TRADE_RETCODE_LIMIT_ORDERS' 'TRADE_RETCODE_LIMIT_POSITIONS' 'TRADE_RETCODE_LIMIT_VOLUME' 'TRADE_RETCODE_LOCKED' 'TRADE_RETCODE_'RETCO'GRODE_RETCODE_'RETCO'G
'TRADE_RETCODE_NO_CHANGES', 'TRADE_RETCODE_NO_MONEY', 'TRADE_RETCODE_ONLY_REAL', 'TRADE_RETCODE_ORDER_CHANGED', 'TRADE_RETCODE_PLACED', 'TRADE_RETCODE_POSITION_CLOSED', 'TRADE_RETCODE_PRICE_CHANGED', 'TRADE_RETCODE_PRICE_OFF', 'TRADE_RETCODE_REJECT', 'TRADE_RETCODE_REJECT_CANCEL', 'TRADE_RETCODE_REQUOTE', 'TRADE_RETCODE_SERVER_DISABLES_AT', 'TRADE_RETCODE_SHORT_ONLY ', 'TİCARET_RETCODE_TIMEOUT', 'TİCARET_RETCODE_TOO_MANY_REQUESTS', 'TİCARET_RETCODE_TRADE_DISABLED', 'TerminalInfo', 'Tick', 'TradeDeal', 'TradeOrder', 'TradePosition_quest',',__',',__',',__',','__' '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', '_core', 'account_info', 'copy_rates_from', '__pos_rates ', 'copy_rates_range', 'copy_ticks_from', 'copy_ticks_range', 'history_deals_get', 'history_deals_total', 'history_orders_get', 'history_orders_total', 'initialize', 'last_error',', ',_log_get 'm arket_book_release', 'order_calc_margin', 'order_calc_profit', 'order_check', 'order_send', 'orders_get', 'orders_total', 'positions_get', 'positions_total', 'shutdown', 'symbol_info', 'symbol_ , 'symbols_get', 'symbols_total', 'terminal_info', 'sürüm']
Başlangıç yolu os.getcwd(): C:\Users\Alex\AppData\Roaming\MetaQuotes\Terminal\2BBE125AB050CAF856FF83F865B275C2\MQL5\Scripts\Python
['C:', 'Kullanıcılar', 'Alex', 'AppData', 'Dolaşım', 'MetaQuotes', 'Terminal', '2BBE125AB050CAF856FF83F865B275C2', 'MQL5', 'Komut Dosyaları', 'Python']
(500, 3003, '22 Temmuz 2021')
TerminalInfo(community_account=Doğru, topluluk_connection=Doğru, bağlı=Doğru, dlls_allowed=Yanlış, trade_allowed=Yanlış, tradeapi_disabled=Yanlış, email_enabled=Yanlış, ftp_enabled=Yanlış, bildirimler_enabled=Yanlış=sq1000, maxsem, build=False, maxsem, tradeapi_disabled=Yanlış, codepage=1251, ping_last=124758, topluluk_balance=3.69, retransmission=0.0, company='ICM Capital Ltd.', name='ICM Capital MetaTrader 5', dil='Rusça', yol='C:\\Program Dosyaları\ \ICM Sermaye MetaTrader 5', ...)
Yol os.path.dirname(__file__): c:\Users\Alex\AppData\Roaming\MetaQuotes\Terminal\2BBE125AB050CAF856FF83F865B275C2\MQL5\Scripts\Python
abs_path: c:\Users\Alex\AppData\Roaming\MetaQuotes\Terminal\2BBE125AB050CAF856FF83F865B275C2\MQL5\Scripts\Python
son


 
Vladimir Perervenko :

MCL programını görmüyor ve onunla iletişim kuramıyor. MCL programıyla etkileşim kurmak için ek özellikler kullanmanız gerekir.

Benim için adlandırılmış bir boru sadece bir şey, ama birileri bunu soketlerde yapıyor. alışkanlık meselesi...

 
Vladimir Perervenko :

"MetaTrader5" kitaplığında bir sorun var (28/07/21 tarihinden itibaren 5.0.35).Kurduktan ve içe aktarmaya çalıştıktan sonra aşağıdaki hatayı alıyorum

5.0.33 sürümüne geri alma çalışır

Bu hatayı onaylayan var mı?

Python 3.7/3.8/3.9 sürümlerinde kontrol edildi

5.0.35'e güncellendi.

Hata yok

Connected to pydev debugger (build 191.6605.12)
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:   5.0.35
Backend TkAgg is interactive backend. Turning interactive mode on.
TerminalInfo(community_account=True, community_connection=True, connected=True, dlls_allowed=False, trade_allowed=False, trad...
(500, 3010, '02 Aug 2021')
 
Rashid Umarov :

5.0.35'e güncellendi.

Hata yok

Terminalin en son betası 3007'dir (en azından benim için). Mesele bu değil, soru için önemli değil.

güncellemeye çalışıyorum

(r-reticulate) C:\Users\User>pip install --upgrade MetaTrader5
Requirement already satisfied: MetaTrader5 in c:\users\user\appdata\local\r-miniconda\envs\r-reticulate\lib\site-packages ( 5.0 . 34 )
Collecting MetaTrader5
  Using cached MetaTrader5- 5.0 . 35 -cp38-cp38-win_amd64.whl ( 124 kB)
Requirement already satisfied: numpy>= 1.7 in c:\users\user\appdata\local\r-miniconda\envs\r-reticulate\lib\site-packages 
( from MetaTrader5) ( 1.19 . 5 )
ERROR: Could not install packages due to an OSError: [Errno 2 ] No such file or directory: 
'c:\\users\\user\\appdata\\local\\r-miniconda\\envs\\r-reticulate\\lib\\site-packages\\numpy-1.19.5.dist-info\\METADATA'

Bunun ne anlama geldiğini söyleyebilir misin?

 
Vladimir Perervenko :

Terminalin en son betası 3007'dir (en azından benim için). Mesele bu değil, soru için önemli değil.

güncellemeye çalışıyorum

Bunun ne anlama geldiğini söyleyebilir misin?

Günlüğünüze göre - böyle bir dosya veya dizin yok

ERROR: Could not install packages due to an OSError: [Errno 2 ] No such file or directory: 
'c:\\users\\user\\appdata\\local\\r-miniconda\\envs\\r-reticulate\\lib\\site-packages\\numpy-1.19.5.dist-info\\METADATA'
 
Rashid Umarov :

Günlüğünüze göre - böyle bir dosya veya dizin yok

onlar. numpy==1.19.5?

 
Vladimir Perervenko :

onlar. numpy==1.9.5?

Klasör yok gibi

'c:\\users\\user\\appdata\\local\\r-miniconda\\envs\\r-reticulate\\lib\\site-packages\\numpy-1.19.5.dist-info\\METADATA '