【残念なお知らせ】ある作戦を試したら、お金が全部なくなっちゃった!
今回は、「LINK/USDT」というもので、「TEMAクロス」という特別な作戦を試してみました。これは、いつ買っていつ売ればいいか教えてくれる作戦です。でも、残念ながら結果は大失敗。持っていたお金が全部なくなってしまいました。どうしてうまくいかなかったのか、一緒に見ていきましょう。
導入と前提条件
今回は、「LINK/USDT」というもので、「TEMAクロス」という特別な作戦を試してみました。これは、いつ買っていつ売ればいいか教えてくれる作戦です。でも、残念ながら結果は大失敗。持っていたお金が全部なくなってしまいました。どうしてうまくいかなかったのか、一緒に見ていきましょう。
【検証】戦略のバックテスト概要
- 戦略名: TEMA Crossover を使用したトレンド追従戦略
- 対象銘柄: LINK/USDT
- 時間足: 5m
- 期間: 2024-08-22〜2025-08-25(367日間)
- 初期資金: $10,000
- 手数料・スリッページ: 0.1% / 0.1%
- 取引所: okx
TEMA Crossover の理論的背景
この作戦の元になった考え方は、「平均の線」を使う方法です。値段は上がったり下がったりして見にくいので、平均をとってなめらかな線にします。そうすると、これからの値段の方向がちょっと分かりやすくなるんです。短い期間の平均線が、長い期間の平均線を追い抜いたら「上がるかも!」、逆に追い抜かれたら「下がるかも!」と考えます。「TEMA」は、この「平均の線」をパワーアップさせたバージョンで、もっと早く値段の勢いをキャッチしようとするものです。
具体的な売買ルール(今回の検証)
エントリー条件
- 短い線が長い線を下から上に追い抜いたとき(「今が買い時!」のサインです)
- その前は、短い線が長い線の下にいたことを確認します(サインをはっきりさせるためです)
エグジット条件
- 短い線が長い線を上から下に追い抜いたとき(「今が売り時!」のサインです)
- その前は、短い線が長い線の上にいたことを確認します(サインをはっきりさせるためです)
リスク管理
今回の失敗を見ると、もしもの時に損を大きくしないための準備が足りなかったみたいです。例えば、「ここまで損したら、あきらめてやめる」というルール(これを「損切り」と言います)を決めておくことが、とっても大事です。また、一度にたくさんのお金を使わず、少しずつ試すことも必要でした。
再現手順(HowTo)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでLINK/USDTのOHLCVを取得して前処理
- 『TEMA Crossover』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 5028回 |
勝率 | 21.12% |
平均利益 | 0.99% |
平均損失 | -0.78% |
期待値 | -0.41% |
プロフィットファクター | 0.17 |
最大ドローダウン | 100% |
最終リターン | -100% |
シャープレシオ | -1.34 |
HODL(Buy&Hold) | 127.32% |
HODL戦略との比較
実装コード(Python)
"""
TEMA Crossover Signal
三重指数移動平均のクロスで判定するのだ。
"""
import pandas as pd
def _ema(s: pd.Series, n: int) -> pd.Series:
return s.ewm(span=n, adjust=False).mean()
def _tema(s: pd.Series, n: int) -> pd.Series:
e1 = _ema(s, n)
e2 = _ema(e1, n)
e3 = _ema(e2, n)
return 3 * (e1 - e2) + e3
def calculate_tema_signals(df: pd.DataFrame, fast: int = 9, slow: int = 30) -> pd.DataFrame:
out = df.copy()
out['tema_fast'] = _tema(out['close'], fast)
out['tema_slow'] = _tema(out['close'], slow)
pf = out['tema_fast'].shift(1)
ps = out['tema_slow'].shift(1)
out['is_buy'] = (out['tema_fast'] > out['tema_slow']) & (pf <= ps)
out['is_sell'] = (out['tema_fast'] < out['tema_slow']) & (pf >= ps)
return out
なぜこの結果になったのか(3つの理由)
- 1勝てる確率がとても低かった(21.12%):5回挑戦して、1回しか勝てなかった計算です。これではプラスにするのは難しいですよね。
- 2やるたびに少しずつ損をしていた:1回取引するごとに、平均してちょっぴりずつお金が減ってしまう状態でした。
- 3儲けたお金より、損したお金の方がずっと大きかった:稼いだ金額(利益)と損した金額(損失)を比べると、損失の方が圧倒的に大きかったことを示しています。
この結果から学べる3つの教訓
- 1線を追い抜いたら買う、という作戦は、いつもうまくいくわけじゃない:このシンプルなルールだけだと、急に値段が動いた時に対応できないことがあります。
- 2昔のデータでうまくいったからといって、安心しちゃダメ:過去のデータで「この作戦はすごい!」と思っても、未来でも同じようにうまくいくとは限りません。試す前によく調べることが大切です。
- 3「損をしない工夫」が一番大事:たとえ勝つ確率が低くても、「大きな損をしない」というルールをしっかり守れば、トータルでプラスにできる可能性もあります。
リスク管理の具体的手法
取引量の決め方
使うお金は、持っているお金のほんの少しだけにする:1回の取引で使うお金は、持っているお金全部じゃなくて、ごく一部にしましょう。例えば、「全財産の1%まで」のように決めておくと、もし負けても大きなダメージを受けません。
損失が大きくなったときの対処法
思ったよりたくさん負けちゃったら、一度ストップする:もし連敗して、想像以上に損が大きくなったら、一度すべての取引をやめて「どうしてだろう?」と冷静に考える時間を作りましょう。焦りは禁物です。
資金管理の方法
全体のお金の管理ルールを決めておく:「全部で〇〇円損したら、今月はもうおしまい」というように、お財布全体のルールを決めておくことも大事です。これがあれば、一度に全部のお金を失う最悪の事態を防げます。
改良案の具体的提案
- 他の道具と組み合わせてみる:例えば、値段の勢いを見る道具や、値動きの激しさを見る道具と一緒に使うと、もっと正確なサインが見つけられるかもしれません。
- 線の設定を変えてみる:作戦で使う線の期間(短い線を何日分にするか、長い線を何日分にするかなど)を変えてみて、もっと良い結果が出る設定を探してみるのも一つの手です。
- 「ここまで損したらやめる」ルールを絶対守る:あらかじめ決めた損失のラインを超えたら、機械的に取引をやめるルールをしっかり使うことが大切です。
実用性の向上(運用上の注意)
- この作戦だけを信じるのは危ない:あくまでヒントの一つとして考えて、他の情報も集めてから判断しましょう。
- まずは少しのお金で試してみる:いきなり大金を使うのではなく、まずはお小遣い程度の少ない金額で、この作戦が本当にうまくいくか試してみましょう。
- アツくならないこと:うまくいかなくても、「くやしいから取り返すぞ!」と焦って無茶な取引をするのはやめましょう。冷静さが大切です。
検証の透明性と信頼性
- データの出所: この実験で使ったのは、「LINK/USDT」というものの、過去の値段のデータ(5分ごとの記録)です。
- 検証のやり方: 過去のデータを使って、「もしこの作戦で取引していたら、どうなっていたかな?」というシミュレーションをしました。調べた期間は2024年8月22日から2025年8月25日までの約1年間です。
- コード: この作戦を動かすためのコンピュータープログラムは、誰でも見られるように公開されています。
- 注意事項: このお話は、あくまで昔のデータで調べた結果です。未来も同じようにうまくいくとは限りません。お金を使うときは、自分でよく考えて決めましょう。