동적 임계 가격 변화 파업 전략

저자:차오장, 날짜: 2024-04-01 12:03:59
태그:

img

이 전략은 동적 임계 가격 변화 브레이크아웃 전략이라고 불린다. 이 전략의 주요 아이디어는 동적 임계치를 설정하는 것이며, 가격 변화율이 이 임계치를 초과하면 구매 신호가 생성되고, 가격 변화율이 이 임계값의 음수값보다 낮을 때 판매 신호가 생성된다. 동시에 전략은 스톱 로스도 설정한다. 가격이 이전 6개의 촛불 중 가장 낮은 가격 이하로 떨어지면 포지션이 폐쇄된다.

전략 원칙

이 전략의 핵심은 현재의 폐쇄 가격을 이전 폐쇄 가격으로 나누고 다음 1을 으로써 얻은 가격 변화율을 계산하는 것입니다. 다음으로 계산된 가격 변화율은 사용자가 입력한 임계값과 비교됩니다. 가격 변화율이 임계값보다 크거나 같을 때, 현재 위치가 없거나 짧은 위치가 보유되면 구매 신호가 생성됩니다. 가격 변화율이 임계값의 부정적인 값보다 작거나 같을 때, 현재 위치가 없거나 긴 위치가 보유되면 판매 신호가 생성됩니다. 구매 신호를 생성한 후 전략은 이전 6 개의 촛불 중 가장 낮은 가격을 중지 손실 가격으로 기록합니다. 가격이 손실 가격 이하로 떨어지면 전략은 긴 위치를 종료합니다.

전략적 장점

  1. 이 전략은 동적 임계값을 사용하며, 다른 시장 환경에 적응할 수 있고 어느 정도의 유연성을 가지고 있습니다.
  2. 전략 논리는 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다.
  3. 스톱 로스는 위험을 어느 정도 조절하기 위해 설정됩니다.
  4. 신흥 시장에서 사용하기에 적합하며 상승 추세를 효과적으로 파악 할 수 있습니다.

전략 위험

  1. 이 전략은 변동적인 시장에서 거래가 빈번하게 이루어질 수 있으며, 거래 비용이 증가할 수 있습니다.
  2. 스톱 로스 설정은 충분히 유연하지 않을 수 있고, 경우에 따라서는 조기 스톱 로스로 이어질 수 있습니다.
  3. 이 전략은 가격 변화율 요인만을 고려하고 거래량과 시장 정서와 같은 가격 추세에 영향을 줄 수 있는 다른 요인을 고려하지 않습니다.

전략 최적화 방향

  1. 거래량과 변동성 같은 더 많은 지표가 전략의 신뢰성을 향상시키기 위해 도입될 수 있다고 생각할 수 있습니다.
  2. 스톱 손실 설정은 트레일링 스톱 또는 동적 스톱 손실을 사용하여 스톱 손실을 더 유연하게 만들기 위해 최적화 할 수 있습니다.
  3. 최적의 매개 변수 조합을 찾기 위해 지름값의 크기와 스톱 손실 계산 기간과 같은 매개 변수를 최적화 할 수 있습니다.
  4. 포지션 관리는 리스크를 통제하기 위해 시장 조건에 따라 포지션을 동적으로 조정하는 데 추가 될 수 있습니다.

요약

동적 임계 가격 변화 브레이크아웃 전략은 가격 변화율을 동적 임계값과 비교하여 거래 신호를 생성하여 상승 시장에서 사용할 수 있습니다. 전략 논리는 일정 수준의 유연성과 리스크 제어 기능을 갖춘 간단하고 명확합니다. 그러나 이 전략에는 불안정한 시장에서 빈번하게 거래하고 유연하지 않은 스톱 로스 설정과 같은 몇 가지 단점도 있습니다. 미래에 우리는 더 많은 지표를 도입하고 스톱 로스 설정을 최적화하고 매개 변수를 최적화하고 전략의 성능을 더욱 향상시키기 위해 포지션 관리를 추가하는 등의 측면에서 전략을 최적화하는 것을 고려 할 수 있습니다.


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

//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)

change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)


// Calculate price change
priceChange = close / close[1] - 1

// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)

// Initialize position and track the current position
var int position = na

// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)

var float stop = na

if (buy_condition)
    strategy.entry("Long", strategy.long)
    stop := lowest(low, 6)
    position := 1
if (sell_condition or low < stop)
    strategy.close("Long")
    position := -1

// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


더 많은