MetaTrader 5 Python 사용자 그룹 - Metatrader에서 Python을 사용하는 방법 - 페이지 58

 
Дмитрий Прокопьев :

고마워, 나는이 예를 보았고 작동합니다.

나는 다른 것에 대해 이야기하고 있습니다.


position_get - TradePosition 목록을 반환합니다. 원칙적으로 규범에 따라 팬더를 던지고 잘 작동 할 수 있습니다.

그러나 모든 것이 하나의 팬더로 제한되지 않으며 다음과 같은 것을 얻어야 하는 경우:

[{'ticket': 164661016, 'time': 1585075408, 'time_msc': 1585075408163, 'time_update': 1585075408, 'time_update_msc': 1585075408163, 'type': 1, 'magic': 0, 'identifier': 164661016, 'reason': 0, 'volume': 0.01, 'price_open': 120.306, 'sl': 0.0, 'tp': 0.0, 'price_current': 120.328, 'swap': 0.0, 'profit': -0.2, 'symbol': 'EURJPY', 'comment': '', 'external_id': ''}, 
{'ticket': 164661051, 'time': 1585075426, 'time_msc': 1585075426062, 'time_update': 1585075426, 'time_update_msc': 1585075426062, 'type': 0, 'magic': 0, 'identifier': 164661051, 'reason': 0, 'volume': 0.01, 'price_open': 1.07798, 'sl': 0.0, 'tp': 0.0, 'price_current': 1.07881, 'swap': 0.0, 'profit': 0.83, 'symbol': 'EURUSD', 'comment': '', 'external_id': ''}]

position_get 에 대한 예를 보면 여러 줄이 사용됩니다.

예시:

수입   메타 트레이더5   ~처럼   mt5
수입   팬더   ~처럼   PD
PD . set_option ( 'display.max_columns' , 500 ) # 표시할 열 수
PD . set_option ( 'display.width', 1500 ) # 최대. 표시할 테이블 너비
# MetaTrader5 패키지에 대한 데이터 표시
print ( "MetaTrader5 패키지 작성자: " , mt5.__author__ )
print ( "MetaTrader5 패키지 버전: " , mt5.__version__ )
인쇄 ()
# MetaTrader 5 터미널에 연결 설정
mt5.initialize () 가 아닌 경우 :
인쇄 ( "initialize() 실패, 오류 코드 = , mt5.last_error() )
     그만두다()
 
# USDCHF에서 오픈 포지션 확보
위치 = mt5.positions_get ( 기호 = "USDCHF" )
만약   위치 == 없음 :
     인쇄 ( "USDCHF에 위치 없음, 오류 코드={}" .format( mt5.last_error() ))
elif len (위치)>0 :
     print ( "USDCHF의 총 포지션 =", len (포지션) )
# 열려 있는 모든 위치 표시
     ~을 위한   위치   ~에   위치 :
         인쇄 ( 위치 )
 
# 이름에 "*USD*"가 포함된 기호의 위치 목록 가져오기
usd_positions = mt5.positions_get ( 그룹= "*USD*" )
만약   usd_positions == 없음 :
     인쇄 ( "그룹이 있는 위치가 없습니다=\"*USD*\", 오류 코드={}" . 형식 ( mt5.last_error() ))
엘리프 (usd_positions)>0 :
     인쇄 ( "positions_get(group=\"*USD*\")={}" . 형식 ( len (usd_positions) ))
     # pandas.DataFrame을 사용하여 이 위치를 테이블로 표시합니다.
df= pd.DataFrame ( 목록 ( usd_positions ), 열= usd_positions [0]._asdict().keys())
df[ '시간' ] = pd.to_datetime(df[ '시간' ], 단위='s')
df.drop([ 'time_update', 'time_msc', 'time_update_msc', 'external_id' ], 축=1, inplace=True)

     인쇄 (df)
 
# MetaTrader 5 터미널에 연결 완료
mt5.shutdown ()
 
 
결과:
MetaTrader5 패키지 작성자: MetaQuotes Software Corp.
MetaTrader5 패키지 버전: 5.0.29
 
position_get(그룹="*USD*")=5
티켓 시간 유형 매직 식별자 이유 볼륨 price_open sl tp price_current 스왑 이익 기호 주석
0 548297723 2020-03-18 15:00:55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0.10 -8.00 EURUSD
1 548655158 2020-03-18 20:31:26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0.08 14.22
2 548663803 2020-03-18 20:40:04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 EUR-0.08 14.58
3 548847168 2020-03-19 01:10:05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0.06 5.53 EURUSD
4 548847194 2020-03-19 01:10:07 0 0 548847194 3 0.02 1.09536 1.04478 1.16587 1.10098 EUR0.08 11.24

Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
  • www.mql5.com
ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment 0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10101 -0.10   -8.00  EURUSD        ...
 

3가지 새로운 기능에 대한 설명이 도움말에 추가되었습니다.

또한 많은 기능에 대한 설명이 완료됨에 따라 변경되었습니다. 거의 모든 예제가 새로운 기능을 반영하도록 다시 작성되었습니다. 사실, 사이트의 다음 기능에 대한 예제는 아직 업데이트되지 않았으며 조금 후에 업데이트됩니다.

Документация по MQL5: Интеграция / MetaTrader для Python / last_error
Документация по MQL5: Интеграция / MetaTrader для Python / last_error
  • www.mql5.com
позволяет получить код ошибки в случае неуспешного выполнения какой-либо функции библиотеки MetaTrader 5. Является аналогом GetLastError(), но используются свои коды ошибок. Возможные значения:
 
Дмитрий Прокопьев :

여러분, 다음 지점에서 남자들은 다음 중 하나에 대해 질문합니다.

URL: https://www.mql5.com/en/forum/306742/page11#comment_15595095

지원을 제공할 것인가?

해당 스레드에서 답장

 
Rashid Umarov :

position_get 에 대한 예를 보면 여러 줄이 사용됩니다.

고맙습니다!

 
Rashid Umarov :

해당 스레드에서 답장

Rashid, 테스터 c 또는 MetaTrader5를 사용할 수 있습니까?

테스트에서 모델링할 때 매우 효과적인 요소가 하나 있습니다. 바로 로컬 네트워크 팜에서 모델링 작업의 병렬화 또는

MQL5 Cloud, MetaTrader5와 함께 테스터 리소스를 사용하고 싶습니다.

 
Vladimir Perervenko :

이것이 왜 당신을 위한 것입니까? 파이썬으로 계산할 수 없습니까? 놀라다.

네, 아직 python이 전혀 익숙하지 않아서 lua에서 갈아타려고 하기 때문에 자료를 공부하고 있습니다...
 

도움말은 라이브러리를 설치하고 업데이트하는 방법을 보여줍니다 - https://www.mql5.com/en/docs/integration/python_metatrader5

Установка пакета в командной строке:

핍 설치 MetaTrader5

명령줄에서 패키지 업데이트:

pip install --MetaTrader5 업그레이드



Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Rashid Umarov :

도움말은 라이브러리를 설치하고 업데이트하는 방법을 보여줍니다 - https://www.mql5.com/en/docs/integration/python_metatrader5

솔직히 모든 것이 명확하지는 않습니다. 왜냐하면 VS 없이는 작동하지 않으며 VS에서 정확히 무엇이 필요한지 명확하지 않습니다(필요하지 않기 때문에 전체 스튜디오를 설치하고 싶지 않기 때문입니다).

지정하면 훌륭합니다.

 
Alexey Kozitsyn :

솔직히 모든 것이 명확하지는 않습니다. 왜냐하면 VS 없이는 작동하지 않으며 VS에서 정확히 무엇이 필요한지 명확하지 않습니다(필요하지 않기 때문에 전체 스튜디오를 설치하고 싶지 않기 때문입니다).

지정하면 훌륭합니다.

왜 VS가 필요합니까? Python에는 VS가 필요하지 않습니다.

구글은 윈도우 파이썬과 같은 것을 사용하면 괜찮을 것입니다.

 

개발자 여러분, 여기 다음 브랜치에서 좋은 평가를 받았습니다.

이는 **kwargs 처리에 관한 것으로 테스트 작성의 경우 매우 중요한 포인트입니다.

https://www.mql5.com/en/forum/306742/page12#comment_15660939