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

 
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() 메서드는 요청 필드에서 원래 실행 요청을 반환합니다.

고맙습니다.

 
Roman :

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

관심이 없습니다. MT에서 어떤 데이터 어레이를 전송하시겠습니까?

MT로 전송, 개발자는 이미 여러 번 말했지만 아무 일도 일어나지 않을 것입니다. 이렇게 하려면 다른 옵션을 사용해야 합니다.

 
Vladimir Perervenko :

관심이 없습니다. MT에서 어떤 데이터 어레이를 전송하시겠습니까?

MT로 전송, 개발자는 이미 여러 번 말했지만 아무 일도 일어나지 않을 것입니다. 이렇게 하려면 다른 옵션을 사용해야 합니다.

예, 모두 계산된 배열입니다.
나는 전적으로 합성 물질을 만들고 양방향으로 배열을 전달하는 기능이 많이 부족합니다.
PyAPI를 사용할 수 있다는 것은 분명하지만 이것은 다시 dll에 대한 바인딩입니다.
그리고 PyAPI를 사용하면 이 통합 라이브러리가 전혀 필요하지 않습니다.

 
Roman :

예, 모두 계산된 배열입니다.
나는 전적으로 합성 물질을 만들고 양방향으로 배열을 전달하는 기능이 많이 부족합니다.
PyAPI를 사용할 수 있다는 것은 분명하지만 이것은 다시 dll에 대한 바인딩입니다.
그리고 PyAPI를 사용하면 이 통합 라이브러리가 전혀 필요하지 않습니다.

내가 가르치고 싶다고 생각하지 마십시오. 터미널의 따옴표를 기반으로 합성을 계산합니다. Python에서 따옴표를 재설정하고 모든 계산을 수행하십시오.

그러나 배열을 역으로 옮기면 체조를해야합니다. 가장 쉬운 방법은 데이터베이스를 이용하는 것입니다.

또는 이것을 사용 하십시오 . 어딘가에 이 프로젝트와 함께 작은 지점이 있었습니다. 또는 .

누구에게나 이 통합이 다양한 트레이더의 소원을 모두 해결하지는 못할 것입니다. 그러나 내 생각에는 견적을 빠르게 받고 거래를 관리하는 두 가지 주요 작업과 가장 중요한 작업을 해결합니다.

다른 모든 것은 자체 인프라와 독립적입니다.

행운을 빕니다

khramkov/MQL5-JSON-API
khramkov/MQL5-JSON-API
  • khramkov
  • github.com
<a href="#metaquotes-mql5
 
Vladimir Perervenko :

내가 가르치고 싶다고 생각하지 마십시오. 터미널의 따옴표를 기반으로 합성을 계산합니다. Python에서 따옴표를 재설정하고 모든 계산을 수행하십시오.

그러나 배열을 역으로 옮기면 체조를해야합니다. 가장 쉬운 방법은 데이터베이스를 이용하는 것입니다.

또는 이것을 사용 하십시오 . 어딘가에 이 프로젝트와 함께 작은 지점이 있었습니다. 또는 .

누구에게나 이 통합이 다양한 트레이더의 소원을 모두 해결하지는 못할 것입니다. 그러나 내 생각에는 견적을 빠르게 받고 거래를 관리하는 두 가지 주요 작업과 가장 중요한 작업을 해결합니다.

다른 모든 것은 자체 인프라와 독립적입니다.

행운을 빕니다

dll 또는 데이터베이스, 소켓 또는 적어도 텍스트 파일 등을 통해 구현이 무엇이든 관계없이 무엇에 관한 것입니까?
그러나 이것은 다시 도서관과 관련이없는 추가 목발입니다.
요점은 현재 mt5 통합 라이브러리가 활발히 개발되고 있기 때문에 사용자에게 필요한 기능을 초기에 넣는 것이 바람직하다는 것입니다.

 
Dmitry Prokopyev :

고마워, 내가 본이 예제는 작동합니다.

나는 다른 것에 대해 조금.


position_get - TradePosition 목록이 나에게 반환됩니다. 원칙적으로 팬더를 던지면 잘 작동합니다.

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

당신은 어떻게 든 팬더 또는 ... 어떻게 든 추가 신체 움직임을 많이 구성해야합니다.

_asdict()를 사용하면 훨씬 더 편리해졌습니다. 작성하는 사람이 MQL5 프로그램이 아니지만 pythonist ... 또는 datasynetist라고 가정해 보겠습니다. 그러면 list / dict는 다음과 같습니다.

python의 기본 요소 중 많은 것들이 list/dict에 데이터 전송을 구축하고 있습니다.

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

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

대신 변수를 할당할 때 간단한 목록 이해를 사용할 수 있습니다.

positions = [p._asdict() for p in mt5.positions_get()]
 
nicholi shen :

대신 변수를 할당할 때 간단한 목록 이해를 사용할 수 있습니다.

이것은 본질을 변경하지 않습니다 ... 이것은 추가주기입니다

 

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

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

지원을 제공할 것인가?


symbol_get 함수는 튜플이라는 SymbolInfo 생성기를 반환해야 합니다. args 없이 symbol_get을 호출하면 터미널에서 사용할 수 있는 모든 기호가 반환되어야 합니다. 이 함수는 필터 함수를 사용하여 처리할 튜플이라는 이름의 SymbolInfo에 전달될 콜백을 취해야 합니다. 여기 예시들이 있습니다.

import MetaTrader5 as mt5
from contextlib import contextmanager
import re


@contextmanager
def metatrader_connection(**kw):
    try:
         if not mt5.initialize(**kw):
            print("Failed to initialize python MT5")
            raise Exception
        yield
    finally:
        mt5.shutdown()


def symbols_get(function=None):
    """
    No function passed in will result in all symbols returned to the caller.
    If a callable function is passed in then the function is passed a SymbolInfo tuple for filtering
    :param function: callback function to filter the symbols
    """
    all_symbols_in_terminal_info = map(
        mt5.symbol_info,
        ['EURUSD', 'USDJPY', 'GBPJPY', 'EURGBP'] # *example only* this would represent all symbols available to the terminal
    )
     if function is not None:
         return filter(function, all_symbols_in_terminal_info)
     return all_symbols_in_terminal_info


if __name__ == "__main__":
    with metatrader_connection():
        all_terminal_symbols = symbols_get()
        jpy_symbols = symbols_get(lambda s: "JPY" in s.name)
        jpy_symbols_using_re = symbols_get(lambda s: re.match(r'\w*JPY\w*', s.name))
        visible_symbols = symbols_get(lambda s: s.visible)
        selected_symbols = symbols_get(lambda s: s.select)


        def my_criteria(symbol_info):
             return 'USD' in symbol_info.name and symbol_info.session_deals > 0


        usd_symbols_with_session_deals = symbols_get(my_criteria)
 

좋은 저녁입니다. 이 커넥터는 연결된 표시기 에서 정보를 가져올 수 없습니다.

예시:

 int    iMA (
   string               symbol,        // имя символа
   ENUM_TIMEFRAMES       period,        // период
   int                  ma_period,    // период усреднения
   int                  ma_shift,     // смещение индикатора по горизонтали
   ENUM_MA_METHOD        ma_method,    // тип сглаживания
   ENUM_APPLIED_PRICE    applied_price  // тип цены или handle
   );
 
9805244 :

좋은 저녁입니다. 이 커넥터는 연결된 표시기 에서 정보를 가져올 수 없습니다.

예시:

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