Sumber daya yang dimuat... Pemuatan...

Strategi Pembalikan Terobosan Jangka Pendek 5EMA

Penulis:ChaoZhang, Tanggal: 2024-01-30 15:30:19
Tag:

img

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.

Tinjauan Strategi

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.

Prinsip Strategi

  1. Menggunakan indikator EMA 5 periode untuk menentukan tren harga jangka pendek

  2. Menghakimi apakah harga menembus indikator EMA

  3. Ketika harga menembus EMA dari atas ke bawah, sinyal jual dihasilkan.

  4. Ketika harga menembus EMA dari bawah ke atas, sinyal beli dihasilkan.

  5. 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.

Keuntungan dari Strategi

  • Tanggapan cepat, cocok untuk menangkap peluang perdagangan jangka pendek dengan frekuensi tinggi
  • Perdagangan dua arah, bisa panjang dan pendek pada saat yang sama
  • Peningkatan nilai tukar rupiah (RRR)
  • Pengaturan parameter sederhana, mudah untuk mengoptimalkan strategi

Risiko dan Solusi Strategi

  • Peningkatan nilai tukar rupiah
    • Mengoptimalkan parameter siklus EMA untuk memastikan stabilitas indikator
  • Frekuensi perdagangan yang berlebihan dapat dengan mudah mengejar tinggi dan membunuh rendah
    • Batas jumlah maksimum perdagangan per hari

Optimasi Arah Strategi

  • Mengoptimalkan parameter indikator EMA untuk menemukan portofolio siklus terbaik
  • Tingkatkan filter untuk mengurangi kemungkinan pecah palsu
  • Batas jumlah maksimum perdagangan per hari
  • Menggabungkan indikator lain untuk menentukan arah tren

Ringkasan

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

Lebih banyak