간단한 트레일링 스톱 & 구매 전략

저자:차오장, 날짜: 2024-01-19 14:30:59
태그:

img

전반적인 설명

이 전략은 간단한 비율 기반의 트레일링 스톱과 트레일링 구매를 구현합니다. 시간 프레임과 차트에서 다른 비율 조합을 실험함으로써 전략 매개 변수를 최적화 할 수 있습니다.

전략 논리

이 전략은 주로 두 가지 메트릭을 사용하여 트래일링 스톱 로스 및 트래일링 구매를 달성합니다.

  1. 트레일링 스톱 라인 (TSL): 사용자에 의해 설정된 종료 가격과 스톱 손실 오프셋 비율의 최근 N 바를 기반으로 계산됩니다. 가격이 이 라인 아래에 떨어지면 스톱 손실을 유발합니다.

  2. 후속 구매 라인 (TBL): 가장 높은 가격의 최근 N 바와 사용자가 설정 한 구매 오프셋 비율을 기반으로 계산됩니다. 가격이 이 라인을 넘으면 구매를 유발합니다.

이 두 메트릭과 가격을 비교함으로써 스톱 로스 및 트레일링 구매 규칙이 구현됩니다.

장점

이 전략의 장점은 다음과 같습니다.

  1. 간단하고 직관적이며 이해하기 쉽고 실행하기 쉽습니다.

  2. 유연한 스톱 로스 및 패러미터 조절을 통해 후속 구매

  3. 시장과 시간 프레임에 적용됩니다.

  4. 트렌드를 따라가며 적시에 손해를 멈추는 것을 허용합니다.

위험성

이 전략의 위험은 다음과 같습니다.

  1. 부적절한 매개 변수 설정으로 인해 너무 공격적인 스톱 로스 또는 구매가 발생할 수 있습니다.

  2. 다양한 시장에서 빈번한 거래와 미끄러짐.

  3. 다른 시장 특성에 대한 매개 변수 최적화를 요구합니다.

더 나은 기회

이 전략은 다음을 통해 강화될 수 있습니다.

  1. 자동으로 최적화 할 수 있는 적응 알고리즘

  2. 포지션 크기와 리스크 관리 모듈 추가

  3. 다른 지표들을 통합하여 전반적인 경향을 측정하여 위프사를 피합니다.

결론

요약하자면, 이것은 매우 간단하고 직관적인 트렌드 다음 전략이다. 매개 변수 조정으로 시장 전반에 적응할 수 있다. 적응 알고리즘과 추가 필터의 추가 통합은 견고성을 향상시킬 수 있다. 전반적으로 양적 거래에 대한 기본적이면서도 효과적인 프레임워크를 제공한다.


/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Developed from ©Finnbo code
strategy("Simple Trailing Buy & Stop Strategy", overlay=true)
offset = input(defval=1.5, title="Stop Offset %", type=float, minval=0.1, maxval=100, step=0.1)
buyoffset = input(defval=1.9, title="Trailing Buy Offset %", type=float, minval=0.1, maxval=100, step=0.1)

sumbars = input(defval=6, title="Use last x bars for calculation",  minval=1)
srcts = input(title="Source Trailing Stop calculation",  defval=close)
srctb = input(title="Source Trailing Buy calculation",  defval=close)
srctrigger = input(title="Source Stop Trigger",  defval=low)
srctriggerbuy = input(title="Source Buy Trigger",  defval=high)
tsl = rma(srcts, sumbars)*(1-(offset/100))// = (sum(srcts,sumbars)/sumbars)*(1-(offset/100))
tbuy = rma(srctb, sumbars)*(1+(buyoffset/100))
plot(tsl, color=(srctrigger<tsl)?red:green)
plot(tbuy, color=(srctriggerbuy>tbuy)?red:green)
//plotshape(crossunder(srctrigger,tsl), text="Long Stop", style=shape.circle, color=red)
alertcondition(crossunder(srctrigger,tsl), "Long Stop alert", "SELL")
//plotshape(crossover(srctriggerbuy,tbuy), text="Long", style=shape.circle, color=green)
alertcondition(crossover(srctriggerbuy,tbuy), "Long alert", "BUY")

longCondition =  crossover(srctriggerbuy,tbuy)
if (longCondition)
    strategy.entry("Long", strategy.long)
closeCondition = crossunder(srctrigger,tsl)
if (closeCondition)
    strategy.close("Long")


더 많은