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

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

테스트, 그것은 모두 그것이 실행되는 철에 달려 있습니다.

한 인스턴스는 약 45-50MB의 RAM + 2.5-4%의 CPU를 차지합니다. (예, % CPU는 CPU 유형에 따라 다릅니다. 제 경우에는 Intel Xeon L5640 @ 2.27GHz)

같은 숫자, 하나의 파이썬 인스턴스.

파이썬이 역사와 함께 작동한다면 + 200-300Mb RAM. CPU는 거의 낭비되지 않습니다.

글쎄, 왜, 그것은 TK 또는 아이디어에 달려 있습니다.

분명한. 정보 주셔서 감사합니다.

 
개발자 여러분, copy_buffer() API 함수를 만드십시오. 유추 하여 지표 데이터 얻기 .
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
Denis Kirichenko :
개발자 여러분, copy_buffer() API 함수를 만드십시오. 유추 하여 지표 데이터 얻기 .

파이썬에 인디케이터가 있는 패키지가 없나요? 아니면 일종의 특수 지표입니까? 이것은 작동하는 것 같습니다 https://github.com/twopirllc/pandas-ta

twopirllc/pandas-ta
twopirllc/pandas-ta
  • twopirllc
  • github.com
Technical Analysis (TA) is an easy to use library that is built upon Python's Pandas library with more than 80 Indicators. These indicators are comminly used for financial time series datasets with columns or labels similar to: datetime, open, high, low, close, volume, et al. Many commonly used indicators are included, such as: Moving Average...
 
Vladimir Perervenko :

파이썬에 인디케이터가 있는 패키지가 없나요? 아니면 일종의 특수 지표입니까? 이것은 작동하는 것 같습니다 https://github.com/twopirllc/pandas-ta

copy_buffer() 계산을 위해 데이터 배열을 가져오는 것을 의미합니다.
copy_buffer() 가 양방향으로 작동해야 하는 위치.
양방향 어레이 전송이 많이 부족합니다.

 
Roman :

symbol_total 및 symbol_name 함수 부족
다음과 같은 문자 목록을 얻으려면:

5.0.29 추가 symbols_total() , symbols_get([group="EURUSD, "USDGBP", *RU*"]), 작동하려면 터미널의 최신 베타 버전을 설치해야 합니다.

또한 모든 함수 orders_get(), position_get(), history_orders_get(), history_deals_get()에서 group="EURUSD, "USDGBP", *RU*"로 필터링하는 기능을 추가했습니다.
응답의 order_check(), order_send() 메서드는 요청 필드에서 원래 실행 요청을 반환합니다.

 
Roman :

copy_buffer() 계산을 위해 데이터 배열을 가져오는 것을 의미합니다.
copy_buffer() 가 양방향으로 작동해야 하는 위치.
양방향 어레이 전송이 많이 부족합니다.

예, github에는 무료 패키지와 유료 패키지가 모두 있습니다.

MQL5로 작업하는 모델을 파이썬으로 옮기지 마십시오. 그들은 다르고 다른 목표를 가지고 있습니다.

 
Almaz :

Symbols_total(), symbols_get([group="EURUSD, "USDGBP", *RU*"])이 5.0.29에 추가됨), 작동하려면 터미널의 최신 베타 버전을 설치해야 합니다.

또한 모든 함수에서 orders_get(), position_get(), history_orders_get(), history_deals_get()은 그룹별로 필터링하는 기능을 추가했습니다(group="EURUSD, "USDGBP", *RU*").
응답의 order_check(), order_send() 메서드는 요청 필드에서 원래 실행 요청을 반환합니다.

그리고 _todict() 목록이 여전히 반환되지 않습니까?

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

그리고 _todict()의 목록은 여전히 반환하는 방법을 모르십니까?

아마도 예를 참조하십시오

import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version : ",mt5.__version__)

# установим подключение к терминалу MetaTrader 5
if not mt5.initialize():
    print("initialize() failed")
    mt5.shutdown()

# подключимся к торговому счету с указанием пароля и сервера
authorized=mt5.login( 25115284 , password="gqsdfgtdm",server="MetaQuotes-Demo")
if (authorized):
    # выведем данные о торговом счете
    print(mt5.account_info())
else :
    print("failed to connect to trade account 25115284 with password=gqz0lbdm")

account_info_dict=mt5.account_info(). _asdict()
for prop in account_info_dict:
    print("{}={}".format(prop,account_info_dict[prop]))

mt5.shutdown()

결과

AccountInfo(login=25115284, trade_mode=0, leverage=100, limit_orders=200, margin_so_mode=0, trade_allowed=True, trade_expert=True, margin_mode=2, currency_digits=2, fifo_close=False, balance=99511.4, credit=0.0, profit=9.04, equity=99520.44, margin=98.18, margin_free=99422.26, margin_level=101365.28824607862, margin_so_call=50.0, margin_so_so=30.0, margin_initial=0.0, margin_maintenance=0.0, assets=0.0, liabilities=0.0, commission_blocked=0.0, name='MetaQuotes Dev Demo', server='MetaQuotes-Demo', currency='USD', company='MetaQuotes Software Corp.')
login=25115284
trade_mode=0
leverage=100
limit_orders=200
margin_so_mode=0
trade_allowed=True
trade_expert=True
margin_mode=2
currency_digits=2
fifo_close=False
balance=99511.4
credit=0.0
profit=9.04
equity=99520.44
margin=98.18
margin_free=99422.26
margin_level=101365.28824607862
margin_so_call=50.0
margin_so_so=30.0
margin_initial=0.0
margin_maintenance=0.0
assets=0.0
liabilities=0.0
commission_blocked=0.0
name=MetaQuotes Dev Demo
server=MetaQuotes-Demo
currency=USD
company=MetaQuotes Software Corp.
 
Rashid Umarov :

아마도 예를 참조하십시오

결과

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

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

     if mt5.initialize( 'c:\\Works\\MT5 - terminals\\RoboForex - MT5\\terminal64.exe' ,
                            login= 500036189 , server= 'RoboForex-MetaTrader 5' , password= '' ,  portable=True):
        positions = mt5.positions_get()
        print(positions)
        pList = []
        for elem in positions:
            pList.append(elem._asdict())

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

(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.279, swap=0.0, profit=0.24, symbol='EURJPY', comment='', external_id=''), 
 TradePosition(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.07806, swap=0.0, profit=0.08, symbol='EURUSD', comment='', external_id=''))

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

[{'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': ''}]

당신은 어떻게 든 팬더 또는 ... 어떻게 든 불필요한 제스처를 많이 변환해야합니다.

_asdict()를 사용하면 훨씬 더 편리해졌습니다. 작성하는 사람이 MQL5 프로거가 아니지만 파이썬 전문가나 ... 또는 데이터 사이네티스트라면 list/dict는 다음과 같습니다.

python의 주요 요소, 많은 사람들이 list/dict에 데이터 전송을 구축합니다.

튜플도 자주 그리고 많이 사용되지만 이동 하는 데이터 유형 을 엄격하게 제어해야 하는 경우에만 사용됩니다.

또한 올바르게 사용되지 않거나 할당되지 않은 경우 오류 처리기를 중단합니다. 글쎄, 어딘가에 ... :) 내가 틀릴 수 있습니다.

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

예, github에는 무료 패키지와 유료 패키지가 모두 있습니다.

MQL5로 작업하는 모델을 파이썬으로 옮기지 마십시오. 그들은 다르고 다른 목표를 가지고 있습니다.

무슨 뜻이에요? mql5에서 py로 배열을 복사 하고 그 반대로 복사하시겠습니까?
적어도 그것이 무엇에 관한 것인지 주의 깊게 읽으십시오.
그리고 무엇이 필요한지 아닌지, 당신은 당신 자신만을 위해 생각할 필요가 없습니다. 당신이 필요하지 않으면 다른 사람들이 필요합니다.