Olá a todos! Quero compartilhar um de meus trabalhos, talvez seja útil para outra pessoa. Decidi reescrever meu artigo para Habr, adicionando exemplos de código a partir dos quais você pode montar esse robô. Quem se importa, bem-vindo ao gato.
Fundo
Há cerca de seis meses comecei a entender o tema dos investimentos, porque as taxas de depósito quebraram outro fundo, desta vez tendo caído abaixo da taxa de inflação, o que é claro que é muito triste. No entanto, graças a este evento, mergulhei no tema dos investimentos e aprendi muitas coisas novas e interessantes. Agora posso distinguir ações de títulos.
Meu conhecimento desse tópico se deu em várias direções.
Primeiro, comprei algumas ações e comecei a observar como suas cotações reagem a certas notícias. De repente, descobriu-se que, após um excelente relatório, o preço pode cair (porque, nas boas notícias, os grandes jogadores costumam tentar fixar os lucros, o que faz com que as cotações entrem em colapso).
Em segundo lugar, todos os dias comecei a desmontar termos de troca, fenômenos e relacionamentos, e a escrever notas para mim mesma no carrinho. Houve 500 desses postos em seis meses.
Em terceiro lugar, comecei a ler notícias na RBK, Finam e apenas nos canais do carrinho. Ao mesmo tempo, como percebi por conta própria, minha atenção aos poucos se voltou completamente para os telegramas, porque quando quero ver a relação entre o movimento das citações e os eventos, o fator tempo torna-se importante.
No começo eu li tudo e foi simplesmente interessante, depois comecei a notar inconsistências entre os diferentes canais na avaliação de determinados eventos, percebi que é preciso olhar as informações de forma crítica, já que as pessoas (inclusive os especialistas) estão constantemente errados em suas previsões. Já na bolsa de valores está na ordem das coisas. No entanto, a análise constante neste formato dá uma boa imersão no tema e já forma a sua própria opinião sobre este ou aquele assunto.
O problema do fluxo infinito de informações
, , , , "" , - , , , , , . , , "", , , , "" , .
, 150 , , , , , , , .
, -, , , . .
, -, , , -, — , , «Yandex», «», «YNDX». , , . , ? .
telethon
from telethon import TelegramClient, events, sync
from telethon.tl.functions.channels import JoinChannelRequest
import re
, API https://my.telegram.org/, , "API development tools", 2 , Platform Desktop.
App api_id, App api_hash . PHONE_NUMBER , .
API_ID = 1234567 # api_id
API_HASH = 'your_hash'
PHONE_NUMBER = '+7xxxxxxxxxx'
,
CHANNELS = (
'channel1_name', #
'channel2_name', # https://t.me, @ -
'channel3_name
)
, , . , , .
#
names = {
'channel1_to_post': ['interesting_text1',
'interesting_text2'],
'channel2_to_post': ['other_channel_interesting_text1',
'other_channel_interesting_text2',
'other_channel_interesting_text3'],
}
# "" +
d = {}
for name in names.keys():
for t in names[name]:
d[t.lower()] = name.lower()
print(d)
- , :
client = TelegramClient('session', API_ID, API_HASH)
client.start()
for channel in CHANNELS:
client(JoinChannelRequest(channel))
, ,
#
@client.on(events.NewMessage(CHANNELS))
async def handler(event):
print(f'received text: {event.message.message}')
for tmp in d.keys():
await client.forward_messages(d[tmp], event.message)
client.run_until_disconnected()
( , 150 )
t.me/tesla_twits - Tesla
t.me/apple_twits - Apple
t.me/amazon_twits - Amazon
t.me/moderna_twits - Moderna
t.me/pfizer_twits - Pfizer
t.me/google_twits - Google
t.me/facebook_twits - Facebook
t.me/microsoft_twits - Microsoft
t.me/yandex_twits -
t.me/mailru_twits - Mail.ru
t.me/mts_twits -
t.me/aeroflot_twits -
t.me/rosneft_twits -
t.me/sber_twits -
t.me/gazprom_twits -
t.me/afk_twits -
t.me/nornickel_twits - Norilsk Nickel
t.me/vtb_twits - VTB
t.me/rusal_twits - Rusal
t.me/lukoil_twits - Lukoil
Eu ficaria feliz se outra pessoa além de mim apreciasse isso. Portanto, se você possui ações dessas empresas e periodicamente não entende por que elas estão caindo, ou apenas deseja "pegá-las" no prazo e por um preço baixo - inscreva-se. Infelizmente, o Telegram permite que você faça um número limitado de canais abertos, então irei deletar aqueles canais em que haverá o menor número de assinantes.
Tudo bom!