PythonでProxyサーバ経由で購入銘柄情報をメール送信する(システムトレード)

今までのあらすじ。

誰かが言った。

人生の悲劇は2つしかない。

  • ひとつは、金のない悲劇
  • もうひとつは、金のある悲劇

 

「ユダヤ人大富豪の教え」の著書・本田健氏は言った。

お金持ちになるには5つの道しかない。

  • 1つめは、親から財産や会社を受け継ぐ
  • 2つめは、遺産として財産や会社を受け継ぐ
  • 3つめめは、大企業で圧倒的な出世をする
  • 4つめは、自分でビジネスを興す
  • 5つめは、投資で財産を増やす

 

サラリーマンは3~5が目指すべき目標。

ただ、3は役員レベル(年収3000万~5000万円)。

4の起業ならどうだ?

ベンチャーキャピタルに「ビジョン・信念が無い奴は一生無理」だと否定された。

で、今は5の投資。

システムトレード完全自動化に向けて「Protraの自動起動・自動実行・自動終了」の改良が前回完了した。

Windowsアプリ(C#)の起動時の処理・任意タイミングでの終了(システムトレード自動化)
Protraを使ってシステムトレード完全自動化をするには、「Protra.exe」・・・株価更新「PtSim.exe」・・・・バックテスト実施2つのアプリケーションの動作を自動化しなければならない。一度、...

暫くは正しく動いていることを確認する目的で、バックテスト結果のメール送信を実装してみる。

最終的に作りたい自動売買の流れは下記のとおり。

完全自動化に向けて着々と進んでいる・・・気はする。

Proxyサーバを経由してメールを送信する

「python STMP メール送信」とかでググると色々とヒットするが、Proxyを利用した場合のメール送信情報は少ない。

が、ドンピシャリなサイトを見つけた。

https://python5.com/q/fiveguvr

なお、メールのメッセージ作成は「email.mime.text」を利用した。

ファイルを読み込みTailを返す

バックテストして明日買う銘柄が決まれば、その情報をメールで送信したい。

買う銘柄情報は「lasttrading.txt」というファイル名で出力されるので、その終わりの数十行だけ取り出してみよう。

tailと同様に、ファイルの最後のn行を取得します
これはあなたのものより速いかもしれません。行の長さについては何も想定していません。正しい数の「\ n」文字が見つかるまで、一度に1ブロックずつファイルをさかのぼります。 def tail( f, lines=20 ): total_lines_wanted = lines BLOCK_SIZE = 1024 f.se...

これも、そのままのスクリプトが落ちていた。

実売買するには、銘柄コードや購入代金等の抽出が必要となるが、今回は取り出すだけに留める。

タスクスケジューラを利用した定期実行

Windowsなので、タスクスケジューラを利用してBATファイルを呼び出すのが自然だろう。

「基本タスクの設定」→「名前:自動システムトレード 」→「毎週」

登録するBATファイルは次のようなものだ。

これで毎日、深夜0時に実行開始して、実行完了後に結果をメールする。

土日は取引無いので実行しない。

その他、実売買に向けては検討項目は多くありそうだ。

Yahoo! JAPAN公式サービス以外からのアクセスも有効にする

実行すると次のエラーが出た。

Yahoo!メールの設定画面 ( IMAP/POP/SMTPアクセスとメール転送のページ ) で、「Yahoo! JAPAN公式サービス以外からのアクセスも有効にする」を選択する。

これでメール受信が可能になる。

まとめ

自動メールが届くようになったので、システムトレードに飽きていてもメールは見る事になる。

次は作りかけの実売買部分の自動化だ。

暖かくなると、また釣りとか生き物散策がメインになりそうなので、今のうちに作っておきたい。
 

でも、肝心の勝てるストラテジーが無いんだよなー。

過去の日記を読み直すと2007年から検討始めてるから14年経過してしまった・・・・。

NOVAでお金を失って株の自動売買を検討
2007年11月09日(金) NOVAにまた授業料支払いか・・・世の中には二種類の人間がいるんだ。一人は前例を基にいい仕事をする。一人は前例を壊すことを仕事にしている。前者が文系で、後者が理系だ。...

 
 

【2020.02.04】 YahooメールのSTMP仕様が変わったので追記。

PythonからYahooのSMTP(SSL)接続+ Proxy経由をメール送信する方法(SMTP_SSL、setdefaultproxy)
折角実装したのに、Yahooにメールが届かなくなった。パソコン側の問題?アップデートでも走った?うーん、どこまで通信ができているのだろう?どうやらYahooのSTMPサーバから応答がないら...

ソースコード

ファイルの最後の20行を読み込んで、指定のメールアドレスにProxy経由でメールを送信するスクリプトは次のようになる。

色々なサイトからサンプルコードを持ってきて、繋いだだけだ。

タイトルとURLをコピーしました