리소스 로딩... 로딩...

하프트렌드 스톱 리미트 구매 전략에 따른 상승 및 하락 추세

저자:차오장, 날짜: 2024-05-17 15:45:13
태그:ATR

img

####평론 이 전략은 하프트렌드 지표에 기반하여 상승과 하락 트렌드를 결정하여 구매 신호를 식별합니다. 하프트렌드 지표가 하락에서 상승으로 전환하면 이전 하락 트렌드의 하프트렌드 값에 스톱 리미트 구매 주문이 배치됩니다. 전략은 트렌드 결정에 대한 진폭 매개 변수를 동적으로 조정하기 위해 폭 트렌드 (ATR) 지표를 사용합니다.

### 전략 원칙

  1. 반트렌드 지표 값을 계산합니다. 이는 뷰백 기간 길이를 설정하고 진폭 매개 변수를 설정하는 것을 요구합니다.
  2. 현재 종료 가격을 이전 기간의 하프트렌드 지표 값과 비교하여 상승 또는 하락 추세를 결정합니다.
    • 닫기 가격이 하프트렌드 지표값을 1개의 진폭 포인트로 넘으면, 트렌드는 상승세를 나타냅니다.
    • 닫기 가격이 하프트렌드 지표 값 아래로 진폭 포인트를 넘으면 트렌드가 하향으로 변합니다.
  3. 트렌드가 하향으로 변할 때 하프트렌드 지표 값을 기록합니다. 이는 잠재적 인 미래의 구매 위치로 사용됩니다.
  4. 하프트렌드 지표가 다시 하향에서 상승으로 전환되면 단계 3에 기록된 위치에서 스톱 리미트 구매 주문을 합니다.

### 전략 장점

  1. 투자 방향을 결정하기 위한 전체 상승과 하락 추세에 기초하여 현재의 시장 상황에 최대한 적응합니다.
  2. 미리 정해진 포지션에서 더 나은 실행 가격을 달성 할 수있는 구매 제한 명령을 사용하여.
  3. 구매 지위는 이전 하프트렌드 추세에 따라 결정되며 낮은 수준에서 구매하는 것을 보장합니다.
  4. 진폭 매개 변수는 상승 추세와 하락 추세를 구별하는 데 필요한 최소 진폭을 제어하는 데 사용되며 소음 신호를 효과적으로 필터링합니다.

### 전략 위험

  1. 트렌드 반전 결정은 진폭 매개 변수에 의존하고 있으며, 부적절한 매개 변수 값은 조기 또는 지연된 주문을 초래할 수 있습니다.
  2. 리미트 오더는 가격 변동으로 인해 실행되지 않을 수 있으며 상승 움직임을 놓칠 수 있습니다.
  3. 스톱 로스 설정 포지션은 구매 포지션에 너무 가깝게 위치하여 상당한 손실을 초래할 수 있습니다.

###전략 최적화 방향

  1. 트렌드 결정에 가장 좋은 진폭을 찾기 위해 진폭 매개 변수를 최적화한다. 진폭을 동적으로 조정하기 위해 AmplitudeTrend (ATR) 지표가 사용될 수 있다.
  2. 수익을 확보하기 위해 손해를 막는 구매 주문과 함께 수익을 매각하는 주문을 설정합니다.
  3. 스톱 로스 포지션은 더 낮게 설정하여 더 큰 손실 마진을 허용 할 수 있으며 동시에 수익 잠재력을 높일 수 있습니다.
  4. 가격이 유리한 방향으로 움직일 때 Stop Loss 포지션을 올리기 위해 후속 스톱 로스 로직을 통합하여 위험을 줄입니다.

### 요약 하프트렌드 상승세와 하락세 트렌드 후 스톱-리미트 구매 전략은 하프트렌드 지표의 상승세와 하락세 트렌드의 변화에 따라 구매 시기를 결정합니다. 이전 하락세 트렌드의 낮은 지점을 구매 위치로 사용하여 비교적 안전한 낮은 수준에서 긴 포지션을 진입하는 것을 목표로합니다. 이 전략은 트렌드 결정, 제한 주문 및 스톱-손실 주문과 같은 일반적인 전략 요소를 통합하고 있으며 위험-상금 비율을 개선하기 위해 추가로 최적화 할 수 있습니다.


/*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")



관련

더 많은