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

 
Vladimir Perervenko :

원칙적으로 엔터티(연결) 생성이 가능한가요? 나는 이것이 그렇게 필요하다고 생각하지 않지만 미래를 위해 생각합니다.

차트에 다른 스크립트(Py)를 설치하면 첫 번째 스크립트가 재설정됩니다. 그래야만 합니까?

나는 또 다른 엔티티를 만드는 것이 어렵지 않을 것이라고 생각합니다. 그것은 또 다른 수준의 추상화가 될 것입니다.

이것은 더 이상 터미널에서 사용하는 것으로 간주되지 않고 파이썬 측에서 터미널로의 본격적인 게이트웨이로 간주됩니다.

lib 자체에서 더 많은 유용성을 위해 더 좋습니다 :) 지금.

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

나는 또 다른 엔티티를 만드는 것이 어렵지 않을 것이라고 생각합니다. 그것은 또 다른 수준의 추상화가 될 것입니다.

이것은 더 이상 터미널에서 사용하는 것으로 간주되지 않고 파이썬 측에서 터미널로의 본격적인 게이트웨이로 간주됩니다.

lib 자체에서 더 많은 유용성을 위해 더 좋습니다 :) 지금.

터미널에서 내 실행이 정기적으로 실패합니다. 이유를 찾지 못했습니다. 아마도 나는 파이썬 설치와 관련하여 어딘가에 문제가 있습니다. 나는 "lib"를 (서비스를 통해) 터미널에 대한 게이트웨이로 사용할 것입니다. 월요일에 테스트 해보겠습니다.

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

mt5.initialize(blabla, Portable=True) - 별로 도움이 되지 않았지만 여전히 시스템에서 실행 된 마지막 터미널을 묻습니다.

명명된 경로 매개변수 없이 시도하고 경로 를 첫 번째 명명되지 않은 매개변수로 전달합니다.

 if mt5.initialize('/works/MT5-1', login= 11111 , ...):
        ...   
        mt5.shutdown()
else :
   print( 'error' )

if mt5.initialize('/works/MT5-2', login= 2222 , ...):
        ...   
        mt5.shutdown()
else :
   print( 'error' )
 
Almaz :

이름이 지정된 경로 매개변수 없이 시도하고 경로 를 이름 없는 첫 번째 매개변수로 전달합니다.

모든 것이 올바르게 작동했습니다. 고맙습니다.

벌레?

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

모든 것이 올바르게 작동했습니다. 고맙습니다.

벌레?

버그가 아닙니다.

첫 번째 매개변수는 이름이 지정되지 않고 고정되어 있습니다. 그러나 만일의 경우를 대비하여 다음 버전에서 명명된 이름을 수락합니다.

 
Renat Fatkhullin :

버그가 아닙니다.

첫 번째 매개변수는 이름이 지정되지 않고 고정되어 있습니다. 그러나 만일의 경우를 대비하여 다음 버전에서 명명된 이름을 수락합니다.

아하, 문서가 구체적으로 이해하지 못했다는 뜻입니다.

고맙습니다.

 
터미널에서 " 새로운 바 의 시작"을 얻으려면 정말로 무언가가 필요합니다. 지표는 그렇게 중요하지 않습니다. Python에는 지표 계산 기능이 있는 라이브러리도 있습니다.
 

문제. position_get 함수가 있습니다. 설명서에는 세 가지 작동 모드에 대한 설명이 포함되어 있습니다.

position_get

기호 또는 티켓으로 필터링할 수 있는 기능이 있는 공석 을 얻습니다. 3가지 통화 옵션이 있습니다.


매개변수 없이 호출합니다. 모든 기호에 대한 열린 위치를 반환합니다.

position_get()

공석을 얻으려는 기호를 지정하는 호출.

position_get (

symbol="SYMBOL" // 심볼 이름

)

포지션 티켓을 지정하는 호출.

position_get (

티켓=티켓 // 티켓

)

옵션

symbol="SYMBOL" [in] 기호 이름입니다. 선택적 명명된 매개변수입니다. 기호가 지정되면 티켓 매개변수는 무시됩니다.

ticket=TICKET [in] 포지션 티켓(POSITION_TICKET). 선택적 명명된 매개변수입니다.


Positions_get() 변형 - 질문이 없습니다. 완벽하게 작동합니다.

그러나 다른 두 가지 - 아무것도 반환하지 마십시오.

	pos_info = mt5.positions_get(symbol = "GBPUSD" )	
	print(mt5.last_error())

두 번째 콜 옵션:

        result = mt5.order_send(request)        
         if result.retcode == 0 or result.retcode == 10009 :      
                pos_info = mt5.positions_get(ticket = result.order)
                print("mt5.last_error(): %s" % (mt5.last_error()))

last_error는 또한 이상한 구조를 반환합니다.

2020-03-09 22:25:41 [DEBUG][module: processing.py] add_position: Possition open - OK! MqlTradeResult: {
    "retcode": 10009,
    "deal": 134756209,
    "order": 161108536,
    "volume": 0.01,
    "price": 1.31089,
    "bid": 1.31066,
    "ask": 1.31089,
    "comment": "Request executed",
    "request_id": 98,
    "retcode_external": 0
}
mt5.last_error(): [1, '']

어디를 봐야 할까요? 뭐가 문제 야?

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

포지션 티켓을 지정하는 호출.

position_get (

티켓=티켓 // 티켓

)

옵션

symbol="SYMBOL" [in] 기호 이름입니다. 선택적 명명된 매개변수입니다. 기호가 지정되면 티켓 매개변수는 무시됩니다.

ticket=TICKET [in] 포지션 티켓(POSITION_TICKET). 선택적 명명된 매개변수입니다.


Positions_get() 변형 - 질문이 없습니다. 완벽하게 작동합니다.

그러나 다른 두 가지 - 아무것도 반환하지 마십시오.

두 번째 콜 옵션:

last_error는 또한 이상한 구조를 반환합니다.

2020-03-09 22:25:41 [DEBUG][module: processing.py] add_position: Possition open - OK! MqlTradeResult: {
    "retcode": 10009,
    "deal": 134756209,
    "order": 161108536,
    "volume": 0.01,
    "price": 1.31089,
    "bid": 1.31066,
    "ask": 1.31089,
    "comment": "Request executed",
    "request_id": 98,
    "retcode_external": 0
}
mt5.last_error(): [1, '']

어디를 봐야 할까요? 뭐가 문제 야?

계정 유형이 상계 또는 헤징인지 확인하십시오. 네팅의 경우 이미 존재하는 포지션의 티켓은 변경되지 않으며, 주문번호로 덧입고 나서 포지션을 찾는 것은 의미가 없습니다.

 

last_error тоже возвращает странную конструкцию:

오류 코드 1, 성공 mt5.RES_S_OK, 다음 빌드에서는 [1, 'Success']로 기록됩니다. 음수 값을 가진 코드는 mt5.RES_E_xxx 오류입니다.