코드를 차근차근 자세히 분석하고 설명드리겠습니다. 이 스크립트는 Telethon 라이브러리를 사용하여 Telegram에 연결하고 MetaTrader 5(MT5)에서 주문하는 데 사용되는 그룹으로부터 신호를 받습니다. 코드를 실행하려면 MT5에 연결하고, 텔레그램에서 메시지를 듣고, 해당 메시지를 기반으로 매수 및 매도 주문을 실행해야 합니다.
1. 라이브러리 가져오기
from telethon import TelegramClient, events import MetaTrader5 as mt5 import asyncio import logging from datetime import datetime import signal import os import sys import pkg_resources
- 텔레톤: 텔레그램과 상호작용(메시지 보내기 및 받기)을 위한 라이브러리입니다.
- MetaTrader5: 거래 자동화에 사용되는 MetaTrader 5 플랫폼과 상호 작용할 수 있는 라이브러리입니다.
- asyncio: 프로그램을 차단하지 않고 Telegram에서 메시지를 기다리는 등의 비동기 작업을 수행합니다.
- 로깅: 코드 추적 및 디버깅에 도움이 되는 로그 메시지를 기록합니다.
- datetime: 날짜와 시간을 조작합니다.
- 신호: 인터럽트 신호(Ctrl C)와 같은 시스템 신호를 캡처하는 데 사용됩니다.
- os, sys, pkg_resources: 파일, 디렉터리 및 시스템 리소스를 조작하는 데 사용됩니다.
2. 환경정보 디스플레이
print("Python executando de:", sys.executable) print("Ambiente virtual:", sys.prefix) print("Versão do Python:", sys.version) print("VIRTUAL_ENV:", os.environ.get('VIRTUAL_ENV'))
여기서 코드는 Python 버전, 가상 환경 경로, Python 실행 위치 등 Python이 실행되는 환경에 대한 정보를 인쇄합니다.
3. 설치된 패키지 목록
installed_packages = [d for d in pkg_resources.working_set] for package in installed_packages: print(package)
이 코드는 pkg_resources 라이브러리를 사용하여 현재 환경에 설치된 모든 Python 패키지를 표시합니다.
4. 로깅 구성
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__)
- INFO 수준 이상의 메시지를 기록하도록 로깅을 구성합니다.
- 형식은 날짜, 심각도 수준 및 메시지를 포함하는 로그 메시지의 형식을 정의합니다.
5. 텔레그램 설정
API_ID = '78787878' API_HASH = '12e957773a9a554cb6e32997122706f6' PHONE_NUMBER = '+5512991111111' GROUP_USERNAME = '@Nas100freepip'
- API_ID 및 API_HASH: Telethon을 사용하는 데 필요한 Telegram API 자격 증명
- PHONE_NUMBER: 봇의 전화번호
- GROUP_USERNAME: 봇이 메시지를 읽을 텔레그램 그룹의 이름입니다.
6. MT5 계정 설정
CONTAS_MT5 = [ {"login": 1690062, "senha": '5jsXlBg3~T', "servidor": 'ACGMarkets-Live', "us30": "US30.raw", "nas100": "NAS100.raw", "lote": 4.00} ]
봇이 주문을 실행하는 데 사용할 수 있는 MT5 계정 목록을 정의합니다. 각 계정에는 다음이 포함됩니다.
- 로그인: MetaTrader 5의 계정 로그인 번호.
- password: 계정 비밀번호입니다.
- 서버: 브로커의 서버
- us30 및 nas100: 거래할 자산의 기호
- 배치: 주문의 배치 크기
7. MT5 재접속 기능
from telethon import TelegramClient, events import MetaTrader5 as mt5 import asyncio import logging from datetime import datetime import signal import os import sys import pkg_resources
이 함수는 최대 시도 횟수(max_tries)까지 특정 계정에 대해 MetaTrader 5에 다시 연결을 시도합니다. 시도 횟수 이후 재접속이 실패하면 False를 반환합니다.
8. MT5로 주문 보내기 기능
print("Python executando de:", sys.executable) print("Ambiente virtual:", sys.prefix) print("Versão do Python:", sys.version) print("VIRTUAL_ENV:", os.environ.get('VIRTUAL_ENV'))
이 기능은 액션 유형(매수 또는 매도)에 따라 매수 또는 매도 주문을 MetaTrader 5로 보냅니다. 기능:
- 기호 가용성을 확인합니다.
- 필요한 정보(가격, 수량, 주문 유형 등)로 주문을 준비합니다.
- MT5로 주문을 보내세요.
9. 텔레그램 수신 메시지 처리
installed_packages = [d for d in pkg_resources.working_set] for package in installed_packages: print(package)
- 텔레그램 메시지를 수신하고 이를 처리하여 자산(예: us30 또는 nas100)과 조치(매수 또는 매도)를 식별합니다.
- 각 활성 계정에 대해 send_order 함수를 사용하여 주문을 보내보세요. 주문이 실패하면 해당 계정은 활성 계정 목록에서 제거됩니다.
10. MT5와의 연결 확인 기능
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__)
이 기능은 각 활성 계정에 대해 MetaTrader 5에 대한 연결을 주기적으로 확인합니다. 계정이 다시 연결되지 않으면 목록에서 제거됩니다.
11. 인터럽트 신호 처리
API_ID = '78787878' API_HASH = '12e957773a9a554cb6e32997122706f6' PHONE_NUMBER = '+5512991111111' GROUP_USERNAME = '@Nas100freepip'
Ctrl C 명령이나 프로세스 종료 등 인터럽트 신호(SIGINT 또는 SIGTERM)를 캡처하고 프로그램을 깔끔하게 종료합니다.
12. 주요 기능
CONTAS_MT5 = [ {"login": 1690062, "senha": '5jsXlBg3~T', "servidor": 'ACGMarkets-Live', "us30": "US30.raw", "nas100": "NAS100.raw", "lote": 4.00} ]
- 신호 처리기를 구성합니다.
- MT5 계정 연결을 초기화합니다.
- 지정된 그룹의 새 메시지를 수신하는 텔레그램 클라이언트를 생성합니다. 메시지가 도착하면 처리 후 해당 주문이 전송됩니다.
- 인터럽트 신호가 수신될 때까지 기다려 프로그램을 종료합니다.
13. 코드 실행
async def reconectar_mt5(conta, max_tentativas=3): for tentativa in range(max_tentativas): try: if mt5.initialize(path=MT5_PATH, login=conta['login'], server=conta['servidor'], password=conta['senha']): logger.info(f"Reconexão bem-sucedida para conta {conta['login']}") return True else: logger.warning(f"Tentativa {tentativa + 1} de reconexão falhou para conta {conta['login']}: {mt5.last_error()}") except Exception as e: logger.error(f"Erro durante a tentativa {tentativa + 1} de reconexão para conta {conta['login']}: {e}") await asyncio.sleep(5) logger.error(f"Falha ao reconectar à conta {conta['login']} após {max_tentativas} tentativas") return False
main() 함수는 비동기 코드 실행을 관리하기 위해 asyncio.run()을 사용하여 실행됩니다.
결론:
이 코드는 Telegram을 사용하여 매수 및 매도 신호를 수신하고 이러한 신호를 처리하며 MetaTrader 5에 주문을 보내 수신된 지침에 따라 시장을 거래하는 자동 거래 봇입니다. 코드는 비동기 기능을 사용하여 여러
이전에 설명한 세부정보가 포함된 전체 코드는 다음과 같습니다.
from telethon import TelegramClient, events import MetaTrader5 as mt5 import asyncio import logging from datetime import datetime import signal import os import sys import pkg_resources
기능 요약:
- reconnect_mt5: 최대 시도 횟수까지 MetaTrader 5에 다시 연결을 시도합니다.
- send_order: 수신된 신호를 기반으로 MetaTrader 5에 매수 또는 매도 주문을 보냅니다.
- process_signal: 텔레그램에서 받은 메시지를 해석하고 MetaTrader 5에서 해당 주문을 실행합니다.
- verify_connections: MetaTrader 5에 대한 연결이 활성화되어 있는지 확인하고 필요한 경우 다시 연결을 시도합니다.
- signal_handler: 인터럽트 신호를 처리하여 프로그램을 종료합니다
위 내용은 mt5에서 신호를 복제하는 텔레그램 봇의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 튜토리얼은 Python을 사용하여 Zipf의 법칙의 통계 개념을 처리하는 방법을 보여주고 법을 처리 할 때 Python의 읽기 및 대형 텍스트 파일을 정렬하는 효율성을 보여줍니다. ZIPF 분포라는 용어가 무엇을 의미하는지 궁금 할 것입니다. 이 용어를 이해하려면 먼저 Zipf의 법칙을 정의해야합니다. 걱정하지 마세요. 지침을 단순화하려고 노력할 것입니다. Zipf의 법칙 Zipf의 법칙은 단순히 : 큰 자연어 코퍼스에서 가장 자주 발생하는 단어는 두 번째 빈번한 단어, 세 번째 빈번한 단어보다 세 번, 네 번째 빈번한 단어 등 4 배나 자주 발생합니다. 예를 살펴 보겠습니다. 미국 영어로 브라운 코퍼스를 보면 가장 빈번한 단어는 "TH입니다.

이 기사에서는 HTML을 구문 분석하기 위해 파이썬 라이브러리 인 아름다운 수프를 사용하는 방법을 설명합니다. 데이터 추출, 다양한 HTML 구조 및 오류 처리 및 대안 (SEL과 같은 Find (), find_all (), select () 및 get_text ()와 같은 일반적인 방법을 자세히 설명합니다.

이 기사는 딥 러닝을 위해 텐서 플로와 Pytorch를 비교합니다. 데이터 준비, 모델 구축, 교육, 평가 및 배포와 관련된 단계에 대해 자세히 설명합니다. 프레임 워크, 특히 계산 포도와 관련하여 주요 차이점

파이썬 객체의 직렬화 및 사막화는 사소한 프로그램의 주요 측면입니다. 무언가를 Python 파일에 저장하면 구성 파일을 읽거나 HTTP 요청에 응답하는 경우 객체 직렬화 및 사태화를 수행합니다. 어떤 의미에서, 직렬화와 사제화는 세계에서 가장 지루한 것들입니다. 이 모든 형식과 프로토콜에 대해 누가 걱정합니까? 일부 파이썬 객체를 지속하거나 스트리밍하여 나중에 완전히 검색하려고합니다. 이것은 세상을 개념적 차원에서 볼 수있는 좋은 방법입니다. 그러나 실제 수준에서 선택한 직렬화 체계, 형식 또는 프로토콜은 속도, 보안, 유지 보수 상태 및 프로그램의 기타 측면을 결정할 수 있습니다.

Python의 통계 모듈은 강력한 데이터 통계 분석 기능을 제공하여 생물 통계 및 비즈니스 분석과 같은 데이터의 전반적인 특성을 빠르게 이해할 수 있도록 도와줍니다. 데이터 포인트를 하나씩 보는 대신 평균 또는 분산과 같은 통계를보고 무시할 수있는 원래 데이터에서 트렌드와 기능을 발견하고 대형 데이터 세트를보다 쉽고 효과적으로 비교하십시오. 이 튜토리얼은 평균을 계산하고 데이터 세트의 분산 정도를 측정하는 방법을 설명합니다. 달리 명시되지 않는 한,이 모듈의 모든 함수는 단순히 평균을 합산하는 대신 평균 () 함수의 계산을 지원합니다. 부동 소수점 번호도 사용할 수 있습니다. 무작위로 가져옵니다 수입 통계 Fracti에서

이 튜토리얼에서는 전체 시스템 관점에서 Python의 오류 조건을 처리하는 방법을 배웁니다. 오류 처리는 설계의 중요한 측면이며 최종 사용자까지 가장 낮은 수준 (때로는 하드웨어)에서 교차합니다. y라면

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

이 튜토리얼은 간단한 나무 탐색을 넘어서 DOM 조작에 중점을 둔 아름다운 수프에 대한 이전 소개를 바탕으로합니다. HTML 구조를 수정하기위한 효율적인 검색 방법과 기술을 탐색하겠습니다. 일반적인 DOM 검색 방법 중 하나는 EX입니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

드림위버 CS6
시각적 웹 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
