Artikel ini akan memperkenalkan strategi perdagangan reversal jangka pendek berdasarkan indikator 5EMA. Strategi ini terutama menggunakan indikator 5EMA untuk menilai tren harga dan membalikkan perdagangan ketika harga menembus EMA.
Ini adalah strategi kuantitatif jangka pendek, terutama digunakan untuk perdagangan frekuensi tinggi. Strategi ini akan secara bersamaan menilai sinyal bullish dan bearish dan dapat diperdagangkan dalam kedua arah. Sinyal perdagangan dihasilkan ketika harga menembus indikator 5EMA, dan posisi panjang atau pendek dimasukkan sesuai dengan arah terobosan.
Keuntungan dari strategi ini adalah untuk menangkap peluang pembalikan harga jangka pendek dan dengan cepat memasuki pasar. Risiko utama berasal dari kerugian yang disebabkan oleh breakout palsu. Risiko dapat dikurangi dengan mengoptimalkan parameter.
Menggunakan indikator EMA 5 periode untuk menentukan tren harga jangka pendek
Menghakimi apakah harga menembus indikator EMA
Ketika harga menembus EMA dari atas ke bawah, sinyal jual dihasilkan.
Ketika harga menembus EMA dari bawah ke atas, sinyal beli dihasilkan.
Setel stop loss dan take profit untuk membatasi kerugian tunggal
Karena indikator EMA dapat secara efektif menentukan tren jangka pendek, ia dapat dengan cepat menangkap peluang perdagangan ketika harga menunjukkan pembalikan yang signifikan.
Secara umum, ini adalah strategi breakout jangka pendek yang sangat praktis. Menggunakan indikator EMA untuk menentukan pembalikan harga sangat sederhana dan efektif, dan merupakan alat penting untuk perdagangan kuantitatif.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m 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/ // © samscripter //@version=5 strategy("5 ema strategy",overlay = true,process_orders_on_close = true) // Choose trade direction t_dir = input.string("Both", title="Trade Direction",options=["Long", "Short", "Both"],group = 'Trade Direction Set') long_side = t_dir == "Long" or t_dir == "Both" short_side = t_dir == "Short" or t_dir == "Both" // number of trade mx_num =input.int(4,title = 'number Of trade',group = 'Maximum Number Of Trade') var hi =0.0 var lo =0.0 var group_ma1="Ema Set" //Ema 1 on_ma=input.bool(true,"Enable EMa 1 Plot On/Off" ,group =group_ma1) ma_len= input.int(5, minval=1, title="Ema Length",group =group_ma1) ma_src = input.source(close, title="Ema Source" ,group = group_ma1) ma_out = ta.ema(ma_src, ma_len) // buy and sell ema condition plot(on_ma?ma_out:na, color=color.white, title="MA") if close>ma_out and open>ma_out and low>ma_out and high>ma_out lo:=low if close<ma_out and open<ma_out and low<ma_out and high<ma_out hi:=high // condition when price is crossunder lo take sell and when price crossoing hi take buy var buyp_sl =float(na) var sellp_sl =float(na) //count number trade since day stra var count_buysell=0 if close>hi[1] if strategy.position_size==0 and count_buysell<mx_num and long_side strategy.entry('El',strategy.long,comment = 'Long') count_buysell:=count_buysell+1 buyp_sl:=math.min(low,low[1]) hi:=na if close<lo[1] if strategy.position_size==0 and count_buysell<mx_num and short_side strategy.entry('Es',strategy.short,comment = 'short') count_buysell:=count_buysell+1 sellp_sl:=math.max(high,high[1]) lo:=na //take profit multiply tpnew = input.float(title="take profit", step=0.1, defval=1.5, group='Tp/SL') //stop loss previous candle high and previous candle low buy_sl = ta.valuewhen(strategy.position_size != 0 and strategy.position_size[1] == 0,buyp_sl , 0) sell_sl= ta.valuewhen(strategy.position_size != 0 and strategy.position_size[1] == 0,sellp_sl, 0) //take profit takeProfit_buy = strategy.position_avg_price - ((buy_sl - strategy.position_avg_price) *tpnew) takeProfit_sell = strategy.position_avg_price - ((sell_sl - strategy.position_avg_price) *tpnew) // Submit exit orders if strategy.position_size > 0 strategy.exit(id='XL', stop=buy_sl,limit=takeProfit_buy,comment_loss = 'Long Sl',comment_profit = 'Long Tp') if strategy.position_size < 0 strategy.exit(id='XS', stop=sell_sl,limit=takeProfit_sell,comment_loss = 'Short Sl',comment_profit = 'Short Tp') //plot data plot(series=strategy.position_size < 0 ?sell_sl : na, style=plot.style_circles, color=color.red, linewidth=2, title="St red Stop") plot(series=strategy.position_size > 0 ?buy_sl : na, style=plot.style_circles, color=color.green, linewidth=2, title="St green Stop") // plot take profit plot(series=strategy.position_size < 0 ? takeProfit_sell : na, style=plot.style_circles, color=color.orange, linewidth=2, title="take profit sell") plot(series=strategy.position_size > 0 ? takeProfit_buy: na, style=plot.style_circles, color=color.blue, linewidth=2, title="take profit buy") if ta.change(time('D')) count_buysell:=0