
この戦略は,MACDとRSIの二重指数フィルタリングに基づくトレンド追跡システムであり,ダイナミックストップメカニズムを統合している.この戦略は,主にMACDの交差信号によって取引機会を生成し,RSIを二次確認として使用し,リスクを制御するためにパーセンテージストップを導入している.戦略の核心は,技術指標の組み合わせを使用して取引信号の信頼性を高め,ダイナミックストップによって利益を保護することです.
戦略はMACD ((12,26,9) とRSI ((14)) を主要な指標として採用している.入場信号は同時に2つの条件を満たす必要がある:MACD金叉とRSIが超売り領域 ((デフォルト40以下) で多行,MACDデフォルトとRSIが超買い領域 ((デフォルト59以上) で空行.システムはまた,3%のダイナミックストップロスを設定し,価格が設定されたパーセントを超えて不利な方向に移動すると,自動で平行してリスクを制御する.さらに,戦略には,特定の取引時間範囲を設定する時間をフィルターする.
これは,構造が整った,論理が明確なトレンド追跡戦略である.MACDとRSIの組み合わせを使用することで,取引信号の質を効果的に向上させる.動的ストップダメージの設計は,リスクを制御するのに役立ちます.この戦略は,トレンドが明確である市場で使用するのに適していますが,特定の市場の特徴に応じてパラメータの設定を調整する必要があります.推奨された最適化方向によって,戦略の安定性と信頼性がさらに向上することができます.
/*backtest
start: 2025-02-13 10:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © eagle916
//@version=5
strategy("EAG MACD + RSI Strategy",overlay=true, initial_capital = 300, default_qty_value = 10, default_qty_type = "percent_of_equity", commission_type=strategy.commission.percent, commission_value=0.1)
// Input para el RSI
rsi_length = input.int(14, title="RSI Length", minval=1)
rsi_overbought = input.int(59, title="RSI Overbought Level", minval=1, maxval=100)
rsi_oversold = input.int(40, title="RSI Oversold Level", minval=1, maxval=100)
// Input para el MACD
macd_length = input.int(12, title="MACD Length", minval=1)
macd_overbought = input.int(26, title="MACD Overbought Level", minval=1, maxval=100)
macd_signal = input.int(9, title="MACD Signal Level", minval=1, maxval=100)
// Input para el porcentaje de pérdida (stop loss)
stop_loss_percent = input.float(3.0, title="Porcentaje de Stop Loss (%)", minval=0.1, step=0.1)
// Calcular RSI
rsi_value = ta.rsi(close, rsi_length)
// Calcular MACD
[macdLine, signalLine, _] = ta.macd(close, macd_length, macd_overbought, macd_signal)
macd_crossup = ta.crossover(macdLine, signalLine) // Cruce al alza del MACD
macd_crossdown = ta.crossunder(macdLine, signalLine) // Cruce a la baja del MACD
// Condiciones de compra y venta
buy_condition = macd_crossup and rsi_value <= rsi_oversold
sell_condition = macd_crossdown and rsi_value >= rsi_overbought
// Registrar precio de entrada
var float entry_price = na
if strategy.position_size == 0
entry_price := na
// Mostrar señales de compra y venta en la gráfica principal
plotshape(series=buy_condition, title="Señal de Compra", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Compra debajo de la vela
plotshape(series=sell_condition, title="Señal de Venta", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Venta encima de la vela
// Órdenes de estrategia
if buy_condition
strategy.entry("Compra", strategy.long)
entry_price := close
if sell_condition
strategy.entry("Venta", strategy.short)
entry_price := close
// Calcular el precio de stop loss
long_stop_loss = entry_price * (1 - stop_loss_percent / 100)
short_stop_loss = entry_price * (1 + stop_loss_percent / 100)
// Cerrar posición si el precio va en contra el porcentaje definido por el usuario
if strategy.position_size > 0 and close < long_stop_loss
strategy.close("Compra", comment="Stop Loss Compra")
if strategy.position_size < 0 and close > short_stop_loss
strategy.close("Venta", comment="Stop Loss Venta")