
Strategi tarik balik momentum (Momentum Pullback Strategy) adalah strategi long dan pendek yang mengenal pasti nilai RSI yang melampau sebagai isyarat momentum. Tidak seperti kebanyakan strategi RSI, strategi ini mencari tarik balik pertama untuk masuk ke arah bacaan RSI yang melampau.
Ia melakukan kenaikan / penurunan pada titik penarikan semula pertama pada 5 hari EMA (biaya rendah) / 5 hari EMA (biaya tinggi) dan meletakkan kedudukan tinggi / rendah pada 12 garis K. Mekanisme tinggi / rendah bergulir ini bermaksud bahawa jika harga masuk ke susunan jangka panjang, sasaran penangguhan akan menurun dengan munculnya setiap garis K baru.
Jarak hentian yang disyorkan adalah X kali ATR harga kemasukan (boleh disesuaikan dalam parameter input pengguna).
Strategi ini mempunyai kestabilan yang kuat untuk setiap kitaran masa dan pasaran, dengan kadar kemenangan antara 60% - 70%, dan perdagangan yang menguntungkan lebih besar. Ia perlu untuk mengelakkan isyarat dalam turun naik yang disebabkan oleh berita ekonomi utama.
Hitung nilai RSI 6 hari untuk mencari titik-titik melampau di atas 90 dan di bawah 10
Apabila RSI overbought, tarik balik ke EMA 5 hari (<< garis bawah) dalam 6 garis K
Apabila RSI oversold, tarik balik ke EMA 5 hari dalam 6 garis K (gambaran tertinggi) untuk masuk kosong
Strategi keluar adalah berhenti bergerak, kedudukan panjang dengan titik tertinggi 12 garis K yang lalu sebagai sasaran keluar pertama, kemudiannya diperbaharui kepada titik tertinggi 12 garis K baru apabila garis K baru muncul, untuk mencapai keluar bergulir ≠ kosong sebaliknya, berhenti dengan titik terendah 12 garis K bergulir ≠
Jarak henti rugi adalah X kali ATR harga masuk, boleh disesuaikan.
Strategi ini menggabungkan nilai RSI yang paling tinggi sebagai isyarat momentum dan menarik balik untuk menangkap titik-titik perubahan yang berpotensi dalam trend, dengan kadar kemenangan yang tinggi.
Mekanisme penangguhan bergerak diaktifkan untuk mengunci sebahagian keuntungan berdasarkan pergerakan harga sebenar, mengurangkan penarikan balik.
Penangguhan kerugian ATR dapat mengawal kerugian tunggal dengan berkesan.
Ketahanan yang kuat, boleh digunakan untuk pelbagai pasaran dan kombinasi parameter, mudah disalin ke cakera keras.
Jika nilai ATR ditetapkan terlalu besar, ia boleh menyebabkan jarak henti terlalu jauh dan kerugian tunggal berkembang.
Jika berlaku ██ penutupan, mekanisme penutupan bergerak akan mengurangkan ruang keuntungan.
Jika anda menarik balik jarak terlalu jauh melebihi 6 garis K, anda akan terlepas masa masuk.
Jika berlaku peristiwa ekonomi besar, perdagangan mungkin mengalami titik tergelincir atau penembusan palsu.
Ujian boleh dilakukan untuk mengurangkan bilangan akar kemasukan, seperti dari 6 baris K kepada 4 baris K, meningkatkan kadar kejayaan kemasukan.
Anda boleh menguji peningkatan ATR untuk mengawal lebih jauh kerugian single stop.
Ia boleh digabungkan dengan penunjuk kapasiti kuantitatif untuk mengelakkan kerosakan yang disebabkan oleh punggung belakang.
Anda boleh masuk ke dalam permainan selepas pusingan tengah 60 minit untuk menyaring sebahagian daripada bunyi.
Strategi tarik balik dinamik secara keseluruhan adalah strategi menangkap garis pendek yang sangat praktikal. Ia menggabungkan pelbagai aspek trend, pembalikan, dan hentian, yang memudahkan operasi cakera keras, tetapi juga mempunyai Alpha tertentu.
/*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)