Strategi pembalikan terobosan jangka pendek crossover 5EMA


Tanggal Pembuatan: 2024-01-30 15:30:19 Akhirnya memodifikasi: 2024-01-30 15:30:19
menyalin: 0 Jumlah klik: 677
1
fokus pada
1617
Pengikut

Strategi pembalikan terobosan jangka pendek crossover 5EMA

Artikel ini akan membahas tentang strategi trading reversal breakout yang didasarkan pada indikator 5EMA. Strategi ini terutama menggunakan indikator 5EMA untuk menentukan tren harga dan melakukan reversal ketika harga menembus EMA.

Tinjauan Strategi

Strategi ini adalah strategi kuantitatif garis pendek, terutama digunakan untuk perdagangan frekuensi tinggi. Strategi ini akan menilai sinyal overhead dan overhead sekaligus, dan dapat melakukan perdagangan dua arah.

Keunggulan strategi adalah menangkap peluang reversal harga garis pendek dan masuk ke dalam arena dengan cepat. Risiko terutama berasal dari kerugian yang disebabkan oleh false breakout. Risiko kerugian dapat dikurangi dengan parameter optimasi.

Prinsip Strategi

  1. Menggunakan indikator EMA 5 siklus untuk menilai tren harga jangka pendek

  2. Menentukan apakah harga telah menembus indikator EMA

  3. Jika harga naik ke bawah dan menembus EMA, maka akan ada sinyal jual.

  4. Ketika harga naik dari bawah dan menembus EMA, maka akan ada sinyal beli

  5. Tetapkan Stop Loss dan Stop Loss untuk membatasi kerugian tunggal

Karena indikator EMA dapat secara efektif menilai tren jangka pendek, peluang perdagangan dapat ditangkap dengan cepat ketika harga berbalik secara jelas. Parameter 5EMA lebih fleksibel, cepat bereaksi terhadap pasar, dan cocok untuk perdagangan frekuensi tinggi.

Keunggulan Strategis

  • Respons cepat, cocok untuk menangkap peluang perdagangan short-line pada frekuensi tinggi
  • Perdagangan dua arah, Anda dapat melakukan lebih banyak shorting sekaligus
  • Stop loss setup masuk akal, kerugian tunggal terbatas
  • Pengaturan parameter sederhana, mudah untuk mengoptimalkan kebijakan

Risiko Strategis dan Solusi

  • Risiko Penembakan Palsu yang Memicu Kerugian yang Tidak Perlu
    • Optimalkan parameter siklus EMA untuk memastikan indikator stabil
  • Frekuensi transaksi yang terlalu tinggi dapat menyebabkan kenaikan atau penurunan.
    • Batas maksimum transaksi per hari

Arah optimasi strategi

  • Optimalkan parameter indikator EMA untuk mencari kombinasi siklus optimal
  • Meningkatkan filter untuk mengurangi probabilitas penembusan palsu
  • Batas maksimum transaksi per hari
  • Menentukan arah tren dalam kombinasi dengan indikator lainnya

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi penembusan garis pendek yang sangat praktis. Menggunakan indikator EMA untuk menentukan harga yang berbalik sangat sederhana dan efektif, merupakan alat penting untuk mengukur perdagangan. Dengan parameter optimasi dan pengaturan kontrol angin, Anda dapat meningkatkan peluang strategi secara signifikan.

Kode Sumber Strategi
/*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