Chiến lược đột phá chéo vàng EMA nhanh và chậm là một chiến lược đơn giản và hiệu quả để theo dõi xu hướng thị trường. Nó sử dụng các chéo chéo của EMA của các chu kỳ khác nhau để tạo ra tín hiệu mua và bán. Ý tưởng cơ bản là: khi EMA chu kỳ ngắn vượt qua trên EMA chu kỳ dài hơn, một tín hiệu mua được tạo ra; khi EMA chu kỳ ngắn vượt qua dưới EMA chu kỳ dài hơn, một tín hiệu bán được tạo ra.
Chiến lược chủ yếu dựa trên việc so sánh các EMA 5 chu kỳ, 8 chu kỳ và 13 chu kỳ để tạo ra các tín hiệu giao dịch.
Điều này nhận ra hiệu quả của việc theo dõi xu hướng trung bình và dài hạn. Khi đường trung bình động chu kỳ ngắn vượt qua đường trung bình động chu kỳ dài, điều đó có nghĩa là xu hướng ngắn hạn đã trở nên tăng và có thể được mua; khi đường trung bình động chu kỳ ngắn vượt qua đường trung bình động chu kỳ dài, điều đó có nghĩa là xu hướng ngắn hạn đã trở nên giảm và nên được bán.
Những lợi thế chính của chiến lược này là:
Có một số rủi ro trong chiến lược này:
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Tóm lại, hoạt động của chiến lược đột phá chéo vàng EMA nhanh và chậm là mượt mà, các tín hiệu đáng tin cậy hơn, rút vốn không cao và nó phù hợp để theo dõi xu hướng trung và dài hạn. Kết quả chiến lược tốt hơn có thể đạt được thông qua tối ưu hóa tham số và cải thiện các quy tắc.
/*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())