Multi-EMA Bullish Trend Strategy adalah strategi trend berikut berdasarkan pelbagai purata bergerak eksponensial (EMA) dari tempoh yang berbeza untuk penentuan trend. Ia pergi lama apabila harga pecah di atas EMA 10 hari dan EMA jangka panjang yang lain berada dalam keselarasan bullish; dan menggunakan 8% trailing stop loss untuk mengunci keuntungan.
Strategi ini menggunakan 6 EMA tempoh 10, 20, 50, 100, 150 dan 200 hari. EMA ini digunakan untuk menentukan peringkat kitaran semasa pasaran. Apabila EMA tempoh yang lebih pendek (contohnya 10 hari) menyeberangi jangka masa yang lebih lama (contohnya 20-, 50 hari), ia menandakan pasaran telah memasuki fasa penandaan trend bull.
Khususnya, strategi itu akan berlangsung lama apabila syarat-syarat berikut dipenuhi:
Selepas membuka kedudukan panjang, 8% trailing stop loss digunakan untuk mengunci keuntungan. Ini bermakna kedudukan akan disimpan terbuka selagi harga tidak jatuh lebih daripada 8% dari harga masuk. Sebaik sahaja penarikan melebihi 8%, kedudukan akan ditutup untuk menghentikan kerugian.
Ringkasnya, idea utama strategi ini adalah untuk memasuki trend bull apabila disahkan oleh penyelarasan EMA berganda, dan menggunakan stop loss untuk mengunci keuntungan.
Strategi trend lembu Multi-EMA mempunyai kekuatan utama berikut:
Terdapat juga beberapa risiko yang perlu diperhatikan untuk strategi ini:
Untuk menangani risiko ini, kita boleh mengoptimumkan dengan menyesuaikan tempoh EMA atau menggabungkan penunjuk tambahan untuk penilaian yang lebih baik.
Memandangkan ciri-ciri strategi ini, pengoptimuman masa depan boleh memberi tumpuan kepada aspek berikut:
Secara keseluruhan, Strategi Trend Bull Multi-EMA adalah sistem trend yang kukuh dan boleh dipercayai, menyeimbangkan penentuan trend dan kawalan risiko. Masih ada potensi yang besar untuk peningkatan melalui penyesuaian parameter dan pengoptimuman algoritma. Ia adalah strategi yang berkesan yang patut dicoba dan diteliti.
/*backtest start: 2023-01-15 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('SirSeff\'s EMA Rainbow', overlay=true) // Testing Start dates testStartYear = input(2000, 'Backtest Start Year') testStartMonth = input(1, 'Backtest Start Month') testStartDay = input(1, 'Backtest Start Day') testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) //Stop date if you want to use a specific range of dates testStopYear = input(2100, 'Backtest Stop Year') testStopMonth = input(12, 'Backtest Stop Month') testStopDay = input(30, 'Backtest Stop Day') testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => time >= testPeriodStart and time <= testPeriodStop ? true : false // Component Code Stop //TSP trailStop = input.float(title='Long Trailing Stop (%)', minval=0.0, step=0.1, defval=8) * 0.01 longStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - trailStop) math.max(stopValue, longStopPrice[1]) else 0 //PLOTS plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop') plot(ta.ema(close, 20)) plot(ta.ema(close, 50)) plot(ta.ema(close, 100)) plot(ta.ema(close, 150)) plot(ta.ema(close, 200)) //OPEN longCondition = ta.ema(close, 10) > ta.ema(close, 20) and ta.ema(close, 20) > ta.ema(close, 50) and ta.ema(close, 100) > ta.ema(close, 150) and ta.ema(close, 150) > ta.ema(close, 200) if longCondition and ta.crossover(close,ta.ema(close,10)) and testPeriod() strategy.entry("BUY1", strategy.long) if longCondition and ta.crossover(ta.ema(close,10),ta.ema(close,20)) and testPeriod() strategy.entry("BUY2'", strategy.long) //CLOSE @ TSL if strategy.position_size > 0 and testPeriod() strategy.exit(id='TSP', stop=longStopPrice)