전략 을 따르는 경향

저자:차오장, 날짜: 2023-09-25 17:50:11
태그:

전반적인 설명

노로의 트렌드 추적 전략은 가격 채널, RSI 및 보디 필터를 기반으로 한 간단한 트렌드 트레이딩 전략이다. 가격 채널을 사용하여 전반적인 트렌드를 식별하고, RSI 과잉 구매 / 과잉 판매 수준에 따라 입력하고, 추가 신호 확인을 위해 보디 필터를 사용합니다. 전략은 지수 및 외화와 같은 트렌딩 도구에 적합합니다.

전략 논리

주요 측면은 다음과 같습니다.

  1. 가격 채널은 전체 트렌드를 결정합니다. 높은 / 낮은 것을 돌아보고 형성 된 채널은 상승 추세 / 하락 추세를 정의합니다.

  2. RSI는 진입 시점에 대해 과잉 구매/ 과잉 판매를 나타냅니다. RSI 60 이상은 과잉 구매, 40 이하는 과잉 판매 구역입니다.

  3. 시체 필터는 최종 신호를 제공합니다. 소음을 피하기 위해 촛불 시체가 한 임계치를 초과하면 거래합니다.

  4. 트렌드, RSI 신호 및 보디 필터를 결합한 엔트리에 기반합니다. 상승 신호에 대한 상승 트렌드에 대한 긴 엔트리, 하락 신호에 대한 하락 트렌드에 대한 짧은 엔트리.

  5. 선택적인 배경 색상은 트렌드를 명확하게 시각화합니다.

  6. 선택적으로 거래할 수 있는 거래 시간 프레임

여러 지표가 일치하여 상대적으로 안정적인 추세를 나타냅니다.

장점

주요 장점은 다음과 같습니다.

  1. 가격 채널은 직관적으로 전체 트렌드 방향을 식별합니다.

  2. RSI는 시간 입시를 위해 과잉 구매/ 과잉 판매 수준을 효과적으로 감지합니다.

  3. 몸 필터는 신호 품질을 향상시키고 잘못된 신호를 피합니다.

  4. 여러 지표로 확인하면 정확도가 높아집니다.

  5. 간단한 지표는 곡선 부착 위험을 줄입니다.

  6. 사용자 정의 가능한 거래 시간 프레임은 유연성을 추가합니다.

  7. 최소한의 매개 변수와 함께 사용하기 쉽습니다.

  8. 배경 색상은 시각적 명확성을 제공합니다.

위험성

고려해야 할 몇 가지 위험:

  1. 가격 채널 트렌드를 잘못 파악하는 위험.

  2. 정확하지 않은 RSI 신호 위험.

  3. 신체 필터는 유효한 신호를 제거합니다.

  4. 트렌드 코리션 중 적립 위험.

  5. 잘못된 파라미터 조정으로 인한 최적화 위험.

  6. 적립된 모든 할당에서 발생하는 지위 크기 위험

  7. 거래가 아닌 자산에 적용되는 경우 기기 선택 위험

  8. 거래 시간 프레임 위험이 잘못 구성되면.

더 나은 기회

몇 가지 개선 가능성:

  1. 트레이드당 손실을 제어하기 위해 스톱 로스 전략을 추가합니다.

  2. 기기 동작에 따라 매개 변수를 최적화합니다.

  3. 트렌드 강도에 기반한 포지션 사이즈링 규칙을 포함합니다.

  4. 손실을 억제하기 위해 마감 제한을 적용합니다.

  5. 신호 검증을 위해 부피 가격 분석을 추가합니다.

  6. 매개 변수 최적화를 위한 기계 학습을 도입합니다.

  7. 자산급에 따라 특화된 매개 변수

  8. 더 많은 유연성을 위해 거래 시간 프레임 논리를 정제하십시오.

결론

노로의 트렌드 추적 전략은 가격 채널, RSI 및 신체 필터를 간단하고 실용적인 트렌드 거래 시스템으로 통합합니다. 트렌드를 따라 거래하고 역 트렌드 거래를 피할 수 있습니다. 매개 변수 최적화, 위험 통제 및 기타 개선으로 전략은 지속적으로 수익성있는 트렌드 거래 전략이 될 가능성이 있습니다.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "long")
needshort = input(true, defval = true, title = "short")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//PriceChannel 1
lasthigh = highest(close, len)
lastlow = lowest(close, len)
center = (lasthigh + lastlow) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2

//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

더 많은