이 전략은 트레이딩 성과를 최적화하기 위해 동적 스톱 로스 및 수익 목표와 결합하여 빠른 이동 평균 (EMA25) 과 느린 이동 평균 (EMA100) 의 크로스오버를 통해 구매 신호를 식별하는 이중 이동 평균 시스템을 기반으로 한 적응 트레이딩 시스템입니다. 이 전략은 중장기 트렌드 트레이딩에 적합한 위험 통제에 중점을 둔 브레이크아웃 트레이딩 접근 방식을 채택합니다.
전략의 핵심 논리는 세 가지 핵심 요소를 포함합니다.
이 전략은 이동 평균 크로스오버를 통해 트렌드 시작 지점을 포착하고, 역동적인 스톱 로스 및 수익 관리 메커니즘과 결합하여 유리한 리스크 보상 특성을 달성합니다. 전략 설계는 실용적인 요구 사항을 완전히 고려하고 강력한 실용성을 보여줍니다. 제안된 최적화 방향을 통해 전략의 안정성과 적응력이 더욱 향상 될 수 있습니다. 중장기 안정적인 수익을 추구하는 강력한 리스크 관용을 가진 거래자에게 적합합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with TP and SL (Buy only) and Break-even", overlay=true) // EMA sozlamalari emaFastLength = input.int(25, title="Fast EMA Length") emaSlowLength = input.int(100, title="Slow EMA Length") // Hisoblash emaFast = ta.ema(close, emaFastLength) emaSlow = ta.ema(close, emaSlowLength) // Kesishishni aniqlash bullishCross = ta.crossover(emaFast, emaSlow) // EMA 25 EMA 100 ni yuqoriga kesib o'tganda // EMA 100 tagidagi oxirgi qizil shamning tagini olish lastRedCandleLow = ta.valuewhen(close < open and close < emaSlow, low, 0) // EMA 100 pastidagi qizil shamning tagi // TP va SL darajalarini hisoblash longSL = lastRedCandleLow longTP = close + 3 * (close - longSL) // TP SL ga nisbatan 1:2 masofada // Savdoni ochish va 2% foyda bo'lganda SLni break-even ga o‘zgartirish if (bullishCross) strategy.entry("Buy", strategy.long) // Buy pozitsiyasini ochish strategy.exit("Exit Buy", "Buy", stop=longSL, limit=longTP) // SL va TP qo'yish // 2% foyda bo'lganda SLni break-even ga o'zgartirish if (strategy.position_size > 0) profitPercentage = (close - strategy.position_avg_price) / strategy.position_avg_price * 100 if (profitPercentage >= 2) strategy.exit("Exit Buy BE", "Buy", stop=strategy.position_avg_price) // SLni break-even ga o'zgartirish // Signalni ko'rsatish plotshape(bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // // TP va SL chizish // if (bullishCross) // line.new(x1=bar_index, y1=longSL, x2=bar_index+1, y2=longSL, color=color.red, width=1, extend=extend.none) // line.new(x1=bar_index, y1=longTP, x2=bar_index+1, y2=longTP, color=color.green, width=1, extend=extend.none) // label.new(bar_index, longSL, text="SL: " + str.tostring(longSL), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small) // label.new(bar_index, longTP, text="TP: " + str.tostring(longTP), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small) // EMA chizish plot(emaFast, color=color.blue, title="Fast EMA (25)") plot(emaSlow, color=color.orange, title="Slow EMA (100)") // Alert qo'shish alertcondition(bullishCross, title="Buy Signal Alert", message="EMA 25 crossed above EMA 100! Buy Signal!")