Получение сигналов с телеграммного канала и размещение их в MT4 с помощью Python - PullRequest
0 голосов
/ 02 мая 2020

Я хотел бы прочитать сообщения из канала Telegram (которые являются важными сигналами форекс) и разместить ордера в приложении MT4 windows. На данный момент я создал скрипт python, который прослушивает каналы и сохраняет сообщения в базе данных. Я также могу анализировать сообщения на наличие необходимых значений, таких как TP, SL и c. Теперь, когда у меня есть эти сигналы, как я могу их разместить?

Я читаю в других ответах о привязке ZeroMQ и Python, но мне не нужно ничего анализировать или строить стратегию, я просто хочу разместить заказ. Я видел видео, в котором он поместил CSV-файл в папку MQL4 / Files, и заказ был размещен, но я не уверен, как был отформатирован CSV-файл.

Это мой python код для чтения телеграмм, если кому-то это нужно. Заранее спасибо

import configparser
import json

from telethon import TelegramClient, events
from telethon.errors import SessionPasswordNeededError
from telethon.tl.functions.channels import GetParticipantsRequest
from telethon.tl.types import ChannelParticipantsSearch
from telethon.tl.types import PeerChannel
from telethon.tl.functions.messages import (GetHistoryRequest)


my_channel = "<channel_url>"



# Reading Configs
config = configparser.ConfigParser()
config.read("config.ini")

# Setting configuration values
api_id = config['Telegram']['api_id']
api_hash = config['Telegram']['api_hash']

api_hash = str(api_hash)

phone = config['Telegram']['phone']
username = config['Telegram']['username']

client = TelegramClient(username, api_id, api_hash)


# async def main():
#     me = await client.get_me()
#     print(me.stringify())
#     async for message in client.iter_messages('Hanil02'):
#         print(message.id, message.text)

# with client:
#     client.loop.run_until_complete(main())

@client.on(events.NewMessage)
async def my_event_handler(event):
    chat = await event.get_chat()
    sender = await event.get_sender()
    chat_id = event.chat_id
    sender_id = event.sender.id
    text = event.raw_text
    # print(sender.id)
    if sender_id == 1386059246:
        print(event.raw_text)
client.start()
client.run_until_disconnected()
...