
모멘텀 펄백 전략 (Momentum Pullback Strategy) 은 RSI 극한값을 모멘텀 신호로 인식하는 장단위 전략이다. 대부분의 RSI 전략과 달리, 이 전략은 극한 RSI 판독의 방향에서 첫 번째 펄백을 찾아 입찰한다.
그것은 5일 EMA (최저 가격) / 5일 EMA (최고 가격) 의 첫 번째 회수 지점에서 상부/공부하고 12개의 K선에서 최고/최저 지점을 평정한다. 이 롤링 최고/최저 지점 메커니즘은 가격이 장기 정렬에 들어간다면, 정지 목표가 각 새로운 K선 출현에 따라 낮아지게 된다는 것을 의미한다.
추천된 스톱드라이스는 입점 가격의 X배 ATR (사용자의 입력 파라미터를 통해 조정할 수 있다) 였다.
이 전략은 각 시간주기와 시장에 대한 안정성이 강하며, 승률은 60~70% 사이이며, 수익 거래 규모는 크다. 중요한 경제 뉴스로 인한 변동에서 신호를 생성하는 것을 피해야 한다.
6일 RSI 값을 계산하여 90 이상 (오버) 과 10 이하 (오버) 의 극한점을 찾으십시오.
RSI가 과매매할 때, 6K선에서 5일 EMA (최저선) 로 다시 당기
RSI가 초과할 때, 6K선에서 5일 EMA (최고선) 로 다시 당기
출전 전략은 이동 정지이며, 긴 포즈는 지난 12 K 라인의 최고점을 첫 출전 목표로 하고, 그 후 새로운 K 라인이 나타나면 새로운 12 K 라인의 최고점으로 업데이트하여, 롤링 출전을 실현한다. 공허는 반대로, 12 K 라인을 롤링하는 최저점으로 상실을 한다.
정지 거리는 입점 가격의 X배 ATR이며, 사용자 정의할 수 있다.
이 전략은 동력 신호로 RSI 극한과 회수 입구를 결합하여 트렌드에서 잠재적인 반전을 포착할 수 있으며, 승률이 높습니다.
모바일 스톱 메커니즘이 활성화되어 가격의 실제 움직임에 따라 수익의 일부를 잠금 할 수 있으며, 철수를 줄일 수 있습니다.
ATR 상쇄는 단편적 손실을 효과적으로 제어한다.
강력한 안정성, 다양한 시장과 변수 조합에 적용할 수 있으며, 하드 디스크에 쉽게 복제할 수 있다.
만약 ATR 값이 너무 커진다면, 단독 손실이 커질 수 있다.
██ 정리할 경우, 이동 중지 메커니즘은 수익 공간을 축소한다.
만약 6K선 이상 깊숙이 다면 출전 기회를 놓치게 된다.
주요 경제 사건에 직면하면 거래가 슬라이드 포인트 또는 가짜 돌파구를 겪을 수 있습니다.
입학 루트 수를 6개에서 4개의 K선으로 조정하여 입학 성공률을 높이는 테스트를 할 수 있다.
ATR 배수를 증가시키는 테스트를 할 수 있으며, 단편적 손실을 더욱 제어할 수 있다.
양적 에너지 지표가 결합되어, 배낭을 정리하는 데 따른 손실을 방지할 수 있다.
60분 레벨의 중간축을 뒤로 후 입장할 수 있으며, 일부 소음을 필터링할 수 있다.
동력 회수 전략은 전반적으로 매우 실용적인 단선 캡처 전략이다. 그것은 추세, 반전, 정지 여러 측면을 결합하여 실디스크 조작이 편리하고 알파가 있다. 파라미터를 조정하고 다른 지표와 결합하여 안정성을 더욱 향상시킬 수 있다.
/*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)