Strategi Pullback Momentum mengenal pasti bacaan RSI yang melampau sebagai isyarat momentum untuk strategi panjang / pendek. Tidak seperti kebanyakan strategi RSI, ia melihat untuk membeli atau menjual pullback pertama ke arah bacaan RSI yang melampau.
Ia memasuki panjang / pendek pada penarikan semula pertama ke EMA 5 tempoh (rendah) / EMA 5 tempoh (tinggi) dan keluar pada tinggi / rendah 12 bar bergulir. Ciri tinggi / rendah bergulir bermaksud sasaran keuntungan akan mula berkurangan dengan setiap bar baru jika harga memasuki penyatuan yang berpanjangan. Perdagangan terbaik cenderung berfungsi dalam 2-6 bar.
Stop loss yang dicadangkan adalah X ATR (boleh disesuaikan dalam input) dari harga kemasukan.
Strategi ini agak kukuh di seluruh jangka masa dan pasaran dengan kadar kemenangan 60% -70% dan perdagangan yang menang yang lebih besar. Isyarat yang berlaku dari turun naik berita harus dielakkan.
Mengira RSI 6 tempoh dan mengenal pasti nilai di atas 90 (terlalu dibeli) dan di bawah 10 (terlalu dijual).
Apabila RSI terlalu banyak dibeli, pergi panjang untuk menarik balik ke EMA 5 tempoh (rendah) dalam 6 bar.
Apabila RSI terlalu banyak dijual, pergi pendek pada pullback ke EMA 5 tempoh (tinggi) dalam 6 bar.
Strategi keluar adalah mengambil keuntungan bergerak, dengan sasaran awal adalah tertinggi tertinggi / terendah terendah dari 12 bar yang lalu, mengemas kini pada setiap bar baru untuk keluar bergolak.
Stop loss ialah X ATR dari harga masuk (boleh disesuaikan).
Strategi ini menggabungkan RSI yang melampau sebagai isyarat momentum dan entri tarik balik untuk menangkap titik pembalikan yang berpotensi dalam trend, dengan kadar kemenangan yang tinggi.
Mekanisme mengambil keuntungan bergerak mengunci keuntungan separa mengikut tindakan harga sebenar, mengurangkan pengeluaran.
Hentian ATR membantu mengawal kerugian perdagangan tunggal dengan berkesan.
Kekuatan yang baik untuk digunakan di pasaran dan set parameter yang berbeza untuk mereplikasi perdagangan sebenar yang mudah.
Stop loss yang terlalu luas jika pengganda ATR ditetapkan terlalu tinggi, meningkatkan kerugian setiap perdagangan.
Memindahkan mekanisme mengambil keuntungan boleh mengurangkan margin keuntungan jika penyatuan berpanjangan berlaku.
Perdagangan yang hilang jika pulback melebihi 6 bar.
Kemungkinan tergelincir atau berita palsu jika peristiwa berita utama berlaku.
Ujian memendekkan bilangan bar masuk dari 6 kepada 4 untuk meningkatkan kadar masuk.
Uji meningkatkan pengganda ATR untuk kehilangan kawalan lebih lanjut setiap perdagangan.
Menggabungkan penunjuk jumlah untuk mengelakkan kerugian daripada perbezaan dalam penyatuan.
Masuk pada rehat tarik balik 60 minit di titik tengah untuk menapis bunyi bising.
Strategi Pullback Momentum adalah pendekatan pembalikan purata jangka pendek yang sangat praktikal, menggabungkan unsur-unsur trend, pembalikan dan pengurusan risiko untuk perdagangan sebenar yang mudah sambil masih membawa potensi penjanaan alpha. Peningkatan kestabilan lebih lanjut mungkin melalui penyesuaian parameter dan menggabungkan penunjuk tambahan.
/*backtest start: 2022-12-05 00:00:00 end: 2023-12-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Marcns_ //@version=5 strategy("M0PB", commission_value = 0.0004, slippage = 1, initial_capital=30000) // commision is equal to approx $3.8 per round trip which is accurate for ES1! futures and slippage per trade is conservatively 1 tick in and 1 tick out. // *momentum pull back* // // long / short strategy that identifies extreme readings on the rsi as a *momentum signal* //Strategy buys/ sells a pullback to the 5ema(low)/ 5ema(high) and exits at rolling 12 bar high/ low. The rolling high/ low feature means that //if price enters into a pronlonged consolidation the profit target will begin to reduce with each new bar. The best trades tend to work within 2-6 bars // hard stop is X atr's from postion average price. This can be adjusted in user inputs. // built for use on 5 min & 1min intervals on: FX, Indexes, Crypto // there is a lot of slack left in entries and exits but the overall strategy is fairly robust across timeframes and markets and has between 60%-70% winrate with larger winners. // signals that occur from economic news volatility are best avoided. // define rsi r = ta.rsi(close,6) // find rsi > 90 b = 0.0 if r >= 90 b := 1.0 else na // find rsi < 10 s = 0.0 if r <= 10 s := -1.0 else na // plot rsi extreme as painted background color bgcolor(b ? color.rgb(255, 82, 82, 49): na) bgcolor(s? color.rgb(76, 175, 79, 51): na) // exponential moving averages for entries. note that source is high and low (normally close is def input) this creates entry bands //entry short price using high as a source ta.ema(high,5) es = ta.ema(high,5) //entry long price using low as a source ta.ema(low,5) el = ta.ema(low,5) // long pullback entry trigger: last period above ema and current low below target ema entry let = 0.0 if low[1] > el[1] and low <= el let := 1.0 else na //short entry trigger "" set = 0.0 if high[1] < es[1] and high >= es set := -1.0 else na // create signal "trade_l" if RSI > 90 and price pulls back to 5ema(low) within 6 bars trade_l = 0.0 if ta.barssince(b == 1.0) < 6 and let == 1.0 trade_l := 1.0 else na plot(trade_l, "l_entry", color.green) //create short signal "trade_s" if rsi < 10 and prices pullback to 5em(high) wihthin 6 bars trade_s = 0.0 if ta.barssince(s == -1.0) < 6 and set == -1.0 trade_s := -1.0 else na plot(trade_s, "s_entry", color.purple) // define price at time of trade_l signal and input value into trade_p to use for stop parems later trade_p = strategy.position_avg_price //indentify previous 12 bar high as part of long exit strat // this creates a rolling 12 bar high target... a quick move back up will exit at previous swing high but if a consolidation occurs system will exit on a new 12 bar high which may be below prev local high ph = ta.highest(12) // inverse of above for short exit strat - previous lowest low of 12 bars as exit (rolling) pl = ta.lowest(12) // 1.5 atr stop below entry price (trade_p defined earlier) as part of exit strat atr_inp = input.float(2.75, "atr stop", minval = 0.1, maxval = 6.0) atr = ta.atr(10) stop_l = trade_p - (atr* atr_inp) stop_s = trade_p + (atr* atr_inp) //strat entry long strategy.entry("EL", strategy.long, 2, when = trade_l == 1.0) //strat entry short strategy.entry("ES", strategy.short, 2, when = trade_s == -1.0) //strat long exit if strategy.position_size == 2 strategy.exit(id = "ph", from_entry = "EL", qty = 2, limit = ph) if strategy.position_size == 2 strategy.close_all(when = low[1] > stop_l[1] and low <= stop_l) // strat short exit if strategy.position_size == -2 strategy.exit(id = "pl", from_entry = "ES", qty = 2, limit =pl) if strategy.position_size == -2 strategy.close_all(when = high[1] < stop_s[1] and high >= stop_s) // code below to trail remaining 50% of position // //if strategy.position_size == 1 //strategy.exit(id ="trail", from_entry = "EL", qty = 1, stop = el)