【Python株価分析ツール】売りタイミングを見やすくする「Exit条件表示機能」を追加

自作しているPython株価分析ツールでは、前回、買いタイミングを判断しやすくするために『Stage表示機能』を追加しました。

Stage1~Stage4で値動きの状態を可視化することで、監視銘柄の中から『今どの銘柄を詳しく確認するか』は以前より整理しやすくなりました。

しかし、実際に買った後には、また別の悩みが出てきます。

『この銘柄、いつ売ればいい?』

含み益が出れば『もう少し上がるかもしれない』と考えてしまい、反対に株価が下がれば『そのうち戻るかもしれない』と考えてしまう。

買いタイミングと同じように、売りタイミングも感覚だけで判断するのは意外と難しいと感じていました。

そこで今回、自分で決めたルールに沿って保有銘柄の状態をチェックし、Exit条件に該当したことを分かりやすくする『Exit条件表示機能』を株価分析ツールに追加しました。

単純に一定の利益や損失が出たら売却するのではなく、利益が伸びた場合の動きや、なかなか上昇しない場合、保有期間が長くなった場合など、複数のパターンからExitを判断できる仕組みにしています。

この記事では、具体的な売買条件や細かな判定値ではなく、なぜExit条件表示機能を作ったのか、どのような考え方で売りタイミングを整理したのか、実際のツールでどのように表示・活用しているのかを中心に紹介します。

目次

買った後の『いつ売る?』を判断しやすくしたい

Stage表示機能を追加したことで、監視銘柄の中から買い候補に近づいている銘柄を見つけやすくなりました。

しかし、実際に株を購入すると、今度は『いつ売るか』を考えなければなりません。

買う前は『ここまで下がったら買いたい』『反発したら買い候補として確認しよう』と考えていても、いざ保有すると判断に迷うことがあります。

特に難しいと感じたのが、含み益が出ているときと、思ったように株価が上がらないときです。

含み益が出ていると、

『今売った方がいい?』
『まだ上がるかもしれない』

と迷います。

反対に、購入後になかなか株価が上がらない場合には、

『もう少し待てば戻るかもしれない』
『そろそろ売った方がいい?』

と判断が曖昧になりがちです。

さらに、保有期間が長くなってくると、『いつまで保有するのか』という問題も出てきます。

そこで、買いタイミングをStageとして整理したのと同じように、売りタイミングについても自分で決めたルールに沿って整理できないかと考えました。

そこで、保有銘柄の値動きや保有期間などをツール側でチェックし、あらかじめ設定したExit条件に該当した銘柄を確認できる仕組みを作ることにしました。

Exit条件は、その場の感覚で売却を判断するのではなく、事前に決めたルールに沿って売却するためのものです。

ツール上でExit条件への該当状況を確認し、条件に該当した場合は設定したルールに従って売却する。そんな使い方ができるように、『Exit条件表示機能』を追加しました。

売りタイミングを見やすくする『Exit条件表示機能』を追加

売りタイミングを感覚だけで判断しないために追加したのが、『Exit条件表示機能』です。

この機能では、保有している銘柄の値動きや保有期間などをチェックし、自分で設定したExit条件に該当した場合に、売却を検討する銘柄としてツール上で確認できるようにしました。

ただ、Exit条件を考えるときに悩んだのが、

『どんな状態になったら売却を検討するのか?』

ということです。

たとえば、利益が出たからといって、すぐに売ってしまうと、その後さらに上昇する可能性があります。

反対に、購入後になかなか上昇しない銘柄を『いつか上がるかもしれない』と長期間保有し続けるのも、私が目指している運用とは少し違います。

そこで今回は、単純に『○%上がったら利益確定』『○%下がったら損切り』というひとつの条件だけではなく、保有後の値動きや経過した期間に応じてExitを考える仕組みにしました。

大きく分けると、確認しているのは次の3つのパターンです。

① 利益が伸びた場合
一定の利益に到達した後は、すぐに売却するのではなく、その後の上昇を追いながらExitするタイミングを確認します。

② なかなか上昇しない場合
一定期間保有しても期待した動きにならず、株価やSMA5の状態から弱い動きが続いている場合は、Exitを検討します。

③ 保有期間が長くなった場合
条件に該当しないまま保有し続けることを避けるため、最大の保有期間についてもルールを設定しています。

この3つを組み合わせることで、『利益が伸びている銘柄は、できるだけ上昇を追う』『思ったように動かない銘柄は、一定のタイミングで見直す』『長期間決着しない銘柄は、保有を続けるか判断する』という形で、保有後の状態を整理できるようにしました。

なお、Exit条件に該当しても、ツールが自動的に売却注文を出すわけではありません。

Exit条件の判定はツールが行い、条件に該当したことを確認したら、設定したルールに従って自分で売却操作を行う仕組みにしています。

実際のツールでは、これらの判定結果を『ポートフォリオ管理』画面に表示し、保有銘柄の状態を確認できるようにしています。

次からは、今回設定した3つのExit条件について、それぞれどのような考え方で作ったのかを紹介します。

今回設定した3つのExit条件

今回のExit条件では、保有銘柄を単純に含み益・含み損だけで判断するのではなく、『利益が伸びている』『一定期間たっても弱い』『保有期間が長くなっている』という3つの状態に分けて考えることにしました。

それぞれ目的が異なるため、Exitするまでの考え方も変えています。

① 利益が伸びたらトレーリングで上昇を追う

まず考えたのが、購入後に順調に株価が上昇したケースです。

最初は、『一定の利益が出たら、その時点で利益確定する』というシンプルな方法も考えました。

ただ、この方法では、その後も株価が上昇した場合に早い段階で手放してしまうことになります。

そこで採用したのが、トレーリングを使って上昇を追いかける方法です。

一定の利益に到達したらすぐにExitするのではなく、そこからは株価の高値を追跡します。

そして、上昇が続いている間は保有を続け、高値から一定以上下落したところでExitする仕組みにしました。

イメージとしては、

一定の利益に到達
▼
その後の高値を追跡
▼
株価がさらに上昇すればExitラインも上昇
▼
高値から下落したらExit候補

という流れです。

これなら、利益を確定するポイントを最初から固定するのではなく、上昇が続いている間はできるだけその動きを追うことができます。

もちろん、トレーリングを使えば必ず利益を最大化できるわけではありません。

あくまで『利益が伸びた銘柄をどのようにExitするか』を、自分なりのルールとして整理するために取り入れています。

② 一定期間たっても弱い状態ならExit

次に考えたのが、購入後に期待していたような上昇にならなかったケースです。

大きく下落しているわけではなくても、株価がなかなか上昇しないまま保有期間だけが長くなることがあります。

こうした銘柄を、『そのうち上がるかもしれない』という理由だけで保有し続けないため、一定期間が経過した時点で値動きを確認するルールを追加しました。

ここでは保有期間だけで機械的にExitするのではなく、現在の損益状況やSMA5との位置関係、SMA5の向きなどを組み合わせて、株価が弱い状態にあるかを確認します。

一定期間が経過していても、値動きが悪くなければ、この条件だけですぐにExitするわけではありません。

『ある程度の期間を保有した』+『値動きも弱い』という状態になったときに、Exitする仕組みです。

③ 最大保有期間に達したらExitを検討

もうひとつ設定したのが、最大保有期間です。

②では一定期間経過後の『値動きの弱さ』も確認していますが、その条件に該当しなければ保有が続く可能性があります。

そこで、どのExit条件にも該当しないまま保有期間が長くなった場合に備えて、最終的な区切りも設けることにしました。

最大保有期間に達した場合は、最終的なExit条件としてツールに表示します。

これは、『長く持てばいつか上がるかもしれない』という理由だけで、保有銘柄が残り続けることを避けるためです。

今回のツールは短期~スイングでの利用を想定しているため、保有期間についてもあらかじめルールを決めておくことにしました。

このように今回のExit条件では、

  • 利益が伸びた場合 → 上昇を追いながらExitする
  • 一定期間たっても弱い場合 → 状態を確認してExitする
  • 最大保有期間に達した場合 → Exitする

という3つの方向から保有銘柄をチェックしています。

なお、実際のツールでは具体的な利益率や保有期間などの判定値を設定していますが、本記事では掲載していません。

これらの数値は現在の自分の売買ルールとして設定・検証しているものであり、特定の数値や売買方法を推奨することがこの記事の目的ではないためです。

今後バックテストを行いながら、Exit条件そのものについても検証・改善していく予定です。

Exit条件は『ポートフォリオ管理』画面で確認

Exit条件を設定しても、毎回それぞれの銘柄のチャートを開いて確認していては、保有銘柄が増えたときに手間がかかります。

そこで今回のExit条件は、普段保有銘柄を管理しているポートフォリオ管理画面から確認できるようにしました。

ポートフォリオ管理画面を開けば、

  • 現在の損益状況
  • 保有日数
  • 利益到達状況
  • トレーリングの状態
  • Exit条件への該当状況
  • Exitする場合の価格や理由

などをまとめて確認できます。

まずポートフォリオ管理画面で保有銘柄全体の状態を確認し、Exit条件に該当している銘柄がないか確認するという使い方を想定しています。

保有日数やExit状態を一覧で確認

Exit条件を判断するうえでは、現在の損益だけでなく、購入してからどれくらいの日数が経過しているかも重要になります。

そのためポートフォリオ管理画面には、保有日数も表示するようにしました。

さらに、利益が一定の水準まで到達しているか、トレーリングが開始されているかといった状態も確認できるようにしています。

これにより、『まだ通常の保有状態なのか』『利益が伸びてトレーリング中なのか』『保有期間が長くなってきているのか』といった状態を、ポートフォリオ管理画面から把握しやすくなりました。

Exit対象になった銘柄と理由を確認

3つのExit条件のいずれかに該当すると、ポートフォリオ管理画面上でExitを検討する銘柄として確認できるようにしています。

ここで意識したのは、単に『Exit』と表示するだけではなく、『なぜExit条件に該当したのか』も分かるようにすることです。

たとえば、『トレーリングによるExitなのか』『一定期間経過後の弱い値動きによるExitなのか』『最大保有期間に到達したことによるExitなのか』といった理由を確認できます。

Exit理由を表示することで、どのルールに該当して売却するのかを確認できるようにしています。

これは今回のExit条件表示機能を作るうえで、特に重視したポイントです。

売却時にはExit理由も記録

Exit条件は、その場の売却判断だけでなく、後から売買を振り返るための情報としても利用できるようにしました。

売却した際には、どのExit条件をきっかけに売却したのかを記録します。

これにより、後から取引を振り返ったときに、『どのExit条件で売却した取引が多かったのか』『トレーリングによるExitはどのような結果になったのか』『長く保有した銘柄は最終的にどうなったのか』といったことも確認しやすくなります。

今のExit条件が本当に自分の売買ルールとして機能しているのかを検証するためにも、売却結果だけでなく『なぜ売ったのか』を残しておくことが重要だと考えました。

このExit理由は、後ほど追加するバックテスト機能でも集計・検証できるようにしています。

ポートフォリオ管理画面にExit条件を表示したことで、保有銘柄をひとつずつ確認するのではなく、『今、どの銘柄を詳しく確認するべきか』からチェックできるようになりました。

Exit条件を表示して変わったこと

Exit条件表示機能を追加して大きく変わったのは、保有銘柄を確認するときの順番が整理されたことです。

これまでは保有銘柄ごとに損益やチャートを確認し、『そろそろ売った方がいいかな?』『まだ持っていても大丈夫かな?』と、その都度考えていました。

特に含み益が出ているときは『もう少し上がるかもしれない』、反対に含み損になっているときは『そのうち戻るかもしれない』と考えてしまい、判断が曖昧になることもあります。

Exit条件を表示するようにしてからは、まずポートフォリオ管理画面で保有銘柄の状態を確認し、Exit条件に該当している銘柄を優先して詳しく確認するという流れに変わりました。

現在の確認イメージは次のようになります。

ポートフォリオ管理画面で保有銘柄を確認
▼
保有日数やExit状態を確認
▼
Exit条件に該当した銘柄を確認
▼
設定したルールに従って売却

Exit条件をあらかじめルールとして決めておくことで、その場の感情に左右されず、設定したルールに沿って売却判断を行いやすくなりました。

また、Exit条件とその理由を残せるようになったことで、売却後に、『なぜこのタイミングで売ったのか?』を振り返りやすくなったのもメリットです。

感覚だけで売買していると、後から振り返ったときに当時の判断理由が分からなくなることがあります。

Exit理由まで記録しておけば、結果だけではなく『どのルールによってExitしたのか』も確認できます。

買いタイミングをStageで整理し、売りタイミングをExit条件で整理したことで、

買う前 ▶ Stageを確認
買った後 ▶ Exit条件を確認

という形で、自分の売買ルールをツール上で少しずつ見える化できるようになってきました。

ただし、ルールを決めたからといって、そのExit条件が本当に有効とは限りません。

そこで次に必要になったのが、実際の過去データを使って売買ルールを検証することでした。

次の課題は「この売買ルール、本当に有効?」

Stage表示機能で買い候補を見つけやすくし、今回のExit条件表示機能によって、購入後の売却ルールも整理できるようになりました。

これで、

Stageで買い候補を見つける
▼
エントリーする
▼
保有後はExit条件に従って売却する

という、エントリーからExitまでの一連の流れが形になってきました。

しかし、ここまで売買ルールを作ると、次に気になったのが、『このルールを過去の相場で使っていたら、実際にどんな結果になっていたのだろう?』ということです。

自分なりに考えてStageやExit条件を設定していても、ルールを作っただけでは、それが本当に有効なのかは分かりません。

たとえば、『何回エントリーする機会があったのか』『どれくらいの割合で利益になったのか』『1回の取引でどの程度の損益になったのか』『どのExit条件で売却するケースが多かったのか』といった結果を確認できれば、現在のルールを客観的に振り返る材料になります。

また、思っていたような結果にならなかったとしても、それ自体が重要な情報です。

結果を見ながら、『Stageの条件を見直した方がいいのか?』『Exit条件を変更した方がいいのか?』『特定の相場だけでうまくいっているのではないか?』といった次の検証につなげることができます。

そこで次に、過去の株価データを使って、StageによるエントリーからExitまでを自動的にシミュレーションする『バックテスト機能』を株価分析ツールに追加しました。

バックテスト機能では、単に最終的な利益を見るだけではなく、取引回数や勝率、平均損益、Exit理由なども確認できるようにしています。

次の記事では、今回作ったStageとExitのルールを過去データで検証するために追加した、バックテスト機能の仕組みと実際の使い方を紹介します。

まとめ

今回は、自作しているPython株価分析ツールに追加した『Exit条件表示機能』について紹介しました。

前回追加したStage表示機能によって『いつ買うか』を整理しやすくなりましたが、実際に運用していくと、次に課題となったのが『買った後、いつ売るか』でした。

そこで今回、保有後の状態に応じて、『利益が伸びた場合 → トレーリングで上昇を追う』『一定期間たっても弱い場合 → Exitを検討する』『保有期間が長くなった場合 → 最大保有期間でExitする』

という3つの考え方からExit条件を設定しました。

さらに、判定結果をポートフォリオ管理画面に表示することで、現在の保有日数やExit状態、Exit理由などをまとめて確認できるようにしています。

これによって、

Stageで買い候補を探す
▼
エントリーする
▼
保有中はExit条件を確認する
▼
Exit条件に該当したら設定したルールに従って売却する

という、買いから売りまでの流れがツール上でも形になってきました。

売却ルールをあらかじめ決めておく目的は、毎回その場の感覚で判断するのではなく、できるだけ同じ基準で売買を繰り返せるようにすることです。

ただし、ルールを作っただけでは、そのルールが過去の相場でどのような結果になるのかは分かりません。

そこで次に追加したのが、StageによるエントリーからExitまでを過去の株価データで検証する『バックテスト機能』です。

次回は、取引回数や勝率、平均損益、Exit理由などを確認できるようにした、自作株価分析ツールのバックテスト機能について紹介します。

『Stage表示機能』を確認したい方はこちらです。
← Stage表示機能

【投資に関する免責事項】
本ブログで紹介している株価解析ツールによるスコアリングおよび銘柄分析は、あくまで個人の学習・研究および技術検証を目的としたものであり、特定の銘柄の売買を推奨するものではありません。

ツールの算出結果や掲載情報の正確性については万全を期しておりますが、その内容を保証するものではありません。投資の最終決定は、必ずご自身の判断と責任において行っていただきますようお願いいたします。

万一、本ブログの情報に基づいて被ったいかなる損害についても、当サイトおよび運営者は一切の責任を負いかねますのであらかじめご了承ください。

目次