트렌드 기반 손절매 이익 전략


생성 날짜: 2024-02-21 14:55:41 마지막으로 수정됨: 2024-02-21 14:55:41
복사: 0 클릭수: 629
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

트렌드 기반 손절매 이익 전략

개요

이 전략의 주요 아이디어는 주간 가격 추세에 기반하여 포트 오브 방향을 결정하는 것이며, 부진의 경우, 일조형이 나타났을 때 포트 오드에 들어갑니다. 가격이 설정한 정지점까지 올라갈 때 정지하고, 설정한 정지점까지 떨어지면 정지합니다.

전략 원칙

이 전략은 먼저 주간 트렌드를 판단하는 조건을 정의합니다.

isUptrend = close > close[1] 

isDowntrend = close < close[1]

만약 현재 종결 가격이 전날의 종결 가격보다 크다면, 이는 부진 경향으로 판단되며, 반대로 하락한다.

다음으로 일일 거래 신호를 정의합니다.

buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

즉, 하루 전날의 종결 가격이 개시 가격 (陽線) 보다 크고, 하루 전날의 개시 가격이 전날 전날의 종결 가격 (缺口) 보다 크며, 부진 추세에 있으며, 다중 입시 조건을 충족한다.

입시 후, 스톱로스는 전날의 폐장 가격으로 설정되어 전날의 실물 선의 길이를 1.382배로 다:

stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) 

스톱포인트는 전날의 매각 가격과 2배의 매각 가격의 차이로 설정된다:

takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

“이런 일이 벌어진다면,

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 추세에 기반한 거래, 역동성 상쇄의 위험을 피하기
  2. 일광선과 틈새의 조합 신호를 사용하여 초기에 출입하는 과잉 출입을 피하십시오.
  3. 단편적 손실을 통제하기 위한 합리적인 상쇄금지
  4. 더 많은 매매 공간, 더 많은 수익 잠재력

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 트렌드 전환점을 알 수 없고, 1000000000000000000000000 회전 기회를 놓칠 수도 있습니다.
  2. 이 경우, 스탠포드 주식회사 (SNCF) 는 “지난 10년 동안 가장 큰 손실을 기록했다”.
  3. 비용 통제를 고려하지 않고 거래 빈도가 너무 높으면 수익이 떨어질 수 있습니다.

이러한 위험을 통제하기 위해 다음과 같은 최적화를 고려할 수 있습니다.

  1. 스톱포인트 근처에 트레일러를 설치하여 스톱포인트를 추적합니다.
  2. 비용 제어 모듈을 추가하여 창고 개설 횟수를 제한합니다.
  3. SUPPORT/RESISTANCE에 대한 판단을 높여주세요.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 이동 평균의 방향, 거래량 변화 등과 같은 다른 요소에 따라 추세를 판단합니다.
  2. 입구 신호를 최적화하여 더 많은 K선 형태를 결합합니다.
  3. 동적 추적 중지 중지, 가격 변동에 따라 자동 조정
  4. 포지션 크기를 제어하는 양적 모듈을 추가합니다.
  5. 더 높은 수준의 트렌드 필터링을 이용한 다중 시간 주기의 조합

요약하다

이 전략은 전체적으로 실용적인 것으로, 핵심 아이디어는 트렌드 트레이딩을 강조하면서 위험을 통제한다. 일일 단선 거래의 기본 전략으로도 사용할 수 있으며, 다른 시장과 품종에 따라 모듈화 최적화하여 다양한 거래 포트폴리오를 구현할 수 있다. 실제 적용에서는 비용 통제와 위험 감축을 방지하는 데 주의를 기울이고 적절한 정신을 유지하는 것이 중요합니다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)

// Function to get previous day's close and open
getPrevDayClose() =>
    request.security(syminfo.tickerid, "D", close[1])

getPrevDayOpen() =>
    request.security(syminfo.tickerid, "D", open[1])

// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]

// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

// Strategy logic
if (isUptrend)
    strategy.entry("Buy", strategy.long, when = buyCondition)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
    
if (isDowntrend)
    strategy.entry("Sell", strategy.short)

// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)

// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)