하이킨-아시 - 0.5% 변경 단기 거래 전략

저자:차오장, 날짜: 2023-12-18 12:13:56
태그:

img

전반적인 설명

이것은 하이킨-아시 폐쇄 가격의 0.5%의 변화에 따라 구매 및 판매 신호를 발행하는 단기 거래 전략입니다. 하이킨-아시 촛불 차트에만 적합하며 2 시간, 1 시간 및 30 분 간격에서 가장 잘 작동합니다.

전략 논리

이 전략의 핵심 논리는 다음과 같습니다.하이킨-아시 클로즈 가격이 이전 촛불보다 0.5% 상승하면 장거리; 하이킨-아시 클로즈 가격이 이전 촛불보다 0.5% 떨어지면 단축.

구체적으로, 전략은 먼저 현재 종료 가격과 이전 종료 가격 사이의 비율 변화를 계산합니다.priceChange = close / close[1] - 1만약priceChange >= 0.005, 긴 신호가 발산됩니다.priceChange <= -0.005, 짧은 신호가 발산됩니다.

시그널을 발행할 때, 전략은 또한 기존 포지션이 있는지 여부를 판단합니다. 이미 포지션 (롱 또는 쇼트) 에 있다면 신호가 반복되지 않습니다. 포지션이 없으면 구매 또는 판매 조건에 따라 오픈 포지션 신호를 발행합니다.

마지막으로,plotshape차트에서 구매 및 판매 신호를 표시하는 데 사용됩니다.

장점

  • 하이킨-아시 변화율을 거래 신호로 사용하여 단순한 이동 평균 등보다 가격 트렌드 변화를 더 잘 파악합니다.
  • 0.5%의 작은 가격 변화에 기반한 신호를 발산하여 매우 민감하고 단기 거래에 적합합니다
  • 매우 간단하고 직설적인 논리, 이해하기 쉽고 실행하기 쉽습니다
  • 여러 시간 프레임에 적용되며 매우 유연합니다.

위험 과 해결책

  • 하이킨-아시 자체는 시장 소음과 잘못된 신호에 취약한 단기 가격 행동에 더 집중합니다.
    • 잘못된 신호 비율을 낮추기 위해 1% 또는 2% 변경에 반응하는 것과 같은 매개 변수를 조정
  • 너무 민감한 경우, 과잉 거래로 인해 더 높은 수수료가 발생할 수 있습니다.
    • 높은 빈도 거래를 피하기 위해 보유 기간, 예를 들어 각 거래 최소 2 시간 조정
  • 너무 많은 그래픽 마커가 차트를 혼란스럽게합니다.
    • 그래프 모양을 숨기고 전략 로그에서 신호만 확인

최적화 방향

이 전략을 최적화하는 주요 측면:

  1. 최적의 매개 변수를 찾기 위해 시장 변동성과 거래 스타일을 기반으로 가격 변화 문턱을 조정
  2. 거래당 최대 손실 비율을 제한하기 위해 스톱 로스를 포함합니다.
  3. 통합 중 불필요한 거래를 피하기 위해 다른 지표와 필터를 추가합니다.
  4. 고정량, 기하급수, 그리드 거래 등에 대한 포지션 사이징을 도입하십시오.
  5. 진입 메커니즘을 최적화하고, 윙사 (whipsaws) 를 피하고, 트렌드 또는 역 트렌드를 거래하십시오.

결론

요약하자면, 이것은 매우 간단하고 낮은 매개 변수이며, 단기 거래 전략을 이해하기 쉽습니다. 그것은 가격 변화를 매우 빠르게 잡으며, 고주파 거래자에게 적합합니다. 그러나 비용을 줄이기 위해 거래 수를 제어해야합니다. 여러 최적화 방법으로 더 나은 결과를 얻을 수 있습니다.


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

//@version=4
strategy("Heikin-Ashi - Change 0.5% short Time Period", shorttitle="Heikin-Ashi - Change 0.5% short Time Period", overlay=true)

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

// Buy and Sell Signals
buyp = priceChange >= 0.005
sellp = priceChange <= -0.005

// 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)

if buy_condition
    strategy.entry("Buy", strategy.long)
    position := 1

if sell_condition
    strategy.entry("Sell", strategy.short)
    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)


더 많은