N일 연속 상승/하락 전략

저자:차오장, 날짜: 2023-09-12 11:51:10
태그:

N일 연속 상승/하락 전략

이 문서에서는 N 일 연속 상승/하락 전략의 거래 논리, 장점, 잠재적 위험 및 요약에 대해 자세히 소개합니다.

이것은 사용자가 정의한 연속적인 상승일과 연속적인 하락일에 기초하여 입출을 결정하는 긴 전략입니다. 거래 논리는 매우 간단합니다.

전략 논리

첫째, 두 가지 매개 변수를 설정해야 합니다.

consecutiveBarsUp: 연속적으로 올라가는 날 연속BarsDown: 연속적인 다운데이

두 가지 변수를 기록합니다.

위기: 현재 연속 위기 날 dns: 현재 연속 다운데이

매일 우리는 닫기 가격을 이전 닫기와 비교하여 상승 또는 하락의 날을 결정합니다. 상승하면 상승 + 1, 하락하면 상승 + 1.

Ups가 consecutiveBarsUp에 도달하면, 우리는 긴 거, DNS가 consecutiveBarsDown에 도달하면, 우리는 지점을 종료합니다.

이것은 연속 상하 전략의 간단한 논리입니다. 우리는 단지 아래에서 연속 상하 날 후에 오래 갈 수 있습니다. 그리고 연속 하하 날 후에 빠져 나갑니다. 이것은 범위 제한 시장에서 빈번한 거래를 피합니다.

장점

  1. 간단한 논리, 이해하기 쉽고 실행하기 쉬운

  2. 단기 변동을 연속일 설정으로 필터링

  3. 단지 긴 거래, 더 적은 거래, 낮은 거래 비용 및 미끄러짐 영향

  4. 손해를 막기 쉽게 설정, 효과적으로 단일 거래 손실을 제어

잠재적 위험

  1. 상장 할 수 없거나, 상장 기회를 놓치고

  2. 입력하기 위해 연속적인 날짜가 필요하고, 아마도 가장 좋은 입력 포인트를 놓치고 있습니다.

  3. 시간 지연, 실시간으로 회전을 캡처하지 않습니다

  4. 스톱 로스 없이 단일 거래에서 큰 손실

요약

연속 상승/하락 일 전략은 단순성과 낮은 주파수 거래로 널리 인기가 있습니다. 적절한 매개 변수 조정을 통해 효율적으로 윙사우를 필터링할 수 있습니다. 그러나 시간 지연 및 단축 할 수 없다는 것과 같은 한계도 있습니다. 투자자는 채택하기 전에 신중하게 고려해야합니다. 전반적으로 중장기 트렌드를 추적 할 때 안정적인 수익을 추구하는 투자자에게 적합합니다.


/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 12h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Strategy
// strategy("Up/Down Long Strategy", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

// There will be no short entries, only exits from long.
// strategy.risk.allow_entry_in(strategy.direction.long)

consecutiveBarsUp = input(1)
consecutiveBarsDown = input(1)

price = close

ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0

dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0

// Strategy Backesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)

time_cond  = true

// Messages for buy and sell
message_buy  = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")

// Strategy Execution

if (ups >= consecutiveBarsUp) and time_cond
    strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_buy)
    
if (dns >= consecutiveBarsDown) and time_cond
    strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_sell)


더 많은