[TOC]

仮想通貨市場は毎日異なる展開を見せます。今日はビットコインが上昇を牽引し、明日はイーサリアムがそれを引き継ぎ、その翌日にはZECのような無名のコインでさえ上昇に転じるかもしれません。様々なコインが上がったり下がったりを繰り返し、その焦点は目まぐるしく移り変わり、目が回ってしまうほどです。機関投資家は専門チームを擁し、24時間365日体制で市場を監視し、インサイダー情報を活用して事前にポジションを確保しています。しかし、個人投資家にとって、この急速な市場変動は、チャンスを逃すか、ピーク時に買い、罠に陥ることを意味します。
伝統的なローテーション戦略は金融分野では定番であり、機関投資家はセクターや資産のローテーションに活用し、良好な結果を得ています。しかし、問題は、伝統的なローテーションにはマクロ的な視点、つまりどのセクターが上昇し、いつ切り替えるべきかを判断する必要があることです。インサイダー情報がなく、反応速度も遅い個人投資家にとっては、基本的に直感に基づく判断となり、成功率は当然低くなります。では、AIがこれを実行したらどうなるでしょうか?AIはテクニカル指標を監視し、ニュースをクロールし、24時間365日体制で保有銘柄を分析できるため、感情的な波動に基づく衝動的な判断は不要です。本日は、Inventor Quantitative Platformのワークフローを用いて、このようなAIローテーションシステムを実装し、その完全な実装ロジックを皆さんと共有します。

この AI 搭載ホイール システムの核となる設計コンセプトは次のとおりです。テクニカル指標でスクリーニングを行い、ニュース分析で検証を行い、AI で最終的なゲートキーピングを行います。システム全体は 3 つのコア モジュールに分かれています。
このシステムはまず、流動性の高い各仮想通貨(24時間取引量順)を、複数期間の移動平均システムを用いてスコアリングします。このスコアリングシステムは、以下の3つの側面から構成されています。
移動平均線パターン(アレンジメントスコア:-4~+4)
移動平均乖離間隔(gapScore)
移動平均時系列の変化(timeSeriesScore: -4 ~ +4)
最終総合スコアの計算式:
\[ \text{スコア} = \text{拡散間隔} \times \text{配置パターンスコア} \times \text{時系列変動スコア} \]
この式の優れた点は次のとおりです。スコアは、3 つの指標すべてが同時に共鳴した場合にのみ重要になります。移動平均線がきちんと揃っていても、それらの間隔が狭まっている場合は、トレンドが弱まっていることを示し、スコアはあまり高くなりません。
1. マルチサイクル設計
var s = exchange.GetRecords(processedSymbol, wheelPeriod / 4); // 短期
var ms = exchange.GetRecords(processedSymbol, wheelPeriod / 2); // 中短期
var ml = exchange.GetRecords(processedSymbol, wheelPeriod * 2); // 中长期
var ls = exchange.GetRecords(processedSymbol, wheelPeriod * 4); // 长期
wheelPeriod=60 分の場合、実際の時間枠は 15 分、30 分、120 分、240 分となり、短期、中期、長期のトレンドをカバーします。
2. 配置パターンの採点ロジック
if (bullCount == 3) {
arrangementScore = 4; // 完美多头排列
} else if (bearCount == 3) {
arrangementScore = -4; // 完美空头排列
} else if (bullCount == 2) {
// 连续的两个条件得分更高
if ((compare1 > 0 && compare2 > 0) || (compare2 > 0 && compare3 > 0)) {
arrangementScore = 3;
} else {
arrangementScore = 2;
}
}
ここでの設計では、移動平均の連続した配置はより明確な傾向を示すため、散在した配置よりも高いスコアが得られます。
3. 総合スコアの非線形設計
if (gapScore > 0) {
comprehensiveScore = gapScore * arrangementScore * timeSeriesScore;
} else if (gapScore < 0) {
comprehensiveScore = gapScore * Math.abs(arrangementScore) * Math.abs(timeSeriesScore);
}
この設計により、次のことが保証されます。
システムは次の 2 つの通貨セットを自動的に除外します。
しかし、ここには重要な設計要素があります。特定のコインですでにロングポジションを保有している場合、システムはそれがトップ 5 に入っていなくてもそれをポジティブ グループに追加します。ポジションを保有していない場合も同様です。これは、AIが保有資産を継続的に監視し、損切りやポジションの反転が必要かどうかを判断できるようにするためです。
技術的なシグナルだけでは不十分で、市場を理解することも必要です。なぜ仕組みはこうです。システムは、各暗号通貨の最新のニュース5件を(CryptoCompare API経由で)自動的に取得します。これには、プロジェクトの進捗状況、機関の活動、規制に関するニュースなどが含まれます。
ニュース報道の役割はテクニカルシグナルの信頼性を検証する:
ニュースの取得には遅延や欠落が発生する可能性があることにご注意ください(APIの制限、人気のない暗号通貨など)。ただし、システムの設計原則は次のとおりです。ニュースは必須ではなく補足的なものです。ニュースが欠落している場合、AIは「ニュースが欠落、純粋に技術的な判断」とラベル付けし、その後、テクニカル指標と保有状況に基づいて判断を下します。
これがシステム全体の魂です。AIは戦略の主たる実行者ではありませんが…監督コンサルタント—技術的なシグナルでは捉えられないリスクを特定するために、重要な瞬間に第 2 層の判断を提供します。
システムは AI に以下の情報をすべて伝えます。
AI は次の 3 つの主要なシナリオを処理する必要があります。
シナリオ1: ポジションを保有していない → ポジションを保有するかどうかを決定する
| 技術的な信号強度 | ニュース報道 | リスク | AIによる意思決定 |
|---|---|---|---|
| 強い(絶対スコア > 0.05) | 支持/中立/ニュースなし | なし | オープンロング/オープンショート |
| 強力 | 矛盾 | なし | 様子を見よう |
| 弱い(<0.02) | どれか | なし | 様子を見よう |
シナリオ2:同じ方向のポジションを保持する→保持を継続するかどうかを決定する
ここで「同じ方向」とは、ポジションの方向がテクニカルシグナルと一致していることを意味します(例:ロングポジションを保有しており、テクニカル指標が強気トレンドを示している場合)。システムは「ロングポジションを保有しているが、指標の強さは上位ではない」という状況を明確にマークします。これは、このロングポジションが依然として強気ポジションのリストに載っているものの、上位5位には入っておらず、トレンドが弱まっていることを意味します。
| 信号状態 | ニュース報道 | 利益と損失 | AIによる意思決定 |
|---|---|---|---|
| 最初の5つ/最後の5つ | 安定/サポートあり/ニュースなし | どれか | 所有 |
| 最初の5つ/最後の5つ | ターンアラウンド/マイナス要因 | 利益 | 平仓 |
| トップではない | 安定/ニュースなし | 利益 | 保持(観察) |
| トップではない | 安定/ニュースなし | 損失 | ポジションをクローズする(損切り) |
| トップではない | ターンアラウンド/マイナス要因 | どれか | 平仓 |
シナリオ3: ポジションの反転 → ポジションをクローズ/反転するかどうかを決定する
これはAIスーパーバイザーです。コアバリューシナリオリバースポジションとは、テクニカルシグナルと反対方向に保持されるポジションを指します(例:テクニカル指標が弱気になったにもかかわらずロングポジションを保持する)。
| スコアの絶対値 | ニュース報道 | AIによる意思決定 |
|---|---|---|
| 強い (>0.05) | 取り消しを確認 | 逆ポジション(前のポジションをクローズした後に逆ポジションを開く) |
| 強い (>0.05) | 中立/ニュースなし | バックハンド |
| 強い (>0.05) | 矛盾 | ポジションのクローズ(テクニカルとニュースが矛盾する場合の保守的なアプローチ) |
| 中(0.02~0.05) | 取り消しを確認 | バックハンド |
| 中(0.02~0.05) | 中立/ニュースなし | ポジションをクローズ(信号が十分強くない) |
| 中(0.02~0.05) | 矛盾 | 平仓 |
| 弱い(<0.02) | どれか | 保留(観測、信号が弱すぎる) |
バックハンド操作の厳しい条件(同時に条件を満たす必要があります):
方向が間違っている場合は修正してください。強いシグナル+反転確定=断固としてポジションを反転します。強いシグナル+矛盾するニュース=保守的にポジションをクローズします。中程度のシグナル=ニュースで裏付けられた場合にのみポジションを反転し、そうでない場合はポジションをクローズします。弱いシグナル=観察を続け、操作を急がないでください。
AIが出力する判定形式は以下のとおりです。
[
{
"symbol": "BTCUSDT",
"currentPosition": "无持仓",
"score": 0.0856,
"newsAnalysis": "机构增持,生态扩张",
"overallJudgment": "技术多头强劲,新闻面支持,开多",
"decision": "开多"
},
{
"symbol": "ETHUSDT",
"currentPosition": "持有空仓",
"score": 0.0623,
"newsAnalysis": "质押增加,资金流入",
"overallJudgment": "反向持仓亏损,技术已转多,止损",
"decision": "平仓"
}
]
AIが判断を下した後、システムは自動的に取引を実行します。これは…固定金額取引機構:
各取引を100 USDTに設定すると、コインの価格が100 USDTであっても10,000 USDTであっても、システムは100 USDTに基づいていくつの契約を開くべきかを計算します。計算式は以下のとおりです。
合约张数 = 金额(U) / 当前价格 / 合约面值(CtVal)
例えば:
システムが自動的に処理します:
これを行うと、2 つの利点があります。
取引実行後もリスク管理は必要です。このシステムでは…独立トレーリングストップこれはメイン戦略とは別であり、ポジションの高頻度チェックを 1 秒ごとに実行します。
トレーリング ストップは単なる固定ストップではなく、次のような特徴があります。未実現利益を保護し、利益を上げます。。
ワークフロー:
コード実装:
function monitorPositionWithTrailingStop(coin) {
const pos = getPosition(coin); // 获取持仓
if (!pos) return;
const currentPnl = calculatePnl(pos); // 当前盈亏百分比
// 获取历史最高盈利
const symbolKey = `${coin}_USDT.swap_maxprofit`;
let maxProfit = _G(symbolKey);
// 如果当前盈利更高,更新最高盈利
if (maxProfit === null || currentPnl > maxProfit) {
maxProfit = currentPnl;
_G(symbolKey, maxProfit);
Log(`📈 ${coin} 更新最高盈利:${(maxProfit * 100).toFixed(2)}%`);
}
// 计算回撤
const drawdown = maxProfit - currentPnl;
// 触发止损
if (drawdown >= CONFIG.TRAILING_STOP_PERCENT) {
closePosition(coin, pos, "移动止损");
_G(symbolKey, null); // 清除记录
}
}
暗号通貨市場は非常に不安定なため、メイン戦略は 4 時間に 1 回しか実行されない可能性があります (暗号通貨を再選択し、開始および終了ポジションを決定するため)。ただし、ストップロス注文を出す必要があります…リアルタイム保護4時間待って確認すると、利益が既に返還されている可能性があります。そのため、ストップロスシステムは独立したワークフローであり、メイン戦略と並行して15秒ごとに実行されます。
戦略は自動的に実行されますが、その内容を把握する必要があります。システムは3つの監視テーブルで構成されています。

全体の損益やシステム状況が一目でわかります。

この表から次のことがわかります。

この表は次のことを示します。
これら 3 つのテーブルを使用すると、システムが何を実行しているか、なぜ実行しているか、そして結果はどのようなものであるかをいつでも確認できます。
完璧な戦略というものは存在せず、このシステムにも明らかな限界があります。
大規模モデル機能は非常に強力で、ほとんどの場合に優れたパフォーマンスを発揮しますが、極端な市場状況下では誤った判断が生じる可能性があります。。
例えば:
結局のところ、AIは過去のデータから学習するので、前例のない状況(ブラックスワンイベント)に直面すると混乱する可能性があります。
このシステムは公開ニュースAPIからデータを取得します。主要ニュースが発表されてから最初の数分間は取得されない可能性があり、データを取得する頃には価格が既に変動している可能性があります。
例えば:
これはすべての自動化システムに共通する問題です。内部情報は常に公開情報よりも早く入手できます。
移動平均とトレンドはすべて過去の価格計算を行うと、予期しないイベントに対する応答が常に遅くなります。
例えば:
したがって、このシステムはより適しているトレンドに従う不適切転換点を掴むその利点は、トレンドが形成された後に着実にそれを追うことができることですが、底値で買ったり、高値で売ったりすることはできません。
固定額取引ではリスクは管理可能ですが、次のようなことも意味します。
アカウント残高が10,000 USDTから50,000 USDTに増加した場合、理論的には取引金額も増加するはずですが、システムは自動的に調整しません。手動で変更する必要があります。$vars.Amount変数。
coinNumber選択された流通量の多い通貨の数wheelPeriod移動平均計算期間パラメータmeanPeriod移動平均期間Amount取引あたりの金額lossPercentトレーリングストップ比率このシステムには改善できる点がまだたくさんあります。
現在の金額は固定金額ですが、以下のように変更できます。
単一の大きなモデルに頼るのではなく、3〜5 個のモデルを使用して同時に判断を下します。
トランザクションは大多数のモデルが同意した場合にのみ実行されるため、単一のモデルによる誤判断のリスクが軽減されます。
価格やニュースに加えて、次のものも追加できます。
これらのデータは、テクニカル指標よりも早くトレンドの変化を反映することがよくあります。
現在のトレーリング ストップは固定のパーセンテージであり、次のように最適化できます。
各取引の損益を記録し、分析します。
履歴データを使用してパラメータを最適化します。
これで、このAI駆動型ローテーションシステムの背後にあるロジックの完全な説明は終わりです。テクノロジースクリーニングからニュース検証、AIによる意思決定から取引執行、トレーリングストップロス注文から視覚的な監視まで、それぞれのステップに独自の設計哲学が存在します。
しかし、私は再度強調しなければなりません。いかなる戦略も単なるツールに過ぎません。市場は複雑で、予測できない要素が多すぎます。。
このシステムでは次のことが可能です。
このシステムでは以下のことはできません。
私たちには、このツールを有効活用し、自身のリスク許容度、資金管理、そしてマインドセットのコントロールと組み合わせて、完全な取引システムを構築することが求められます。このシステムの完全なソースコードは、発明者の定量分析プラットフォーム上でオープンソース化されています。ご質問や改善のご提案がございましたら、コミュニティでお気軽に議論してください。共に定量分析取引の可能性を探求し、この不安定な市場で自分だけのリズムを見つけましょう。
危険性についてのヒントこの記事は技術的な情報共有のみを目的としており、投資アドバイスではありません。暗号通貨取引には大きなリスクが伴います。慎重に判断し、ご自身の資産の範囲内で投資してください。
この記事に付随するコードはオープンソースです。完全なワークフローについては、Inventor Quantitative Platform をご覧ください: https://www.fmz.com/strategy/524103