この戦略は,二重EMAとストーカスティック指標に基づくトレンドフォローする取引システムである.これは,ストーカスティック指標を使用して過買い/過売り領域のクロスオーバー信号を捕捉しながら,市場動向を決定するための移動平均を組み合わせ,リスク管理のための動的なストップ・ロストとテイク・プロフィートレベルを備えています.このアプローチは,各取引の信号信頼性と効果的なリスク・リターン管理の両方を保証します.
この戦略は,いくつかの基本的な要素に基づいています. 1. 市場傾向の方向性を決定するために50期と150期EMAを使用する 2. 過剰購入/過剰販売領域を特定するためにストカスティック指標 (14,3,3) を使用する 3. 傾向の方向にストカスティック・クロスオーバー・シグナルを探す 4. 最近の価格動向に基づいて動的ストップロスを設定する 5. 利得のレベルに対して1:2のリスク・報酬比を使用する
購入条件は次のとおりです - 50 と 150 EMA の両方を上回る閉じる価格 - 150 EMA を上回る 50 EMA ストキャスティックK値は30以下で,K線はD線を超えて
販売条件は逆です - 50 と 150 EMA の両方に低くなって閉じる - 50 EMAが150 EMAを下回る ストキャスティックK値は70以上で,K線はD線以下に交差する.
EMAは,トレンドフォローとモメントトレードを組み合わせた完全な戦略システムである. EMAシステムとストーカスティック指標の組み合わせを通じて,適切な価格レベルに入ると同時に,トレードがメイントレンドに準拠することを保証する. さらに,戦略には,ダイナミックなストップ損失と固定リスク・リターン比率を使用してリスクを制御する包括的なリスク管理メカニズムが含まれています. いくつかの固有の制限があるものの,戦略の全体的なパフォーマンスは,提案された最適化によってさらに改善できます. 実用的な応用では,トレーダーは特定の市場特性および独自のリスク偏好に応じてパラメータを調整することをお勧めします.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © quadawosanya //@version=5 //indicator("My script") //@version=5 strategy("EMA-Stochastic Strategy", overlay=true) // EMA settings ema50 = ta.ema(close, 50) ema150 = ta.ema(close, 150) // Stochastic settings kLength = 14 dLength = 3 smoothK = 3 stochK = ta.sma(ta.stoch(close, high, low, kLength), smoothK) stochD = ta.sma(stochK, dLength) // Parameters for Stop Loss and Take Profit var float stopLossLevel = na var float takeProfitLevel = na // Buy condition buySignal = (close > ema50 and close > ema150) and (ema50 > ema150) and (stochK < 30 and ta.crossover(stochK, stochD)) // Sell condition sellSignal = (close < ema50 and close < ema150) and (ema50 < ema150) and (stochK > 70 and ta.crossunder(stochK, stochD)) // Previous low for Stop Loss for Buy lowBeforeBuy = ta.lowest(low, 5) // Previous high for Stop Loss for Sell highBeforeSell = ta.highest(high, 5) // Entry and exit logic if (buySignal) stopLossLevel := lowBeforeBuy risk = close - stopLossLevel takeProfitLevel := close + 2 * risk strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", stop=stopLossLevel, limit=takeProfitLevel) if (sellSignal) stopLossLevel := highBeforeSell risk = stopLossLevel - close takeProfitLevel := close - 2 * risk strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", stop=stopLossLevel, limit=takeProfitLevel) // Plotting EMAs plot(ema50, color=color.blue, title="50 EMA") plot(ema150, color=color.red, title="150 EMA") // Visualize Buy and Sell signals plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Visualize Stop Loss and Take Profit levels plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss") plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit") plot(close)