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

 
Renat Fatkhullin :

버전 5.0.15부터 python 라이브러리는 이전 형식과 호환되지 않고 최신 터미널 베타가 필요한 새로운 형식으로 작동합니다.

업데이트된 문서와 예제를 곧 게시할 예정입니다.

라이브러리의 이전 버전을 일시적으로 다운로드할 수 있습니까?

 
Dmitri Custurov :

라이브러리의 이전 버전을 일시적으로 다운로드할 수 있습니까?

https://pypi.org/project/MetaTrader5/5.0.11/#files

MetaTrader5
MetaTrader5
  • 2020.01.24
  • pypi.org
Download the file for your platform. If you're not sure which to choose, learn more about installing packages. Files for MetaTrader5, version 5.0.11 Filename, size File type Python version Upload date Hashes MetaTrader5-5.0.11-cp36-cp36m-win32.whl (31.7 kB) MetaTrader5-5.0.11-cp36-cp36m-win_amd64.whl (43.3 kB...
 

통합에 대한 제 의견을 표현할 수밖에 없습니다. 나는 두 손을 가지고 있다. Python, 신경망, AI, 컴파일러 확장 등...

그러나 하나의 BUT가 있습니다.

멋진 개발 환경이 무엇이든 간에 규모가 엄청나겠죠? 그리고 도구가 평범한 원시적이라면 어떻게 질량이 될 수 있습니까? 아니요 - 일반 기본 요소가 아니라 천재적 기본 요소입니다. 슈퍼 복잡한 원시.

CCanvas 클래스 를 살펴보겠습니다. 이것은 그래픽 프리미티브의 어셈블리입니다. 그들로부터 얼마나 많은 것을 수집할 수 있습니까? 많은. 그리고 이를 위해서는 얼마나 많은 두뇌와 노력이 필요할까요? - 바다. THING을 만들기 위한 두뇌와 노동의 바다. 얼마나 많은 사람들이 그것을 할 수 있습니까? - 단위.

다시 말하지만, 주요 질문: 사람이 뛰어난 디자인 능력을 가지고 있다고 사전에 가정한다면 개발 환경의 도구가 어떻게 수요가 급증할 수 있습니까? 이 경우 미사에서 의문의 여지가 없습니다.

간단히 다시 말하겠습니다.

Python, C++, MQL5, Algorithmic trading에 익숙하고 뛰어난 디자인 능력을 가진 사람이 THING을 만드는 데 어떤 전문 환경에서 차이가 있습니까? 가능성의 최소값을 사용하고 결과의 최대값을 생성합니다. 나머지는 툴킷의 복잡성 임계값으로 인해 모든 것을 연속적으로 사용하려고 시도하고 아무 것도 생성하지 않습니다.

그렇다면 누구와 무엇을 목표로 삼아야 할까요?

 

아래 버전, 사용 가능한 최소 5.0.10까지

444

업데이트를 기다려야 할 것 같습니다.

 

모두에게 인사드립니다!

올바른 예를 따랐는데도 이 오류가 발생하는 이유는 무엇입니까?

안녕하세요 여러분!

예제를 올바르게 따랐음에도 불구하고 이 오류가 발생하는 이유는 무엇입니까?


 
Renat Fatkhullin :
Visual Studio에 파이썬이 포함되어 있습니까?

다른 시스템에 의해 간접적으로 또는 자동으로 설정되는 파이썬의 동물원으로 인해 다른 파이썬 복사본에 라이브러리를 쉽게 설치한 다음 다른 복사본을 실행하려고 할 수 있습니다.

파이썬을 다루십시오. Python으로 전환한 사람은 평생 라이브러리, 종속성 및 비호환성과 싸울 준비가 되어 있어야 합니다.

이것이 파이썬 학자의 운명입니다. 라이브러리에서 환경을 구축하고 라이브러리의 일부 업데이트가 알려지지 않은 다른 수의 라이브러리를 손상시키지 않도록 기도하는 것입니다.

파이썬 동물원은 없습니다. 환경(Environment)이라는 개념이 있습니다. 컴퓨터에는 여러 환경이 있을 수 있습니다. 사용자는 사용할 환경을 선택합니다.

스크립트를 실행하기 전에 Python 환경을 초기화해야 합니다.

내 라이브러리 에서 이것을 고려했습니다. 다음은 환경 초기화 기능에 대한 코드입니다.

MetaTrader 5 (MQL5) + Python 3 DLL для Forex, CFD и Futures
  • roffild.com
Использование MetaTrader с Python 3 на финансовых фондовых биржах, Forex, CFD и Futures. Из MetaTrader можно получать котировки в Python, но нет полноценной связи между ними. Пост одного из разработчиков. Главная идея и отличие этой обертки от остальных: обмен данными между MQL и Python через заранее созданные функции. Это самый быстрый и...
 

MetaEditor를 포기할 때가 되었습니까? 완전한 기성품을 사용할 수 있다면 왜 다른 기술을 IDE에 넣습니까?

이제 모두가 IDE용 모듈을 만들고 있습니다.

마이크로소프트 비주얼 스튜디오 코드

jetbrains 인텔리전트 아이디어

 
Roffild :

파이썬 동물원은 없습니다. 환경(Environment)이라는 개념이 있습니다. 컴퓨터에는 여러 환경이 있을 수 있습니다. 사용자는 사용할 환경을 선택합니다.

스크립트를 실행하기 전에 Python 환경을 초기화해야 합니다.

내 라이브러리 에서 이것을 고려했습니다. 다음은 환경 초기화 기능에 대한 코드입니다.

우리는 쉽게 환경을 지원합니다. 편집기에서 컴파일러 설정을 보십시오.

터미널이 하나의 환경(예: 기본 경로)을 선택할 수 있고 라이브러리는 다른 환경에서 사용자가 수동으로 설치한다는 점에서 동물원에 대해 이야기했습니다.


내일 우리는 터미널의 새로운 베타 버전과 새로운 일반 파이썬 라이브러리를 출시할 것입니다. API와 라이브러리를 처음부터 다시 작성했기 때문에 모든 오래된 방법과 예제는 작동하지 않습니다.

새로운 API 세트는 광범위하고 거래를 완전히 관리할 수 있게 하며 열린 포지션 및 거래 내역에 액세스할 수 있습니다.

이제 Python에서 직접 Metatrader용 본격적인 로봇을 작성할 수 있습니다.

 

Python 5.0.18용 MetaTrader 5의 새 버전 및 MetaTrader 5 빌드 2319의 베타 버전:

  • 도움말을 통한 베타 MT5 다운로드 -> 베타 버전 확인
  • 파이썬 라이브러리:
    pip install --upgrade metatrader5
    

모든 API가 변경되었으므로 이전 예제는 더 이상 작동하지 않습니다.

새로운 기능 세트는 다음과 같습니다.

initialize(path=None)                              Establish connection with the MetaTrader 5 Terminal
wait()                                             Wait for the MetaTrader 5 Terminal to connect to a broker's server
shutdown()                                         Disconnect from the MetaTrader 5 Terminal

version ()                                          Get the MetaTrader 5 Terminal version
terminal_info()                                    Get the parameters of the MetaTrader 5 terminal
account_info()                                     Returns information of current account

copy_ticks_from(symbol, from, count, flags)                Get ticks starting from the specific date
copy_ticks_range(symbol, from, to, flags)                  Get ticks from the specified period
copy_rates_from(symbol, timeframe, from, count)            Get bars starting from the specific date
copy_rates_from_pos(symbol, timeframe, start_pos, count)   Get bars starting from the specified position
copy_rates_range(symbol, timeframe, date_from, date_to)    Get bars from the specified period

positions_total()                                          Returns the number of open positions
positions_get([symbol=\"SYMBOL\"],[ticket=TICKET])         Returns all open positions, can be filtered by symbol or ticket

orders_total()                                             Returns the number of orders
orders_get([symbol=\"SYMBOL\"],[ticket=TICKET])            Returns all orders, can be filtered by symbol or ticket

history_orders_total(from, to)                             Returns the number of orders in selected range from the history
history_orders_get(from, to)                               Returns orders in selected range from the history or filtered by position id, ticket

history_deals_total(from, to)                              Returns the number of deals in selected range from the history
history_deals_get(from, to)                                Returns deals in selected range from the history or filtered by position id, ticket

order_check(request)                                                Checks if there are enough funds to execute the required trade operation
order_send(request)                                                 Sends trade requests to a server
order_calc_margin(action, symbol, volume, price)                    Calculates the margin required for the specified order
order_calc_profit(action, symbol, volume, price_open, price_close)  Calculates the profit for the current account, in the current market conditions, based on the parameters passed

symbol_info(symbol)                                        Returns full information for a specified symbol
symbol_info_tick(symbol)                                   Returns current prices of a specified symbol
symbol_select(symbol,[enable])                             Selects a symbol in the Market Watch window or removes a symbol from the window

예시:

import MetaTrader5 as mt5
import time

mt5.initialize()
mt5.wait()

dev = 0.00010 ;
symbol = "EURUSD"
buy_price = 0

mt5.symbol_select(symbol)

time.sleep( 1 )
p = mt5.symbol_info_tick(symbol)
prev_price = p.ask

while True:
    p = mt5.symbol_info_tick(symbol)
    print(p.bid, '/' ,p.ask)
    
     if p.ask > prev_price and buy_price == 0 :
            print( "Buy " , p.ask)
            r = mt5.Buy(symbol, 0.01 )
             if r.retcode == mt5. TRADE_RETCODE_DONE :
                buy_price = p.ask;
    elif buy_price > 0 and p.ask + dev < buy_price:
        print( "Buy(close) " , p.bid)
        mt5.Close(symbol)
        buy_price = 0

    prev_price = p.ask
    time.sleep( 1 )

mt5.shutdown()
 
Renat Fatkhullin :

Python 5.0.18용 MetaTrader 5의 새 버전 및 MetaTrader 5 빌드 2319의 베타 버전:

  • 베타 MT5는 도움말 -> 베타 버전 확인을 통해 다운로드됩니다.
  • 파이썬 라이브러리:

모든 API가 변경되었으므로 이전 예제는 더 이상 작동하지 않습니다.

모든 것이 동적으로 바뀝니다.

난 정말 이 혼란에 빠지고 싶지 않아.

ONNX로 WinML을 구현하기를 기다릴 가치가 있을 것입니다. 그리고 그 전에 ML 이론에 대해 자세히 알아보세요. 다행히 지금은 많은 문헌과 다양한 코스가 있습니다.