「狙っていた株があったのに、目を離した隙に上がってしまった」「安くなったら買おうと思っていたのに、いざ暴落すると怖くて手が出せない」。投資をしていると、こうした感情による失敗は誰にでも起こります。
この記事では、Pythonの「if文」という仕組みを使って、投資判断を自動化する方法を解説します。たった数行のコードを書くだけで、あなたの代わりにプログラムが24回、感情を交えずにルールを守り続けてくれます。プログラミングが初めての方でも、今日から自分の投資ルールをデジタル化できるようになります。
感情に左右されない投資判断にPythonが役立つ理由
投資で安定して利益を出すためには、あらかじめ決めたルールを淡々と実行する「規律」が欠かせません。しかし、私たち人間はどうしても目先の値動きに心が揺れてしまいます。Pythonを活用することで、こうした人間ならではの弱点を克服し、より論理的な運用が可能になります。
「〇〇円なら買う」をデジタル化するメリット
投資ルールをデジタル化する最大のメリットは、24時間365日、プログラムがあなたの代わりに相場を監視してくれることです。仕事中や就寝中であっても、設定した価格に到達した瞬間に判定を下せます。
例えば、以下のようなメリットがあります。
- 買い場を逃す「うっかりミス」がなくなる
- 暴落時の恐怖による「注文の躊躇」を排除できる
- 常に同じ基準で判断するため、失敗の原因を分析しやすい
感情は投資の敵と言われることがありますが、Pythonを使えばその敵を物理的にシャットアウトできるのです。
if文が投資の「ルール」を忠実に守ってくれる
Pythonの「if文」は、日本語で言うところの「もし〜なら、〇〇する」という条件分岐を作るための構文です。これはまさに、投資家の「指値(さしね)」の考え方そのものです。
「もし株価が1,000円以下なら、買い注文を出す」というルールは、Pythonにとって最も得意な仕事の一つです。一度プログラムを動かせば、1,001円では決して動かず、1,000円になった瞬間にだけ反応します。この「一切の妥協のなさ」が、資産を守るための強力な武器になります。
迷う時間を「検証する時間」に変えられる
これまではチャートを眺めて「今買うべきか、待つべきか」と迷っていた時間を、これからは「そのルールは過去にどれくらい通用したか」を検証する時間に変えることができます。
ルールをコードに落とし込む作業は、自分の投資手法を言語化する作業でもあります。なんとなくの雰囲気で買っていた手法を、「if文」で表現しようとすることで、自分の戦略がいかに曖昧だったかに気づくこともあるでしょう。ロジックを磨くことで、投資の解像度は劇的に上がります。
Pythonのif文を使って条件分岐を作る基本
プログラムと聞くと身構えてしまうかもしれませんが、if文の構造は驚くほどシンプルです。投資判断のロジックを作るための「文法」と、価格を比べるための「記号」について見ていきましょう。
価格を比べる記号(比較演算子)の使い方
投資判断では「AはBより安いか?」といった比較を常に行います。Pythonでは、算数で使ったような記号(比較演算子)を使ってこれらを表現します。
投資でよく使う記号を一覧にまとめました。
| 記号 | 意味 | 投資での活用例 |
| < | 未満 | 1,000円より安くなったら |
| <= | 以下 | 1,000円ちょうど、またはそれより安ければ |
| > | 超過 | 目標利益を上回ったら |
| >= | 以上 | 前回の高値を超えたら |
| == | 等しい | 特定のキリの良い数字になったら |
これらを使い分けることで、「〇〇円以下なら」という条件を正確にプログラムへ伝えられます。
「もし〜なら、そうでなければ」を組み立てる
if文の基本は、if(もし〜なら)とelse(そうでなければ)のセットです。例えば、株価が予算内なら「購入」、そうでなければ「見送り」という2つの選択肢を提示できます。
基本的な書き方は以下の通りです。
if 株価 <= 1000:
print("買い注文を出します")
else:
print("今は見送りです")
条件が満たされたときだけ、その下の処理が実行される仕組みです。これを使えば、誰でも簡単に「条件分岐」のある投資ツールを作ることができます。
インデントでプログラムの範囲を決めるルール
Pythonを学ぶ上で最も注意が必要なのが、行の始まりにある「スペース」です。これを「インデント(字下げ)」と呼びます。
if文の条件に当てはまったときに実行したい処理は、必ず4つのスペースを入れて一段右に下げなければなりません。
- 正しい例:if文の後にスペースを入れて処理を書く
- 失敗例:スペースを入れずに書くと、Pythonは「どこまでがif文の仲間か」が分からずエラーになります
「インデントは、条件が成立したときのご褒美のスペース」と覚えると良いでしょう。このルールがあるおかげで、Pythonのコードは誰が書いても読みやすい形に整います。
投資判断に必要な「価格データ」を変数に入れる
プログラムの中で価格を扱うには、まずその数字に「名前」をつけて保存しておく必要があります。これをプログラミング用語で「変数(へんすう)」と呼びます。
仮想の現在価格でシミュレーションする
まずは、今の株価がいくらであるかを想定して、変数を作ってみましょう。例えば、現在の価格が1,050円だとします。
current_price = 1050
target_price = 1000
このように名前をつけることで、後から計算式を作るときに「この数字は何だったっけ?」と迷わずに済みます。また、数字が変わっても変数の中身を書き換えるだけで、プログラム全体を修正する必要がなくなるため非常に効率的です。
ユーザーがその場の価格を入力できる仕組みを作る
プログラムを実行するたびに、自分で今の価格を打ち込みたい場合はinput()という機能を使います。
price_input = input("今の株価を入力してください:")
current_price = int(price_input)
このコードを使うと、画面に「今の株価を入力してください」というメッセージが表示され、キーボードから打った数字がそのまま判定に使われます。これにより、特定の銘柄をチェックする「手動判定ツール」が完成します。
データを数値として正しく扱うための注意点
ここで一つ、初心者が必ずと言っていいほどハマる「罠」があります。それは、input()で受け取った数字は、Pythonの中では「文字」として扱われてしまうという点です。
例えば、「1000」という数字を「文字」として認識していると、足し算や大きさの比較ができません。
- 文字の1000:単なる記号(計算できない)
- 数値の1000:計算可能な数字
そのため、比較演算子を使う前には必ずint()やfloat()を使って、「これは数字だよ!」と教えてあげる必要があります。このひと手間が、エラーを防ぐための大切なポイントです。
「〇〇円以下なら買う」をコードで表現する
準備が整いました。いよいよ、タイトルにある「〇〇円以下なら買う」という投資判断の核心部分をコードに落とし込んでいきましょう。
単純な指値判定のロジックを書いてみよう
まずは、目標価格を決めて、現在の価格と比較するシンプルなコードを書いてみます。
current_price = 980
target_price = 1000
if current_price <= target_price:
print("チャンス到来!目標価格以下なので買いを検討します。")
このように、現在の価格(980円)が目標(1,000円)以下のときにだけメッセージが表示されます。シンプルですが、これがすべての自動化の基礎になります。
「買い」と「見送り」の結果を画面に出す
条件に当てはまらなかった場合も考慮して、elseを追加してみましょう。
if current_price <= target_price:
print("【判定:購入】割安圏内です。")
else:
diff = current_price - target_price
print(f"【判定:見送り】目標まであと{diff}円です。")
このように、買わない場合に「あといくらで買えるのか」を表示させる工夫をすると、ツールとしての実用性が一気に増します。
目標価格を自由に変更できるようにする
投資戦略によって、目標価格は毎日変わるはずです。目標価格を変数にしておけば、ロジック部分は一切いじらずに、一番上の数字を書き換えるだけで済みます。
例えば、以下のように整理できます。
- 戦略A:1,000円になったら買う
- 戦略B:前日の終値より50円安かったら買う
これらをコードの上部で定義しておけば、判断をプログラムに任せつつ、戦略の立案に集中できるようになります。
複数の条件を組み合わせて精度を上げる
「価格が安い」という条件だけでは、相場が暴落している真っ最中に買ってしまうかもしれません。より安全な投資判断を行うために、複数の条件を組み合わせてみましょう。
安い、かつ特定の条件を満たす判断(and)
「価格が1,000円以下」で、なおかつ「今日は株価が上昇傾向にある(前日比プラス)」といった、2つの条件を同時に満たしたときだけ動くようにするにはandを使います。
if price <= 1000 and change_rate > 0:
print("安値圏で反発を確認。買いの好機です。")
これにより、ただ安いだけの「落ちてくるナイフ」を掴むリスクを減らし、少し反転し始めたタイミングを狙うといった高度な判断が可能になります。
どちらかの条件を満たせば動く設定(or)
「A銘柄が安くなった」か、あるいは「B銘柄が安くなった」かのどちらか一方で動きたい場合はorを使います。
if stock_A <= 500 or stock_B <= 800:
print("注目銘柄のいずれかが目標価格に到達しました!")
複数の候補を監視しているときに便利です。チャンスを幅広く待ち構える姿勢を、コードで表現できます。
elifを使って「買い・売り・維持」を3分割する
現実は「買うか買わないか」の2択だけではありません。「利益確定(売り)」「買い増し」「様子見」の3つ以上に分岐させたいときは、elif(それ以外で、もし〜なら)を使います。
if price >= 1500:
print("目標利益に到達。売りを検討しましょう。")
elif price <= 1000:
print("買い場です。")
else:
print("特に動きなし。ホールド継続です。")
このように条件を重ねることで、投資のポートフォリオ全体を管理するロジックへと発展させていくことができます。
計算式を交えた高度な自動判定を作る
定数(決まった数字)で判断するだけでなく、動的な計算をif文に組み込むと、よりプロらしいツールになります。
「直近高値から10%安くなったら買う」計算ロジック
「〇〇円」と固定するのではなく、高値からの下落率で判断する手法は非常に一般的です。
high_price = 1200
current_price = 1050
# 下落率を計算
drop_rate = (high_price - current_price) / high_price
if drop_rate >= 0.1:
print("高値から10%以上調整しました。買いを検討します。")
これなら、株価の水準が変わっても「10%の調整」というルールを常に一定の基準で適用し続けることができます。
資金残高に合わせて購入枚数を自動で決める
if文の中に計算を入れることで、リスク管理も同時に行えます。
例えば、「手元の資金の20%以内で買える枚数を計算する」といったロジックです。
balance = 1000000
if price <= 1000:
buyable_shares = (balance * 0.2) // price
print(f"{buyable_shares}株の購入を推奨します。")
感情が高ぶって資金全力で勝負してしまうようなミスを、計算機が冷静に止めてくれます。
利益確定と損切りのラインを同時に設定する
買った後の出口戦略もif文で自動化しましょう。
| 判定の種類 | 条件式 | 期待するアクション |
| 利確ライン | 現在値 >= 買値 * 1.1 | 10%の利益で確実に売る |
| 損切りライン | 現在値 <= 買値 * 0.95 | 5%の損失で傷を浅く済ませる |
| 継続 | 上記以外 | トレンドが続く限り持つ |
これをループ処理(繰り返し)と組み合わせれば、毎日自動で保有株の「売り時」をチェックしてくれるシステムになります。
実際の株価データを使って判定を走らせる
ここまでは手入力や仮想の数字を使ってきましたが、やはり「本物の株価」を判定させたいですよね。Pythonには、最新の市場データを簡単に取得できる魔法のようなツールがあります。
yfinanceで本物の価格を取得する一歩
世界中の投資データにアクセスできるyfinanceというライブラリを使いましょう。まずはインストールが必要です。
pip install yfinance
これを使えば、例えばトヨタ自動車やアップル株の「今この瞬間の価格」を取得して、先ほどのif文に流し込むことができます。
特定の銘柄コードを指定して動かす手順
実際にアップル(AAPL)の現在価格を取得して判定する流れを見てみましょう。
import yfinance as yf
# データの取得
stock = yf.Ticker("AAPL")
current_price = stock.history(period="1d")["Close"].iloc[-1]
if current_price <= 180:
print(f"アップル株が目標値です:現在{current_price:.2f}ドル")
たったこれだけで、あなたの書いたif文が「リアルの相場」と繋がります。自分で株価サイトを見に行く手間が、これで一つ減りました。
Google Colabで即座に実行して確かめる
自分のパソコンに環境を作るのが大変な方は、ブラウザだけでPythonが動く「Google Colab」を使ってみてください。
- Google Colabにアクセスする
- 新しいノートブックを作る
- 上記のコードを貼り付けて再生ボタンを押す
これだけで、スマホからでもPythonによる投資判定を実行できます。環境構築で挫折する心配はありません。
自動判定ロジックを運用する際の注意点
プログラムは完璧にルールを守りますが、だからこそ気をつけなければならない「運用上のリスク」も存在します。機械に任せっきりにする前に、以下の3点は必ず押さえておきましょう。
価格データの遅延を考慮して判断する
無料のデータ取得ツール(yfinanceなど)は、実際の市場価格よりも15分〜20分程度遅れて表示されることが一般的です。
一分一秒を争うデイトレードにそのまま使うのは危険です。あくまで「中長期的な買い場の判定」や「その日の終わりのチェック」として使うのが正しい向き合い方です。
ストップ安などの異常値への対策
もし相場が急変して、目標価格を大きく飛び越えて暴落している場合、if文はそれでも「安いから買え」と判断してしまいます。
「前日比でマイナス20%を超えるような異常な暴落時は、判定を停止する」といった、セーフティネット(安全装置)となるif文をもう一つ追加しておくと、より堅実なシステムになります。
最終的な決定ボタンは人間が押すという考え方
今回のプログラムの目的は、投資判断を「サポート」することです。
プログラムが「買い」と出しても、その銘柄に不祥事があったり、決算が最悪だったりする場合は、人間がブレーキを踏む必要があります。
- 機械:膨大なデータから「ルール通りか」を判定する
- 人間:数字に出ない「定性的なリスク」を評価する
この役割分担を忘れないことが、Python投資術を成功させる秘訣です。
まとめ:自分だけの投資ルールをPythonで構築しよう
Pythonのif文を使えば、これまで曖昧だった「なんとなくの判断」を、明確な「投資ロジック」へと昇華させることができます。
- 仕組み化: if文と比較演算子で、判断基準を明確にする。
- データ活用: 変数やyfinanceを使い、リアルな数字で判定する。
- 規律の維持: 感情を排除し、決めたルールを機械的に守らせる。
プログラミングは魔法ではありませんが、あなたの「意志」を100%忠実に実行してくれる最強のパートナーになります。まずは簡単な「〇〇円以下なら買う」という1行のコードから、あなたの新しい資産運用を始めてみてください。

