이 전략은 K-라인 패턴 기반 판단 방법을 사용하여 고주파 시장 제작 중재를 구현합니다. 주요 아이디어는 다른 K-라인 시간 프레임에 걸쳐 상승 / 하락 패턴을 판단하여 고주파 시장 제작에 대한 거래를 열고 닫는 것입니다. 구체적으로, 전략은 여러 K-라인 시간 프레임을 동시에 모니터링하고 연속적으로 상승 또는 하락하는 K-라인을 관찰 할 때 대응하는 긴 또는 짧은 포지션을 취합니다.
이 전략의 핵심 논리는 다른 K 라인 시간 프레임에 걸쳐 상승/하락 패턴을 판단하는 데 있다. 구체적으로, 1 분, 5 분 및 15 분 K 라인을 동시에 추적한다. 전략은 N 이전 K 라인과 비교하여 가격이 상승 또는 감소했는지 확인함으로써 현재 정서를 결정한다. 가격이 연속적으로 상승하면 상승 정서를 나타냅니다. 가격이 연속적으로 떨어지면 하락 시선을 나타냅니다. 상승 신호에 따라 전략은 길게 갈 수 있습니다. 하락 신호에 따라 전략은 짧게 갈 수 있습니다. 이러한 방법으로 전략은 높은 빈도 대관리를 위해 다른 시간 프레임에 걸쳐 트렌드와 평균 역전 기회를 포착 할 수 있습니다.
핵심 논리는 두 가지 지표를 추적함으로써 구현됩니다.ups
그리고dns
, 연속 상승 및 하락 K-라인의 수를 기록합니다.consecutiveBarsUp
그리고consecutiveBarsDown
트렌드를 결정하기 위한 문턱의 사용자 정의를 허용합니다.ups
이보다 크거나 같거나consecutiveBarsUp
, 상승 추세를 나타냅니다.dns
초과consecutiveBarsDown
또한, 전략은 역 테스트 시간 범위와 명령 실행 메시지 등을 지정합니다.
이 전략의 장점은 다음과 같습니다.
또한 다음과 같은 여러 가지 위험을 알아야 합니다.
위험을 줄이는 가능한 방법은 다음과 같습니다.
이 전략은 다음과 같은 차원에서 강화될 수 있습니다.
이 전략은 K-라인 패턴 판단에 기반한 간단하면서도 효과적인 고주파 중재 전략을 실현합니다. 이 전략의 핵심은 중재에 대한 시간 프레임에 걸쳐 내일 상승/하락 추세를 포착하는 데 있습니다. 일부 내재된 위험에도 불구하고,이 이해하기 쉬운 전략은 알고리즘 거래에 좋은 출발점입니다. 최적화 및 위험 관리에 대한 추가 개선은 더 안정적이고 수익성있는 결과를 창출 할 수 있습니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-21 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Strategy strategy("Up/Down Strategy", initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash) 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) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)