シェア:

値段の『いきおい』で判断!仮想通貨の売り買いタイミングを見つける方法

この方法は、仮想通貨(ETH/USDT)の5分ごとの値段の動きを見て、「これから上がりそう?」「それとも下がりそう?」と予測するための作戦です。約1年間のデータで試してみた結果、どうすればもっと上手くいくかのヒントが見つかりました。この作戦の仕組みと、わかったことを中学生にもわかるように説明しますね。

取引数
640
勝率
40.00%
最終リターン
-86.38%
最大DD
88.32%

導入と前提条件

この方法は、仮想通貨(ETH/USDT)の5分ごとの値段の動きを見て、「これから上がりそう?」「それとも下がりそう?」と予測するための作戦です。約1年間のデータで試してみた結果、どうすればもっと上手くいくかのヒントが見つかりました。この作戦の仕組みと、わかったことを中学生にもわかるように説明しますね。

【検証】戦略のバックテスト概要

  • 戦略名: Kase Peak Oscillator を使用したトレンド追従戦略
  • 対象銘柄: ETH/USDT
  • 時間足: 5m
  • 期間: 2024-08-29〜2025-08-25(360日間)
  • 初期資金: $10,000
  • 手数料・スリッページ: 0.1% / 0.1%
  • 取引所: bybit

Kase Peak Oscillator の理論的背景

市場では、値段が上がりすぎたり、下がりすぎたりすることがあります。これを「買われすぎ」「売られすぎ」と言います。この作戦は、そういう時に「そろそろ反対に動くはずだ」と予想する方法です。KPOは、最近の値段の動きの大きさを調べて、値段のいきおいがどちらに向かっているかを見ています。そして、そのいきおいが「弱すぎライン」を下回ったら「買われすぎかも」と判断し、買いのチャンスを探します。でも、今回のテストでは、このサインが出ても、残念ながら損をしてしまうことが多かったようです。

具体的な売買ルール(今回の検証)

エントリー条件

  • KPOという『いきおいメーター』の数字が、下の基準線を下回った後、もう一度その線を上回ったときが「買い」の合図です。

エグジット条件

  • KPOの数字が、上の基準線を上回った後、もう一度その線を下回ったときが「売り」の合図です。

リスク管理

大きな損をしないためには、あらかじめ「これ以上損したらやめる」というルールを決めておくことがとても大切です。この作戦では、一回の取引で大きな損をしないように特に注意が必要になります。

再現手順(HowTo)

  1. Python/依存(ccxt, pandas, ta)をインストール
  2. ccxtでETH/USDTのOHLCVを取得して前処理
  3. 『Kase Peak Oscillator』に必要な指標を算出(ta 等)
  4. 閾値・クロス条件から売買シグナルを生成
  5. 手数料・スリッページを加味して検証・評価

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数640回
勝率40%
平均利益1.11%
平均損失-1.22%
期待値-0.29%
プロフィットファクター0.56
最大ドローダウン88.32%
最終リターン-86.38%
シャープレシオ-0.17
HODL(Buy&Hold)83.98%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
Kase Peak Oscillator Trading Signal Generator
トレンドの転換点を検出する高度なオシレーター
"""
import pandas as pd
import numpy as np


def calculate_kase_signals(df: pd.DataFrame,
                          period: int = 30,
                          smooth: int = 3) -> pd.DataFrame:
    """
    Kase Peak Oscillator戦略のシグナル生成
    
    Parameters:
    -----------
    df : pd.DataFrame
        OHLCVデータ
    period : int
        ルックバック期間(デフォルト: 30)
    smooth : int
        平滑化期間(デフォルト: 3)
    
    Returns:
    --------
    pd.DataFrame
        シグナルが追加されたDataFrame
    """
    df = df.copy()
    
    # True Range計算
    df['h_l'] = df['high'] - df['low']
    df['h_c'] = np.abs(df['high'] - df['close'].shift(1))
    df['l_c'] = np.abs(df['low'] - df['close'].shift(1))
    df['true_range'] = df[['h_l', 'h_c', 'l_c']].max(axis=1)
    
    # Average True Range
    df['atr'] = df['true_range'].rolling(window=period).mean()
    
    # 上昇・下降レンジ
    df['up_move'] = df['high'] - df['high'].shift(1)
    df['down_move'] = df['low'].shift(1) - df['low']
    
    # 正規化された動き
    df['up_norm'] = df['up_move'] / (df['atr'] + 0.0001)
    df['down_norm'] = df['down_move'] / (df['atr'] + 0.0001)
    
    # KPO計算
    df['kpo_raw'] = df['up_norm'].rolling(window=period).sum() - df['down_norm'].rolling(window=period).sum()
    df['kpo'] = df['kpo_raw'].ewm(span=smooth, adjust=False).mean()
    
    # 標準偏差バンド
    df['kpo_std'] = df['kpo'].rolling(window=period).std()
    df['kpo_upper'] = df['kpo_std'] * 1.5
    df['kpo_lower'] = -df['kpo_std'] * 1.5
    
    # シグナル生成
    df['kpo_prev'] = df['kpo'].shift(1)
    df['is_buy'] = (
        (df['kpo'] > df['kpo_lower']) & 
        (df['kpo_prev'] <= df['kpo_lower']) & 
        df['kpo'].notna()
    )
    df['is_sell'] = (
        (df['kpo'] < df['kpo_upper']) & 
        (df['kpo_prev'] >= df['kpo_upper']) & 
        df['kpo'].notna()
    )
    
    # 不要カラム削除
    df.drop(['h_l', 'h_c', 'l_c', 'true_range', 'up_move', 'down_move',
             'up_norm', 'down_norm', 'kpo_raw', 'kpo_prev'], axis=1, inplace=True, errors='ignore')
    
    return df

なぜこの結果になったのか(3つの理由)

  1. 1この作戦は、みんなが買っている時に「売り」、みんなが売っている時に「買う」という『逆張り』という考え方です。でも仮想通貨の世界では、勢いがついた方向にそのままついていく『順張り』の方がうまくいくことも多く、逆張りはうまくいかないことがあるんです。
  2. 25分ごとなど、短い時間で値段を見ると、本当の大きな流れとは関係ない、ちょっとした値段のブレがたくさんあります。そのため、作戦がうまく働かないことがあります。また、何回も売り買いすると、そのたびに手数料がかかってしまうのも原因の一つです。
  3. 3100回取引したら40回しか勝てない(勝率40%)という結果でした。勝つ回数が少ないだけでなく、勝った時の利益より負けた時の損失の方が大きかったため、全体として損をしてしまう結果になりました。

この結果から学べる3つの教訓

  1. 1どんな取引の作戦も、いつでもうまくいくわけではない、ということがわかりました。市場の様子や、どのくらいの時間で値段を見るかによって、うまくいく作戦は変わってくるんですね。
  2. 2何回勝ったか(勝率)だけでなく、一回ごとの勝ちや負けの金額のバランスもすごく大事だということがわかりました。
  3. 3短い時間での取引は、より注意深く「損をしないためのルール」を決めたり、市場のことをもっとよく知ったりする必要がある、ということを学びました。

リスク管理の具体的手法

取引量の決め方

一度に使うお金は、自分が持っているお金のすごく小さい一部(例えば100分の1)だけにします。そうすれば、もし負けても全体のお金へのダメージを小さくできます。

損失が大きくなったときの対処法

もし負けが続いてしまって、お金が大きく減ってしまったら、一度取引をお休みするルールを決めます。これ以上減ったらストップ、という線を引いておくことが大切です。

資金管理の方法

取引に使うお金は、もしなくなっても生活に困らないお金だけにします。そして、もし利益が出たら、その一部は使わずに貯金するなど、賢くお金を管理することが大事です。

改良案の具体的提案

  • 値段のいきおいがある方向に、そのままついていく『順張り』の考え方も取り入れて、新しい作戦を試してみます。
  • 5分ごとの動きだけでなく、15分や1時間ごとといった、もっと長い時間の値段の動きも見て、より確かな売り買いのタイミングを探すようにします。
  • 「これは本当にチャンスだ!」と思える強いサインが出た時だけ取引するようにして、むやみに取引する回数を減らします。

実用性の向上(運用上の注意)

  • この作戦の結果は、あくまで過去のデータで試したものです。未来も同じようにうまくいくとは限りません。試すときは、必ずなくなってもいいと思える少額のお金から始めましょう。
  • 取引している仮想通貨だけでなく、世の中のニュースや、他の仮想通貨がどう動いているかにも気を配ると、より良い判断ができるようになります。
  • この作戦の「買うタイミング」や「売るタイミング」は、あくまでヒントです。実際に取引するときは、最後は自分の頭で考えて判断することが大切です。

検証の透明性と信頼性

  • データの出所: この結果は、提供された過去のデータをもとに計算されています。
  • 検証のやり方: 取引回数や勝率などのデータを使って、この作戦がうまくいったかどうかを確かめています。
  • コード: コンピュータ用のプログラム(Pythonコード)が公開されているので、誰でも同じテストを試すことができます。
  • 注意事項: この説明は、投資をおすすめするものではありません。仮想通貨の取引には、お金が減ってしまうリスクがあります。取引をするときは、必ず自分でよく考えて、自分の責任で行ってください。

よくある質問

Q.この「KPO」って、どうやって『いきおい』を計算しているの?

A.最近の値段がどれくらい大きく上がったり下がったりしたかを調べて、その元気さを数字にしているんです。いわば、値段の『元気メーター』みたいなものですね。

Q.「勝率40%」ってことは、負けることの方が多いの?

A.その通りです。10回取引したら、6回は負けてしまう計算になります。だから、勝つときに大きく勝たないといけないのですが、この作戦ではそれも難しかったようです。

Q.「最大DD 88.32%」って、お金がすごく減ってるけど、どういう意味?

A.これは「一番うまくいかなかった時に、お金がどれくらい減ってしまったか」を示す数字です。もし100万円で始めていたら、一時的に12万円くらいまで減ってしまった可能性がある、ということです。これはとてもリスクが高い状態だったことを示しています。

Q.「HODL 83.98%」って何?良いことなの?

A.「HODL(ホドル)」は、仮想通貨を買ったまま、ずっと持っておくことです。この数字は「もし、この作戦で売り買いせずに、ただ持っているだけだったら、83.98%も良い結果になっていた」という意味です。つまり、今回は何もしない方がずっと良かった、ということなんですね。

Q.結局、この作戦では、いつ買ったり売ったりすればいいの?

A.ルールでは、KPOという『元気メーター』が下の基準線を下回ってから、また上に戻ってきたら「買い」、上の基準線を上回ってから、また下に戻ってきたら「売り」のサインです。でも、このサイン通りにやっても必ずうまくいくわけではないので、注意が必要ですよ。

Q.検証に使用した期間と時間足は?

A.5m足で検証しました。期間は記事内の概要をご確認ください。

Q.最終リターンと最大ドローダウンは?

A.最終リターンは-86.38%、最大DDは88.32%です。

Q.勝率やPFはどの程度?

A.勝率は40.00%、プロフィットファクターは0.56です。

Q.HODLとの比較結果は?

A.HODLは83.98%でした。記事内の比較表をご覧ください。

Q.手数料やスリッページは考慮済み?

A.はい。バックテスト設定の手数料・スリッページを損益に反映しています。

Q.市場環境はトレンド/レンジどちらに近かった?

A.期間中はトレンド優勢と推測されます。

Q.この戦略は初心者でも扱える?

A.基礎的な指標と検証環境の知識があれば扱えます。まずは少額・デモから。

Q.推奨のリスク管理は?

A.最大DDを踏まえた損切り・ポジションサイジングと、システム停止基準の設定を推奨します。

Q.将来の結果は期待できる?

A.過去の結果は将来を保証しません。市場環境やパラメータ適合性に大きく依存します。

Q.改良の方向性は?

A.トレンド・ボラティリティのフィルター併用、パラメータの再最適化、取引頻度の制御を検討してください。

著者情報