はじめに:ストップロス、永遠の問題
定量分析トレーダーに「良いエントリーシグナルを見つける方法」の他に最も面倒な質問は何かと尋ねると、「損切りはどこに設定すればよいか」と尋ねられるでしょう。
損切りに関しては、早すぎると後悔するでしょうが、遅すぎるともっと後悔するでしょう。仮想通貨が1.4%の利益を出し、2%の利益目標に達するまで待つつもりだと満足していたのに、その後、滑り台のように下落し、-0.1%に達したところで損切りが発動してしまうのです。
さらに気が滅入るのは、これが単発の出来事ではなく、むしろ繰り返し起こるテーマであるということです。利益曲線は、まるで台本のないサスペンス映画を見ているかのように、激しく変動しています。
この記事では、実際にAIを活用したローテーション戦略に基づいて、私たちが試した様々なストップロス手法をご紹介します。ストップロスの問題で悩んでいる方々にとって、少しでも参考になれば幸いです。
戦略の背景
以下は当社の戦略フレームワークの簡単な紹介です。
- 時間指定トリガー: 一定の間隔で1回自動的に実行されます
- 通貨フィルタリング流動性の高い通貨からの選別
- トレンド認識複数期間移動平均総合スコア
- AIによる意思決定: テクニカル指標とニュースを組み合わせて取引シグナルを生成します。
- ストップロス監視数秒以内にポジションを確認し、ストップロスロジックを実行します。
この戦略は確かに有望な仮想通貨を特定し、トレンドに追従することで良好なリターンを得ることができます。しかし、仮想通貨市場は非常にボラティリティが高く、利益の大幅な減少や損失の反転につながることも少なくありません。そのため、ストップロスの問題は私たちにとって常に懸念事項となっています。そのため、私たちはストップロス対策の解決策を模索する長い道のりを歩み始めました。
オプション1: トレーリングストップ
核となるアイデア
トレーリングストップロスは最も古典的なストップロス手法です。その基本的なロジックはシンプルです。
ポジションが確立されてからの最高利益ポイントを追跡し、価格が最高ポイントから設定されたパーセンテージを超えて戻ったときにストップロスをトリガーします。
このアプローチの背後にある哲学は、「価格がどこまで上がるかは分からないが、下がり始めたら撤退すべきであることは分かっている」というものです。
キーコード
javascript
// 核心逻辑
const currentPnl = (currentPrice - entryPrice) / entryPrice; // 当前盈亏
const drawdown = maxProfit - currentPnl; // 回撤幅度
// 更新最高盈利
if (currentPnl > maxProfit) {
maxProfit = currentPnl;
_G(symbolKey, maxProfit);
}
// 触发止损
if (drawdown >= TRAILING_STOP_PERCENT) {
closePosition(coin, "移动止损");
}
メリットとデメリット
アドバンテージ:
- これにより、ある程度の利益を確保し、大幅な価格下落を防ぐことができます。
- トレンド市場で優れたパフォーマンスを発揮し、利益を継続的に獲得します。
- ロジックは単純で、バグが発生しにくいです。
欠点:
- 不安定な市場環境では、「流出」してしまうのは簡単です。
- ドローダウン範囲の設定は非常に神秘的です。
- すべての利益レベルを同じように扱うのは、十分に正確ではありません。
オプション2: 階層化されたダイナミックストップロス
核となるアイデア
ストップロスを移動するための「万能」アプローチは十分に正確ではないため、さまざまな利益レベルに基づいてさまざまな戦略を設定します。
ゲームをプレイするのと同じように、最初の村ではリスクを負うことができますが、優れた装備を備えた最大レベルのキャラクターの場合は、より慎重になる必要があります。
当社の階層化デザイン:
| 利益範囲 | ストップロスレベル | モデル |
|---|---|---|
| < 0% | -1% | 損失を防ぎ、損失を止める |
| 0% ~ 0.5% | 0% | 損益分岐点と損切り |
| 0.5% ~ 1% | +0.5% | 利益を確保し損失を止める |
| 1% ~ 1.5% | +1% | 利益を確保し損失を止める |
| 1.5% ~ 2% | +1.5% | 利益を確保し損失を止める |
| ≥ 2% | 最高点 -1.5% | 移動停止 |
キーコード
javascript
const STOP_LOSS_TIERS = [
{ minProfit: -Infinity, maxProfit: 0.0001, stopAt: -0.01 },
{ minProfit: 0.0001, maxProfit: 0.005, stopAt: 0 },
{ minProfit: 0.005, maxProfit: 0.01, stopAt: 0.005 },
// ... 更多层级
{ minProfit: 0.02, maxProfit: Infinity, trailing: 0.015 }
];
// 根据最高盈利找到对应层级,返回止损位
function calculateStopLevel(maxProfit) {
for (let tier of STOP_LOSS_TIERS) {
if (maxProfit >= tier.minProfit && maxProfit < tier.maxProfit) {
return tier.trailing ? maxProfit - tier.trailing : tier.stopAt;
}
}
}
メリットとデメリット
アドバンテージ:
- より洗練され、利益レベルに応じて異なるレベルの保護を提供します。
- 利益がない場合に大きな損失を防ぐために、ストップロス注文を使用します。
- 利益を確定させることで、徐々に心理的な安心感が生まれます。
欠点:
- 本質的には、これはトレーリングストップロス戦略の「過度に防御的な」バージョンです。
- 過度に厳格な階層化設計により、ストップロス注文がより簡単にトリガーされるようになります。
- その結果、損失は止めるべきときに止められるものの、獲得すべき利益は逃してしまうという事態が頻繁に発生します。
オプション3: 固定ストップロス(ストップロスのみ、利益確定は行わない)
核となるアイデア
トレンドフォロー戦略なので、アプローチをシンプルにし、利益確定注文のみを利用し、損切り注文のみを使用します。シンプルさと直接性は時にメリットとなります。
私は損失を抑えることだけに焦点を当てています。どれだけ稼げるかについては、ポジションをいつクローズするかを決定する AI シグナルに任せています。
エントリーシグナルを信じ、最大損失を制御することのみが必要なシナリオに適しています。
キーコード
javascript
// 简单到令人发指
if (currentPnl <= -FIXED_LOSS_PERCENT) {
closePosition(coin, "固定止损");
}
メリットとデメリット
アドバンテージ:
- 非常にシンプルなロジック、エラーの可能性は極めて低い
- 最大損失は明らかに制御可能
- 不適切な利益確定設定による早期退出
欠点:
- 利益確定の仕組みがなければ、利益が大幅に返還される可能性があります。
- 利益確定のタイミングを決定するために他のシグナルに完全に依存している
オプション4: 固定利益目標とストップロス
核となるアイデア
結果は理想的とは言えず、利益を逃すことも多々あります。ストップロスだけに頼るのは行き過ぎなので、両方の側面について考えてみましょう。
同時に、利益目標と損切り限度額を設定しています。自分がいくら欲しいのか、そしていくらまでなら耐えられるのかを分かっています。
それは非常に合理的で、成熟したトレーダーがどうあるべきかということのように思えます。
キーコード
javascript
// 止盈检查
if (currentPnl >= FIXED_PROFIT_PERCENT) {
closePosition(coin, "固定止盈");
}
// 止损检查
if (currentPnl <= -FIXED_STOPLOSS_PERCENT) {
closePosition(coin, "固定止损");
}
メリットとデメリット
アドバンテージ:
- 損益比率が明確なので統計分析が容易になります。
- 利益確定と損失ストップには明確な基準があります。
- 明確な期待を持つ戦略に適している
欠点:
- 利益目標を高く設定しすぎると、決して達成できなくなる可能性があります。
- 利益目標を低く設定しすぎると、市場の大きな動きを見逃してしまう可能性があります。
- 通貨の変動性に応じてパラメータを調整する必要があります。
オプション5:全体的な利益確定とストップロス
核となるアイデア
結果はまだ満足のいくものではありませんでした。利益確定の制限と不安定なエントリーシグナルが相まって、損益比率がマイナスになってしまいました。単一通貨ペアで確実に利益をコントロールするのは難しいため、アプローチを変えて複数の通貨ペアの統計情報を組み合わせることにします。
ストップロスとテイクプロフィットのレベルは、保有ポジション数に基づいて動的に計算されます。チーム全体が利益を上げている限り、個々のパフォーマンスは問題になりません。
たとえば、各ポジションが 100U で、3 つのポジションを保持し、利益目標が 0.1 の場合、利益目標 = 3 × 100 × 0.1 = 30U、ストップロス目標 = 3 × 100 × -0.05 = -15U となります。
キーコード
javascript
// 计算动态止盈止损额度
const profitTarget = positionCount * AMOUNT_PER_POSITION * PROFIT_RATIO;
const lossLimit = positionCount * AMOUNT_PER_POSITION * LOSS_RATIO;
// 检查总体盈亏
if (totalProfit >= profitTarget) {
closeAllPositions("止盈");
}
if (totalProfit <= -lossLimit) {
closeAllPositions("止损");
}
メリットとデメリット
アドバンテージ:
- 総合的な視点からリスクを管理する
- ストップロスとテイクプロフィットのレベルは、ポジションのサイズに基づいて動的に調整されます。
- 多様化に適した戦略
欠点:
- 1 つの暗号通貨で大きな損失が発生すると、ポートフォリオ全体にわたってストップロス注文が発動される可能性があります。
- 良いポジションが無差別に遮断される可能性があります。
- 単一の通貨が関係する状況や、通貨の数が大きく変動する状況には適していません。
オプション6:ランダムアプローチ
核となるアイデア
さまざまなストップロス方法を試した後、哲学的なジレンマに陥ることがあります。
おそらく問題は、私のストップロス方法が間違っているということではなく、そもそも自動ストップロスを使用するべきではなかったということなのでしょう。
ランダム モード: 自動ストップロスを設定せずに、AI のエントリーおよび終了信号を完全に信頼します。
適用される状況:
- AI シグナルは信頼性が高く、トレンドの反転を迅速に識別できます。
- 市場のボラティリティが非常に高いため、従来のストップロス注文では実際にはさらに大きな損失につながる可能性があります。
- ストップロス干渉を排除するための「純粋な信号」の有効性をテストします。
キーコード
javascript
if (STOP_MODE === "随缘") {
// 什么都不做,一切交给AI信号
return { status: "随缘模式", message: "不进行自动平仓" };
}
フレンドリーなリマインダー
「流れに身を任せる」モードはとても気楽に聞こえるかもしれませんが、強力なシグナルシステムとある程度の精神力が必要です。一般の人は注意して使用する必要があります。さもないと、あなた自身が「流れに身を任せる」前に、資金が流れに身を任せてしまう可能性があります。
イースターエッグのアイデア:実行レベルでの洗練されたデザイン
上記は、ストップロス注文の全体的な戦略フレームワークの概要です。ただし、実際にストップロス注文を実行する際には、より洗練された設計を実装できます。
例えばピン挿入防止ストップロス:
暗号通貨の世界では、「フラッシュクラッシュ」と呼ばれるよく知られた現象があります。これは、突然の急激な価格変動の後に急激な回復が続く現象で、特にストップロス注文を設定した人々を狙ったものです。
これに対抗するための 1 つの戦略:損失をすぐに止めるのではなく、一定期間内にストップロスラインに触れた回数をカウントし、しきい値に達した場合にのみ損失を止めます。
その論理は、単なる急騰であれば価格はすぐに回復し、真のトレンド反転であればストップロスラインに達し続けるというものです。
javascript
// 核心逻辑
let triggerCount = 0;
const THRESHOLD = 3; // 需要触及3次才真正止损
// 每次检查时
if (currentPnl <= STOP_LOSS_PERCENT) {
triggerCount++;
if (triggerCount >= THRESHOLD) {
closePosition(coin, "防插针止损");
triggerCount = 0;
}
} else {
triggerCount = 0; // 价格恢复,重置计数
}
もちろん、これにはリスクも伴います。市場が実際に暴落した場合、「確認待ち」であるため、より大きな損失を被る可能性があります。したがって、価格の急騰と急落が頻繁に起こる市場環境に適しています。
同様の洗練されたデザインは数多くありますが、中核となる考え方は同じです。全体的な戦略フレームワーク内で、特定のシナリオに合わせた最適化が行われます。
実践的な比較と結論
上記の方法をテストした結果、私たちは多少直感に反する結論に達しました。
最も単純なトレーリング ストップ ロス戦略は、このアプローチでは全体的に最も優れたパフォーマンスを発揮します。
なぜでしょう?
この戦略の目的は、将来性の高い仮想通貨を選択することであるため、一部の仮想通貨の急騰が他の仮想通貨の損失を覆い隠してしまう可能性があります。そのため、より柔軟な移動ストップロス注文によって、トレンドをより適切に捉えることができます。
しかし、これはトレーリングストップロスがあらゆる戦略に普遍的な解決策であることを意味するものではありません。私たちの結論は次のとおりです。
- **完璧なストップロスの方法はありません。**現在の市場と戦略に適した方法のみ。
- パラメータは以下に基づいて設定する必要があります通貨の特性、ボラティリティ、保有期間次のような要因の動的な調整
- 完璧なストップロスを追求する代わりに、入口信号品質を最適化
- ストップロスはリスク管理の一部ではありますが、リスク管理のすべてではありません。ポジション管理も同様に重要勝ちポジションを増やし、負けポジションを減らし、利益が出ているときは着実に前進し、損失が出ているときは速やかに撤退し、損益比率をプラスにすることを目指します。
さらなる探査の方向
正直に言うと、ストップロスの問題はまだ完全には解決されていません。現段階では、比較的受け入れられる解決策を見つけただけです。
今後も探求し続ける価値があると私たちが考える方向性はいくつかあります。
ボラティリティに基づく動的なパラメータ調整現在のストップロスのパラメータは固定されていますが、ボラティリティは通貨や市場局面によって大きく異なります。理論的には、ストップロスレベルを直近のATR(損失調整試行)に基づいて自動的に調整できれば、市場への適応性が向上するはずです。もちろん、「理論上」と「実際」の間には大きな違いが生じることがよくあります。
**通貨によって異なる戦略が使用されます。**BTCとアルトコインの価格変動は全く異なるため、同じストップロスロジックを適用するのは本質的に粗雑です。各コインの過去のボラティリティ特性に基づいて、最適なストップロス方法を自動的にマッチングさせる方が望ましいでしょう。
保持時間を考慮するポジションをオープンする際に、よりタイトなストップロスオーダーを設定することで、元本を守ることができます。ポジションの保有期間が長くなるほどトレンドは安定し、ボラティリティも高まるため、より柔軟な対応を可能にするために、より広いストップロスオーダーを設定することができます。このロジックは理にかなっているように思われますが、時間減衰関数の具体的な設計方法については、まだ検討が必要です。
より多くの信号源を組み合わせる現在、ストップロス注文は価格のみに基づいていますが、これに異常な取引量、資金調達率の変化、さらにはニュースのセンチメントなどのシグナルを組み合わせることで、「通常の引き戻し」なのか「トレンドの反転」なのかをより正確に評価できる可能性があります。もちろん、シグナルソースが増え、システムが複雑になればなるほど、問題が発生する可能性が高くなります。
これらのアイデアは現在はまだ「アイデア」の段階ですが、実際に実行に移し、成果が出次第、皆様に共有させていただきます。
結論
この時点で、「どのタイプのストップロスを使用すればよいのか」と疑問に思うかもしれません。
私の答えは次のとおりです。両方試してみてください。
あらゆる戦略には独自の「個性」があり、あらゆる市場には独自の「気質」があります。戦略と市場の相乗効果を見つける必要があります。ストップロス手法は単なるツールであり、ツールを効果的に活用するための前提条件は、それらを理解することです。
ストップロスについてもっと良いアイデアがあれば、ぜひ共有してください。結局のところ、定量取引の道を歩む私たちは、途中で間違いを犯しながら学ぶ旅人なのです。
最後に、アドバイスを一言。
損失を止めるということは、敗北を認めることではなく、次回のより良い攻撃に備えることです。
取引が成功することを祈っています!🚀
- 1









