전략에 따른 동적 파업 추세

저자:차오장, 날짜: 2023-12-29 17:32:10
태그:

img

전반적인 설명

이것은 브레이크아웃 전략을 따르는 동적 트렌드입니다. 실시간으로 주식의 가장 높은 가격과 가장 낮은 가격을 추적합니다. 가격이 최근 기간의 가장 높은 가격을 넘을 때, 그것은 길게 갈 것입니다. 가격이 최근 기간의 가장 낮은 가격을 넘을 때, 그것은 짧게 갈 것입니다. 한편, 손실을 멈추고 이익을 취하는 것은 위험을 제어하고 고정된 위험 보상 비율을 보장하도록 설정됩니다.

전략 논리

이 전략의 핵심 논리는 트렌드의 가격 브레이크포인트를 추적하고 거래하는 것입니다. 구체적으로, 전략은 최근 20 일 동안 가장 높은 최고와 가장 낮은 최저를 계산합니다. 오늘의 닫기 가격이 어제의 최고를 깨는 경우, 그것은 상승 트렌드 브레이크 신호로 간주되며 길게 갈 것입니다. 오늘의 닫기 가격이 어제의 최저를 깨는 경우, 그것은 하락 트렌드 브레이크 신호로 간주되며 짧게 갈 것입니다.

긴 또는 짧은 후에, 1%의 스톱 손실과 2%의 수익을 설정합니다. 이것은 각 거래에 대해 2: 1의 고정 위험 보상 비율을 보장합니다. 단일 거래의 위험을 효과적으로 제어합니다.

장점

이 전략의 가장 큰 장점은 가격 트렌드의 반전 지점을 빠르게 파악하고 동시에 각 거래의 위험을 제어하는 것입니다. 주요 장점은 다음과 같습니다.

  1. 가장 높고 가장 낮은 가격의 동적 계산, 가격 트렌드 변화의 실시간 추적, 빠르게 가격 역전 신호를 캡처 할 수 있습니다.

  2. 엔트리에 대한 분산 방법을 사용하면 엔트리의 품질이 향상됩니다.

  3. 단 하나의 거래의 위험 보상 비율을 제어하기 위해 스톱 로스 및 수익을 취하는 것은 무역 위험을 효과적으로 관리합니다.

  4. 단순하고 이해하기 쉬운 논리, 양자 초보자에게 적합합니다.

  5. 테스트와 최적화를 위해 쉬운 코드를 더 적게 사용합니다.

위험성

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

  1. 진입의 추세를 따라가는 것은 가격 반전의 가장 좋은 전환점을 놓칠 수 있습니다.

  2. 고정된 스톱 로즈와 영업이익은 시장 변화에 적응할 수 없으며, 일시적으로 스톱 아웃 또는 영업이익을 목표로 할 수 있습니다.

  3. 후속 추가 항목에 대한 피라미드 로직은 없습니다.

  4. 큰 주기를 고려하지 않는 것은 큰 추세와 충돌할 수 있기 때문에 손실을 초래할 수 있습니다.

  5. 위치 크기를 측정하는 모듈이 없어 전체 위치 관리를 제어할 수 없습니다.

최적화 방향

여전히 최적화 할 수있는 많은 공간이 있습니다. 주로 아래 방향으로:

  1. 동적 스톱 로스를 추가하고 시장 변동성에 따라 이윤을 취합니다.

  2. 주요 트렌드 충돌을 피하기 위해 이동 평균에 기반한 트렌드 방향 필터를 추가합니다.

  3. 트렌드 강도 지표를 추가하여 강한 트렌드에만 입력하도록 보장합니다.

  4. 트렌드를 따라가면서 수익을 극대화하기 위해 피라미드 로직을 추가합니다.

  5. 위치 크기를 동적으로 조정하고 전체 위험을 제어하기 위해 위치 크기 모듈과 결합합니다.

  6. 최적의 매개 변수를 찾기 위해 매개 변수를 최적화합니다.

요약

요약하자면, 이 전략은 양자 초보자가 전반적으로 배우고 연습하기에 적합합니다. 이 전략의 장점은 단순성과 이해하기 쉽고, 또한 위험을 제어하기 위해 손해를 멈추고 수익 논리를 취하는 데 있습니다. 그러나 여전히 최적화 할 수있는 많은 측면이 있으며, 추가 학습의 기회로 사용될 수 있습니다. 일반적으로, 이 전략은 초보자에게 원칙에서 응용에 이르기까지 마스터하기에 적합합니다.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trend Following Breakout Strategy with 2:1 RRR", overlay=true)

// 定义前高和前低的计算
length = input(20, minval=1, title="Length")
highestHigh = highest(high, length)
lowestLow = lowest(low, length)

// 定义买入和卖出的条件
longCondition = close > highestHigh[1] // 当前收盘价高于前一期的最高价
shortCondition = close < lowestLow[1] // 当前收盘价低于前一期的最低价

// 为了确保盈亏比为2:1,我们需要定义止损和目标价
stopLoss = input(1, title="Stop Loss %") / 100
takeProfit = stopLoss * 2

// 如果满足买入条件,进入多头
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP", "Long", profit=takeProfit * close, loss=stopLoss * close)

// 如果满足卖出条件,进入空头
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP", "Short", profit=takeProfit * close, loss=stopLoss * close)

// 绘图显示前高和前低
plot(highestHigh, color=color.green, title="Previous High")
plot(lowestLow, color=color.red, title="Previous Low")


더 많은