この戦略は,二重指数移動平均 (EMA) フレームワークに基づいたトレンドフォローする取引システムで,EMA20レベルでのリミット購入オーダーを実装する.これは保守的なマネーマネジメントアプローチを採用し,取引ごとにアカウントの株式の10%しか利用せず,リスク管理のために利益とストップロスのレベルを組み込む.この戦略は,市場動向を決定するために2つのEMA期間 (30日および300日) を使用し,上昇傾向の市場中にしかエントリー機会を探さない.
戦略の基本的な論理は,いくつかの重要な要素に基づいています. 1. EMA300 をトレンドフィルターとして使用し,価格が EMA300 を上回る場合にのみロングポジションを考慮し,トレード方向がメイントレンドと一致することを保証します. 2. トレンド条件が満たされた場合,EMA20レベルでの購入注文を制限し,移動平均サポートへの引き下げ中に比較的低い価格でエントリーを可能にします. 3. 決まった割合をベースとした収益率とストップ・ロスのレベルを導入し,利益目標の10%とストップ・ロスの5%にデフォルトし,リスク・リターン比が2:1以上を維持する. 4. ポジションのサイズを口座資本の10%で採用し,保守的なマネーマネジメントを通じて取引ごとにリスクの曝露を効果的に軽減します.
この戦略は,移動平均システムと厳格なリスク管理規則を組み合わせて,比較的堅牢な取引システムを創出する.その核心の強みは,トレンドをフォローする特徴と包括的なリスク管理メカニズム,保守的なマネーマネジメントを維持しながら制限オーダーを通じてエントリー価格を最適化することにある.この戦略は,さまざまな市場で劣悪なパフォーマンスを発揮することがあるが,提案された最適化方向性は,その安定性と収益性をさらに高めることができる.安定したリターンを求める投資家にとって,この定量的な取引戦略は,価値ある考慮を表す.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Limit Buy at EMA20 (Last 30 Days)", overlay=true) // Inputs for EMAs ema20Length = input.int(30, title="EMA 20 Length") ema300Length = input.int(300, title="EMA 300 Length") tpPercentage = input.float(10.0, title="Take Profit (%)", step=0.1) / 100 slPercentage = input.float(5.0, title="Stop Loss (%)", step=0.1) / 100 // Stop loss at 15% // Calculate EMAs ema20 = ta.ema(close, ema20Length) ema300 = ta.ema(close, ema300Length) // Plot EMAs plot(ema20, color=color.blue, title="EMA 20") plot(ema300, color=color.red, title="EMA 300") // Limit backtesting to the last 30 days startTime = timestamp(year(timenow), month(timenow), dayofmonth(timenow) - 30, 0, 0) if (time < startTime) strategy.close_all() strategy.cancel_all() // Entry Condition: Price above EMA300 longCondition = close > ema300 and time >= startTime // Calculate position size (10% of equity) positionSize = strategy.equity * 0.10 / ema20 // Use EMA20 as the limit price // Place a limit buy order at EMA20 if (longCondition) strategy.order("Limit Buy", strategy.long, qty=positionSize, limit=ema20) // Calculate TP and SL levels tpPrice = ema20 * (1 + tpPercentage) slPrice = ema20 * (1 - slPercentage) // Set take profit and stop loss if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Limit Buy", stop=slPrice, limit=tpPrice)