빠른 및 느린 EMA 황금 십자 돌파 전략은 시장 트렌드를 추적하는 간단하고 효과적인 전략입니다. 구매 및 판매 신호를 생성하기 위해 다른 주기의 EMA의 크로스오버를 사용합니다. 기본 아이디어는: 짧은 주기의 EMA가 더 긴 주기의 EMA를 넘을 때 구매 신호가 생성됩니다. 짧은 주기의 EMA가 더 긴 주기의 EMA를 넘을 때 판매 신호가 생성됩니다.
이 전략은 주로 5주기, 8주기 및 13주기 EMA를 비교하여 거래 신호를 생성합니다.
이것은 중장기 트렌드를 추적하는 효과를 실현합니다. 단기 순환 이동 평균이 긴 순환 이동 평균을 넘을 때, 단기 트렌드가 상승세를 보이며 구입할 수 있음을 의미합니다. 단기 순환 이동 평균이 긴 순환 이동 평균을 넘을 때, 단기 트렌드가 하락세를 보이며 판매되어야한다는 것을 의미합니다.
이 전략의 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
요약하자면, 빠르고 느린 EMA 황금 십자 돌파 전략의 작동은 원활하며, 신호는 더 신뢰할 수 있으며, 마감률은 높지 않으며 중장기 트렌드를 추적하는 데 적합합니다. 매개 변수 최적화와 개선된 규칙으로 더 나은 전략 결과를 얻을 수 있습니다.
/*backtest start: 2023-11-23 00:00:00 end: 2023-11-30 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © gregoirejohnb // @It is modified by ttsaadet. // Moving average crossover systems measure drift in the market. They are great strategies for time-limited people. // So, why don't more people use them? // // strategy(title="EMA Crossover Strategy by TTS", shorttitle="EMA-5-8-13 COS by TTS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.TRY,commission_type=strategy.commission.percent,commission_value=0.04, process_orders_on_close = true, initial_capital = 100000) // === GENERAL INPUTS === //strategy start date start_year = input(defval=2020, title="Backtest Start Year") // === LOGIC === short_period = input(type=input.integer,defval=5,minval=1,title="Length") mid_period = input(type=input.integer,defval=8,minval=1,title="Length") long_period = input(type=input.integer,defval=13,minval=1,title="Length") rsi_period = input(type=input.integer,defval=14,minval=1,title="Length") longOnly = input(type=input.bool,defval=false,title="Long Only") shortEma = ema(close,short_period) midEma = ema(close,mid_period) longEma = ema(close,long_period) rsi = rsi(close, rsi_period) [diplus, diminus, adx] = dmi(short_period, short_period) plot(shortEma,linewidth=2,color=color.red,title="Fast") plot(midEma,linewidth=2,color=color.orange,title="Fast") plot(longEma,linewidth=2,color=color.blue,title="Slow") longEntry = crossover(shortEma,midEma) and crossover(shortEma,longEma) //or ((shortEma > longEma) and crossover(shortEma,midEma)))and (adx > 25) shortEntry =((shortEma < midEma) and crossunder(shortEma,longEma)) or ((shortEma < longEma) and crossunder(shortEma,midEma)) plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle") plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle") plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => longEntry and time > timestamp(start_year, 1, 1, 01, 01) exitLong() => crossunder(shortEma,longEma) or crossunder(close, longEma) strategy.entry(id="Long", long=strategy.long, when=enterLong()) strategy.close(id="Long", when=exitLong()) // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => not longOnly and shortEntry and time > timestamp(start_year, 1, 1, 01, 01) exitShort() => crossover(shortEma,longEma) strategy.entry(id="Short", long=strategy.short, when=enterShort()) strategy.close(id="Short", when=exitShort())