AutomatorとCalendarで実現:pythonの定期実行
本記事では,投資戦略が構築できた後のプログラムの定期実行について解説します。
環境はmacOSを想定しています。
肝心の投資戦略がまだ構築できていない方は下記をご参考ください。
はじめに
個人投資家にとっての大きな強みの一つとして、市場の変動に迅速に対応し、頻繁にポジションを調整できる点が挙げられます。
証券会社における昨今の取引手数料の低下は、日次の取引戦略などを実現しやすくしています。
しかし、この戦略を効率的に運用するためには、スクリプトの定期実行が不可欠です。
定期実行には,クラウドベースのサービス(AWS LambdaやGoogle Cloud Functions)の選択も考えられますが,本記事ではローカル環境での定期実行を解説いたします。
特に円安時におけるコスト削減や導入・メンテナンスの簡便さにメリットがあります。
使用するアプリ
今回は以下のmacOS内蔵アプリを使用します。
Automator(スクリプト実行部分として)
Calendar(定期実行のスケジューリングとして)
Automatorでの設定
Automatorは、macOSにおいてコンピュータ上で繰り返し行うタスクを自動化するためのアプリケーションです。このツールはグラフィカルインターフェースを提供し、プログラミングスキルがなくても簡単に使用できます。
Automator上でpythonは実行できませんが,シェルスクリプトを実行できます。
早速,以下に手順を示します。
はじめにSpotlight(command + space)等からAutomatorを起動します。
「新規書類」を作成します。
「アプリケーション」を作成します。
「シェルスクリプトを実行」を選択します。
おそらくmacユーザーの大半はM chipに移行され,miniforgeを使用されている方が多いと思います。
以下はminiforgeの使用を想定し、シェルスクリプトを用いてconda仮想環境でpythonを実行します。condaを使用していない方は該当部分は不要です。
このスクリプトをautomatorアプリに貼り付けます。
source ~/miniforge3/etc/profile.d/conda.sh
conda activate 仮想環境名
python hoge.py
Calendarでの設定
Caldendarは、macOSに標準で搭載されているスケジューリングツールで、個人やビジネスの予定管理を効率的に行うことができます。このアプリケーションは、日々の予定管理だけでなく,自動的にタスクを実行するスケジューリングが可能です。
日付部分をダブルクリックし,新規イベントを作成します。
「開始」→定期実行をしたい時刻を選択
「繰り返し」→「カスタム」→定時実行したい日付(今回月〜金)を選択
「通知」→「カスタム」→「ファイルを開く」→「その他」を選択し,先ほどAutomatorで作成したアプリケーションを選択。実行時刻は「予定の開始時刻」を選択します。
カレンダーの表示画面が次のようになると思います。
以上の通り,AutomatorとCaldendarを用いて,簡単に定期実行環境を作成することができます。