
이 전략은 동적 계산에 기반한 트렌드 브레이크 전략이다. 이 전략은 주식의 최고 가격과 최저 가격을 실시간으로 추적하며, 가격이 가장 최근의 주기에서 가장 높은 가격을 돌파했을 때, 상장한다. 가격이 가장 최근의 주기에서 가장 낮은 가격을 넘어갔을 때, 상장한다. 이 전략은 또한 위험을 제어하고 고정된 상장 손실을 보장하기 위해 중지 손실과 스톱을 설정한다.
이 전략의 핵심 논리는 트렌드 브레이크 포인트를 추적하고 거래하는 것입니다. 구체적으로, 전략은 최근 20 일간의 최고 가격 (highestHigh) 과 최저 가격 (lowestLow) 을 계산합니다. 오늘의 종료 가격이 전날의 최고치를 초과하면, 상승 추세의 브레이크 포인트로 간주됩니다.
더 많은 상장 후, 전략은 1%의 중지 손실과 2%의 중지 을 설정합니다. 이것은 각 거래의 이익/손실 비율이 2:1로 고정되도록 보장합니다. 이것은 단일 거래의 위험을 효과적으로 제어 할 수 있습니다.
이 전략의 가장 큰 장점은 가격 트렌드의 전환점을 신속하게 포착하면서 단일 거래의 위험을 통제하는 것입니다. 구체적으로 다음과 같은 몇 가지 장점이 있습니다.
동적으로 최고 가격과 최저 가격을 계산하고, 가격 변화의 트렌드를 실시간으로 추적하여 가격 반전의 신호를 빠르게 잡을 수 있습니다.
침투 방식으로 창고를 구축하면 가짜 신호를 줄이고 엔트리의 품질을 향상시킬 수 있다.
단편 거래의 수익과 손실 비율을 제어하고 단편 거래의 위험을 효과적으로 제어합니다.
간단하고 이해하기 쉬운 논리, 양자학 초보자 연습에 적합하다.
코드가 적고 테스트와 최적화가 쉽다.
이 전략에는 몇 가지 위험도 있습니다.
트렌드에 따라 포지션을 세우고, 가격 반전의 가장 좋은 지점을 놓칠 수 있습니다.
고정된 스톱로스를 설정하는 것은 시장의 변화에 적응하기 어렵고, 사전에 스톱로스 또는 스톱로스를 설정할 수 있다.
Strat 후기에는 계층적 진입과 입금의 논리가 설정되어 있지 않으며, 지속적인 추세를 추적할 수 없습니다.
대주기의 트렌드를 고려하지 않고, 대 트렌드와 잘못된 위치로 인해 손실이 발생할 수 있습니다.
자금 관리 모듈이 설치되지 않아 전체 포지션 관리를 제어할 수 없습니다.
이 전략은 크게 개선할 수 있습니다. 주요 개선방향은 다음과 같습니다.
동적 스톱 스톱을 추가하여 시장의 변동에 따라 스톱 스톱을 조정할 수 있습니다.
대동맥과 싸우는 것을 피하기 위해 평행선 방향에 기반한 필터링 조건을 추가하십시오.
트렌드 강도 지표 판단을 늘리고, 트렌드가 충분히 강할 때만 포장을 할 수 있도록 한다.
트렌드를 추적하고 수익을 극대화하기 위해 추가된 싱글코드 로직
자금 관리 모듈과 결합하여 포지션을 동적으로 조정하여 전반적인 위험을 제어 할 수 있습니다.
최적화 변수, 최적의 변수 조합을 찾는다.
이 전략은 전체적으로 양적 초보자 학습 및 연습에 매우 적합한 트렌드 깰 전략이다. 그것의 장점은 간단하고 이해하기 쉽다는 점이며, 위험을 제어하기 위해 손해 중지 논리를 추가한 것이다. 그러나 또한 더 많은 최적화 가능한 곳이 있으며, 더 많은 학습의 기회로 사용할 수 있다.
/*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")