HalfTrend 롱-숏 트렌드 추적 스톱-리밋 매수 전략

ATR
생성 날짜: 2024-05-17 15:45:13 마지막으로 수정됨: 2024-05-17 15:45:13
복사: 7 클릭수: 805
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

HalfTrend 롱-숏 트렌드 추적 스톱-리밋 매수 전략

간략한 설명

이 전략은 HalfTrend 지표에 기반을 두고 있으며, 상공 트렌드를 판단하여 구매 신호를 식별한다. HalfTrend 지표가 상공으로 돌아가는 경우, 이전 상공 트렌드의 HalfTrend 값 위치에서 단 한정 손실 가격으로 구매한다. 이 전략은 AmplitudeTrend 지표 ((ATR) 를 사용하여 동적으로 트렌드 판단의 폭을 조정한다.

전략 원칙

  1. HalfTrend 지표값을 계산하기 위해, 회전 주기 length와 폭 파라미트 amplitude를 설정해야 한다.
  2. 현재 종전 가격과 지난 기간의 HalfTrend 지표값을 비교하여 공평한 경향을 판단한다.
    • 종결 가격 위에 HalfTrend 지표 값의 진폭점을 통과했을 때, 트렌드는 반전한다.
    • 마감 가격 아래 HalfTrend 지표 값의 진폭점을 통과하면 트렌드가 변한다.
  3. 추세 전환 시의 HalfTrend 지표 값을 기록하여 미래의 잠재적 인 구매 위치로 사용합니다.
  4. 하프 트렌드 지표가 다시 공백을 넘어서면, 스텝 3에서 기록한 위치에서 스톱 로스 한계 가격에 입찰한다.

전략적 우위

  1. 전체적인 다공간 경향을 바탕으로 투자 방향을 판단하고, 현 상황에 최대한 적응한다.
  2. 제한 주문을 사용하여 예약 위치에서 구매하여 더 나은 거래 가격을 얻을 수 있습니다.
  3. 구매 지점은 이전 허브 트렌드 (HalfTrend) 트렌드를 기반으로 결정되었으며, 구매 지점의 낮은 보안을 보장합니다.
  4. 대폭 파라미터를 사용하여 공백성 경향을 구분하는 데 필요한 최소 대폭을 제어하여 노이즈 신호를 효과적으로 필터링 할 수 있습니다.

전략적 위험

  1. 추세는 판단에 대폭 변수에 의존하는 방향으로 바뀌고, 잘못된 변수 값은 조기 또는 늦은 주문을 초래할 수 있다.
  2. 한계 주문은 가격 변동으로 거래가 불가능할 수도 있고, 거래가 실패할 수도 있다.
  3. 상쇄상황은 구매상황과 너무 가깝게 설정되어 큰 손실을 초래할 수 있습니다.

전략 최적화 방향

  1. 진폭 변수를 최적화하여 최적의 트렌드 판단 진폭을 찾습니다. AmplitudeTrend 지표 ((ATR) 를 사용하여 진폭을 동적으로 조정할 수 있습니다.
  2. 스톱로스 구매와 동시에 테이크로스 판매를 설정하고, 적시에 수익을 잠금합니다.
  3. 스톱 로즈 위치가 더 낮게 설정되어 손실을 줄 수 있고 동시에 수익을 올릴 수 있습니다.
  4. 이동식 스톱 로직을 추가하여 가격이 유리한 방향으로 움직일 때 스톱 지점을 높이고 위험을 줄일 수 있다.

결론

반트렌드 상공 트렌드 추적 스톱 손실 제한 가격 구매 전략은 반트렌드 지표의 상공 트렌드 변화를 판단하여 구매 시기를 결정하고, 이전 상공 트렌드의 낮은 지점을 구매 위치로 사용하여 비교적 안전한 낮은 곳에서 더 많은 입주를 할 수 있습니다. 이 전략은 추세 판단, 제한 가격 표, 스톱 손실 표와 같은 일반적으로 사용되는 전략 요소를 포함하고 있으며, 위험 수익률을 높이기 위해 추가적으로 최적화 할 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("HalfTrend Stop-Limit Buy", overlay=true)

// HalfTrend indicator parameters
length = 1
amplitude = 2.0

// HalfTrend calculation
float ph = na
float pl = na
var float dir = na
var float trend = na

if na(trend)
    trend := close
    ph := high
    pl := low
    dir := na
else
    if high > ph
        ph := high
    if low < pl
        pl := low
    if close > trend and na(dir)
        dir := 1
        trend := close
        ph := high
        pl := low
    if close < trend and na(dir)
        dir := -1
        trend := close
        ph := high
        pl := low
    if dir == 1 and close < trend - amplitude
        dir := -1
        trend := close
        ph := high
        pl := low
    if dir == -1 and close > trend + amplitude
        dir := 1
        trend := close
        ph := high
        pl := low

// Buy signal based on HalfTrend
buySignal = dir == 1 and ta.valuewhen(dir == -1, trend, 0)

// Plot HalfTrend
plot(dir == 1 ? trend : na, color=color.blue, linewidth=2, title="HalfTrend Bullish")
plot(dir == -1 ? trend : na, color=color.red, linewidth=2, title="HalfTrend Bearish")

// Place a stop-limit buy order
if (buySignal)
    stopPrice = ta.valuewhen(dir == -1, trend, 0)
    strategy.entry("HalfTrend Buy", strategy.long, stop=stopPrice, comment="HalfTrend Buy")