
이 전략은 슈퍼 트렌드 지표를 계산하여 가격 트렌드를 판단하고, 트렌드가 변할 때 상장 또는 상하점을 설정합니다. 동시에 스톱 로즈와 스톱 포스트를 설정하여 위험을 제어합니다.
이 전략은 ta.supertrend() 함수를 사용하여 슈퍼 트렌드 지표를 계산한다. 슈퍼 트렌드 지표는 평균 실제 파장과 평균 가격을 결합하여 가격이 상승 추세 또는 하향 추세에 있는지 판단 할 수 있다. 가격이 하향 추세에서 상승 추세로 전환 할 때, ta.change() 를 통해 방향 변화를 판단하여 다중 포지션을 설정한다. 가격이 상승 추세에서 하향 추세로 전환 할 때, 공백 포지션을 설정한다.
스톱_로스와 스톱_프로트를 설정하고, 포지션 구축 후 스톱_로스와 스톱_프로트를 설정하고, 위험을 제어한다.
특히, 전략은 다음과 같은 단계로 이루어집니다.
위의 단계는 가격 추세의 변화를 효과적으로 포착하고, 적절한 시간에 포지션을 설정하고, 위험을 제어하기 위해 스톱 스톱을 설정하여, 보다 안정적인 추세 추적 전략입니다.
이 전략의 가장 큰 장점은 인적 판단 없이 가격 동향의 변화를 자동으로 추적 할 수 있다는 것입니다. 슈퍼 트렌드 지표는 가격 변동에 약간의 파동 효과를 가지고 있으며, 가격 동향을 효과적으로 식별하여 불안정한 상황에서 자주 입장을 개설하는 것을 피할 수 있습니다.
동시에, 전략은 중지 손실을 설정하고 중지 손실을 설정하여 자동으로 손실을 중지하고 단독 손실을 효과적으로 제어하고 수익을 잠금합니다. 이것은 양적 거래에 매우 중요합니다.
간단한 이동 평균 전략에 비해 이 전략은 가격 경향을 판단하는 데 더 효과적이며, 트렌디즘적인 행동을 추적하는 데 더 적합하다.
이 전략의 가장 큰 위험은 슈퍼 트렌드 지표의 파라미터 설정에 있다. 파라미터 설정이 부적절하면 전략 연산 효과가 떨어지고, 트렌드 변화의 식별 효과는 떨어진다. ATR 주기 파라미터 설정이 너무 크거나 인수 파라미터 설정이 너무 작으면 슈퍼 트렌드 지표가 가격 변동에 대한 반응이 늦어지고, 최적의 포지션 개시 시간을 놓치게 된다.
또한, 정지 지점과 정지 지점의 설정은 전략 수익에도 큰 영향을 미칩니다. 정지 거리가 너무 작으면, 쉽게 뚫릴 수 있으며, 정지 거리가 너무 크면, 이상적인 탈퇴 지점을 놓칠 수 있습니다. 이러한 매개 변수의 최적의 설정은 다른 시장 상황과 거래 유형에 따라 최적화해야합니다.
마지막으로, 모든 트렌드 추적 전략과 마찬가지로, 가격이 갑자기 반전되거나 변동 영역으로 들어가면 이 전략에 손실이 발생합니다. 이것은 엄격한 자금 관리로 제어해야합니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
슈퍼 트렌드 지표의 매개 변수를 최적화, ATR 주기 및 인수 매개 변수를 포함. 횡단 재검토를 통해 최적의 매개 변수 조합을 얻을 수 있다.
포지션 관리 메커니즘을 늘립니다. 수익률, 철회 지표의 동성에 따라 포지션을 조정할 수 있습니다.
기계 학습 모델 판단 경향을 증가 시키십시오. 모델 훈련은 가격 추세를 판단하는 데 도움이 될 수 있으며, 포지션 개시의 정확도를 향상시킬 수 있습니다.
다른 지표와 결합하여 거래 신호를 필터링하십시오. 예를 들어, 평균선, 변동률 지표와 같은 잘못된 입장을 피하십시오.
동적으로 최적화 스톱 스톱 손실 거리. 시장의 변동 정도, 포지션 크기 등에 따라 스톱 스톱 손실 파라미터를 조정할 수 있다.
이 몇 가지 방향은 전략의 수익률과 안정성을 더욱 높일 수 있습니다.
이 전략은 전반적으로 매우 실용적인 트렌드 추적 전략이다. 가격 트렌드 변화를 자동으로 추적하고 위험을 제어하기 위해 스톱 스톱을 합리적으로 설정할 수 있다. 간단한 이동 평균 전략에 비해 가격 트렌드를 판단하는 효과가 더 뛰어나고 트렌디스틱한 상황에 더 적합하다.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)
// Stop loss and profit amount
stop_loss = input(300, title="Stop Loss Amount")
profit = input (800, title="Profit Amount")
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
long_condition = ta.change(direction) <0
short_condition = ta.change(direction) >0
long_condition_1= (long_condition)?1:0
short_condition_2 = (short_condition)?1:0
stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0)
profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0)
stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0)
profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0)
if (long_condition)
strategy.entry("Michael3 Long Entry Id", strategy.long)
if (short_condition)
strategy.entry("Michael3 Short Entry Id", strategy.short)
if (strategy.position_size>0)
strategy.exit("exit_long",from_entry="Michael3 Long Entry Id",limit=profit_price_long,stop=stop_price_long)
if (strategy.position_size<0)
strategy.exit("exit_short",from_entry="Michael3 Short Entry Id",limit=profit_price_short,stop=stop_price_short)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)