
スマート固定額定投資戦略は,ドルコスト平均法 (DCA) に基づく長期取引システムで,基本注文とセキュリティ注文の組み合わせを設定することで,資産蓄積プロセスを最適化する.この戦略は,市場が下落するときに自動的に買い入力を増やし,既定の収益目標に達したときに全額収束し,周期的な利益を達成する.戦略の核心設計は,初期固定金額の入場,多層のセキュリティ注文,ポジション補足の動的平均コスト計算,および精密な退出メカニズムを含み,波動的な市場における長期資産蓄積に特に適している.
この戦略は,コスト均等法の核心理に基づいているが,多層のセキュリティオーダーメカニズムによって著しく強化されている. 戦略の実行プロセスは次のとおりである.
基本注文入場: ポジションがないとき,システムは,入場価格と量を記録するために,既定の固定ドル金額 ((baseOrderSize) を現在の価格で購入します.
安全命令のトリガー持仓期間中に,価格が予測された偏差パーセントを超えて下落し,最大安全注文数制限に達していない場合,システムは補仓を誘発する.
動的な注文サイズ調整: 各セキュリティオーダーの大きさは,倍数で動的に拡大され,計算式は:baseOrderSize * orderSizeMultiplier^(safetyOrderCount+1) になります.
平均コストの計算: システムでは,総コストと総量をリアルタイムで追跡し,総コストを総量で割り,平均入場料を動的に計算する.
停止退出メカニズム: 市場価格が平均コストと預定収益目標のパーセントに上昇すると,システムは自動で全ポジションをクリアし,完全な取引サイクルを完了します.
この戦略は,次の取引サイクルを開始する準備のために,すべてのカウンターと追跡変数をクリアした後にリセットする循環的な設計を採用しています.
コスト平均効果の最大化システムでは,価格が下がると自動的に買い上げられ,平均保有コストが大幅に低下し,将来の利益の余地が向上します.
リスク管理の自動化: 既定のセーフティオーダーメカニズムにより,戦略は,市場が下落したときに,前もって定義された計画に従って補足し,感情的な決定を避けることができます.
資金利用の効率化戦略は,注文の規模を倍数的に設計することで,価格が下がったときにより多くの資金を投入し,より有利な価格ポイントでより多くの資産を蓄積することができます.
収益目標の正確な管理: 平均入場価格に基づく動的ストップメカニズムで,毎回の取引サイクルで,既定の収益目標に達したときに利益をロックできるようにする.
高度なカスタマイズ性: ユーザーは,異なる市場条件と個人のリスクの好みに応じて,基本注文サイズ,偏差パーセント,最大安全注文数,注文サイズ倍数,収益目標などのパラメータを調整できます.
ビジュアル取引参照戦略: 取引意思決定を容易にするために,平均入場価格,ストップポイント価格,セーフティオーダーのトリガー価格のリアルタイムの可視化を提供します.
市場資金の消耗が減る: 継続的な下落の市場では,戦略は,特に高い注文サイズを設定するときに,すぐに利用可能な資金を消費する可能性があります. 解決策は,最大安全注文の数を合理的に設定し,市場周期に応じてベース注文サイズを調整することです.
損なしの仕組み:現在の戦略設計には,ストップ・メカニズムがないため,極端な市場条件では大きな損失を招く可能性があります. 潜在的な損失を制限するために,条件付きストップまたは時間ベースのストップを導入することが推奨されています.
パラメータ感度: 戦略の性能は,パラメータ設定に大きく依存し,不適切なパラメータの組み合わせは,不適切な結果をもたらす可能性があります. 履歴データ回帰を使用して最適なパラメータの組み合わせを見つけるのがお勧めです.
市場トレンドの識別なし: 戦略にはトレンド識別機構が含まれていないため,強い下落のトレンドに早期入場することがあります. 簡単なトレンド指標を入場フィルター条件として統合することを考慮することができます.
流動性のリスク低流動性市場では,大規模なセキュリティオーダーが滑り落ちたり,取引が困難になる可能性があります. 高流動性市場では,流動性チェックメカニズムを適用するか追加することを推奨しています.
トレンドフィルターの統合: 簡単なトレンド識別指標 (移動平均の交差点や相対強度指数など) を入場論理に統合し,強烈な下落傾向で早すぎるポジションを避ける. このような最適化は,戦略のリスク調整リターンを大幅に向上させることができる.
動態偏差のパーセント: 市場の変動動向に基づいて安全注文のトリガー偏差の割合を調整し,高変動の市場でより大きな偏差を設定し,低変動の市場でより小さな偏差を設定し,異なる市場環境に対応する.
部分停止装置: 段階的なストップメカニズムを導入し,特定の利益レベルに達すると,全額退出ではなく,部分的に平仓を許可し,一部の市場開口を維持しながら,利益の一部をロックすることができます.
リスク管理の強化: 時間または価格に基づいた条件付きのストップと最大損失の制限を追加し,極端な市場条件下での過度の損失を防ぐ.
資金管理の最適化:より複雑な資金管理アルゴリズムを導入し,固定乗数ではなく,アカウントのサイズ,市場の変動,現在の損益状態の動向に応じて注文のサイズを調整する.
制御を撤回する: 歴史的逆戻り分析に基づく自己適応パラメータ調整メカニズムを追加し,大幅な逆戻り検出時に自動的に注文サイズを小さくするか,偏差パーセントを増加させ,下落市場における資金圧力を軽減する.
スマート固定額定投資戦略は,基本注文入場と多層の安全注文補償メカニズムを組み合わせて,長期の資産蓄積のための体系的な方法を提供します. この戦略は,周期的な変動のある市場に特に適しており,価格の回転を利用してより多くの資産を蓄積し,反発時に利益をロックすることができます.
戦略の主な優位性は,単純で強力なコスト平均効果最大化機構と明確な利益目標管理にあるが,下落市場の資金消耗や停止損失機構の欠如などのリスクにも直面している.傾向フィルター,動的パラメータ調整,強化されたリスク管理機能を統合することによって,この戦略はさらに最適化され,異なる市場環境における適応性と性能を向上させることができる.
この強化されたDCA戦略は,資産を蓄積し,波動的な市場でのリスクを管理するための体系的な方法を模索している投資家にとって,信頼性の高い,カスタマイズ可能な枠組みを提供し,特に中長期の投資時間帯に適しています.
/*backtest
start: 2025-06-13 00:00:00
end: 2025-07-13 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/
//@version=5
strategy("Simple DCA Strategy", overlay=true)
// --- Strategy Inputs ---
baseOrderSize = input.float(10, "Base Order Size (USD/Quote Currency)", minval=0.01)
priceDeviation = input.float(1.0, "Price Deviation for Safety Order (%)", minval=0.1) / 100
maxSafetyOrders = input.int(5, "Maximum Safety Orders", minval=0)
takeProfit = input.float(1.0, "Take Profit (%)", minval=0.1) / 100
orderSizeMultiplier = input.float(1.5, "Order Size Multiplier", minval=1.0)
// --- Internal Variables ---
var float lastEntryPrice = na
var int safetyOrderCount = 0
var float totalQuantity = 0.0
var float totalCost = 0.0
var float averageEntryPrice = na
// --- Reset Logic for New Cycles ---
// Reset variables when no open positions (or when strategy is initialized)
if strategy.position_size == 0
lastEntryPrice := na
safetyOrderCount := 0
totalQuantity := 0.0
totalCost := 0.0
averageEntryPrice := na
// --- Entry Logic (Base Order and Safety Orders) ---
// Base Order
if strategy.position_size == 0
// Enter a long position with the base order size
strategy.entry("Base Order", strategy.long, qty=baseOrderSize / close) // Convert USD/Quote Currency to quantity
lastEntryPrice := close
totalQuantity := baseOrderSize / close
totalCost := baseOrderSize
averageEntryPrice := close
safetyOrderCount := 0
else
// Safety Order Logic
// Check if price has deviated enough and we haven't reached max safety orders
if low < lastEntryPrice * (1 - priceDeviation) and safetyOrderCount < maxSafetyOrders
currentOrderSize = baseOrderSize * math.pow(orderSizeMultiplier, safetyOrderCount + 1) // Calculate next order size
strategy.entry("SO " + str.tostring(safetyOrderCount + 1), strategy.long, qty=currentOrderSize / close)
// Update tracking variables
lastEntryPrice := close
totalQuantity := totalQuantity + (currentOrderSize / close)
totalCost := totalCost + currentOrderSize
averageEntryPrice := totalCost / totalQuantity // Recalculate average entry price
safetyOrderCount := safetyOrderCount + 1
// --- Exit Logic (Take Profit) ---
if strategy.position_size > 0
// Calculate the target price for take profit
targetPrice = averageEntryPrice * (1 + takeProfit)
// Close the position if the current price reaches the target price
if high >= targetPrice
strategy.close_all()
// --- Plotting for Visualization ---
plot(averageEntryPrice, "Average Entry Price", color=color.blue, style=plot.style_linebr)
plot(strategy.position_size > 0 ? averageEntryPrice * (1 + takeProfit) : na, "Take Profit Target", color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0 ? lastEntryPrice * (1 - priceDeviation) : na, "saftyorder", color=color.rgb(175, 91, 76), style=plot.style_linebr)