[PYTHON] Pour gagner avec des devises, partie 4 ~ LINE Notification Edition

Ceci est une continuation de la précédente "Pour gagner avec des devises 3 ~ construction LAMP".

Vous serez averti par l'API LINE Messageing lorsque le mouvement de prix devient important. J'ai pensé à d'autres méthodes, mais

--SMS est une charge de base --twitter n'est pas adapté à l'utilisation (incompris comme bot) --facebook Hmm, ça a l'air difficile ――Je n'utilise pas beaucoup #slack

C'est pourquoi j'ai choisi LINE. La référence pour cette fois est "Envoyer un message à LINE avec Python".

Faire en sorte que LINE notifie un ami

Ajoutez "LINE Notify" à vos amis depuis LINE sur votre smartphone. Screenshot_addfriend.png Il semble que vous ayez déjà près de 2 millions d'amis, mais ce serait difficile si vous en aviez autant. Je ne m'en souviens plus.

Émission du jeton d'accès LINE

Émettez un jeton. Le nom du jeton doit être un nom approprié. Screenshot_publishtoken.png J'ai fait une erreur ici Si vous souhaitez créer un groupe et le notifier, il semble que vous deviez sélectionner "Salle de discussion pour envoyer une notification" sur cet écran. J'ai dû le recréer plus tard.

Code Python

Maintenant que nous avons le jeton, nous allons l'intégrer dans notre programme Python. Consultez le public GitHub pour le code complet.

from decimal import Decimal
import requests

Importez les bibliothèques requises.

# LINE Notify settings
line_url = "https://notify-api.line.me/api/notify"
line_access_token = "## Your LINE Access Token ##"
line_headers = {'Authorization': 'Bearer ' + line_access_token}

Il s'agit d'un paramètre pour notifier LINE Notify.

line_message = ""

# Difference high and low
diff = Decimal(raw[price]["h"]) - Decimal(raw[price]["l"])
print("{} {}: {}".format(
    raw["time"].replace("000Z", "").replace("T", " "),
    response["instrument"],
    diff
))

if response["instrument"].find("_JPY") > -1:
    if diff >= 0.1:
        line_message += "'" + response["instrument"] + "' "
else:
    if diff >= 0.0015:
        line_message += "'" + response["instrument"] + "' "

# LINE Notify
if len(line_message) > 0:
    line_payload = {"message": "There were signficant price fluctuations in " + line_message + "."}
    r = requests.post(line_url, headers=line_headers, params=line_payload)

Si le prix du marché par rapport au yen est de 0,1 yen ou plus, et s'il y a un mouvement de prix de 0,0015 dollar US (autres) ou plus, le message de notification LINE sera stocké. Enfin, request.post un message que LINE doit vous avertir.

résultat

Fondamentalement, tout ce que vous avez à faire est de savoir quelle paire de devises a le grand mouvement de prix, donc cela ressemble à ceci. C'est également une bonne idée de vérifier le graphique et de négocier s'il y a un signe. Screenshot_linenotify.png

Exécuter au démarrage de Raspberry Pi

Il est pratique de s'inscrire en tant que startup.

shell:/home/pi/.config/autostart/market.desktop


[Desktop Entry]
Type=Application
Name=Market Monitor
Exec=/usr/bin/python3 -B /home/pi/python/MarketMonitor/oanda_candle.py
Terminal=false

Contrôle de fonctionnement

Si vous redémarrez le système et que vous pouvez voir qu'il fonctionne par phpmyadmin dans la base de données, cela devrait être correct. Je ne pense pas que les notifications LINE arrivent généralement très souvent. Screenshot_phpmyadmin.png

Maintenant que l'environnement a été créé, Je voudrais créer quelque chose comme un site portail.

Continuer.

Recommended Posts

Pour gagner avec des devises, partie 4 ~ LINE Notification Edition
J'ai essayé la notification de ligne en Python
Comment recevoir des arguments de ligne de commande en Python
Comment faire du zéro-padding sur une ligne avec OpenCV
Le robot en ligne le plus simple au monde pour perdre du poids
Aller à la langue pour voir et se souvenir du langage Partie 7 C en langage GO
Introduction à PyQt4 Partie 1
Un outil de ligne de commande qui place .gitkeep dans un répertoire vide
Comment spécifier des arguments de ligne de commande lors du débogage avec PyCharm
Mémo de procédure pour mettre l'interface de ligne de commande AWS dans CentOS6
Introduction à l'API Socket apprise en langage C 2e édition client