
이 전략은 과거 N 근 K 선의 종결 가격이 상위/하위 오픈 가격의 상황을 분석하여 미래의 K 선의 방향을 판단한다. K 선의 방향이 빈 상태에 따라 더 많은 또는 빈 작업을 한다.
이 전략의 핵심 논리는 다음과 같습니다.
파라미터를NUM_CANDLES로 설정하여 분석해야 할 K선 수를 결정합니다.
함수 candle_dir를 정의하여, 단일 K 선의 방향을 판단한다. close>open은 다중 머리, close
함수 count_candles를 정의하여 지난NUM_CANDLES 루트 K 선에서 다른 방향의 K 선의 수를 통계한다.
지난NUM_CANDLES 루트 K라인에서 다목, 공백, 흔들림 K라인 수를 계산하고, ups, dns, neu에 저장한다.
ups-dns에 ne를 더한 음의 양을 더한 indic 지수를 정의한다.
indic 지표에 따라 과업과 공백 시간을 판단하십시오.
이 전략은 K 선의 방향을 통계를 통해 특정 수의 K 선의 방향을 판단하여 미래의 K 선의 방향을 판단하여 거래 결정을 내립니다. K 선의 수를 통계를 통해 제어 할 수 있으며, 전략의 민감도를 조정할 수 있습니다.
전략적 아이디어는 명확하고 이해하기 쉽고, 쉽게 설명되고 검증됩니다.
복잡한 지표를 계산하지 않고, K선 데이터만 사용해서 계산 비용을 절감한다.
매개 변수를 통해 통계 K 라인 수를 조정할 수 있으며, 전략 감수성을 제어할 수 있다.
모든 품종과 모든 주기에서 사용할 수 있으며, 적용성이 강하다.
최적의 변수 조합을 찾기 위해 변수 최적화를 쉽게 할 수 있습니다.
이 경우, 주식 시장의 위기상황을 처리할 수 없고, 빈번하게 하락상황이 발생할 수 있다.
통계주기가 부적절하면 신호가 지연될 수 있으며, 합리적으로 파라미터를 설정해야 한다.
“전향이 뒤집을 수 없는 상황에서는 역동적인 손실이 발생할 수 있습니다”.
거래 비용의 영향을 고려하여 너무 자주 거래되는 것을 방지해야 합니다.
매개 변수 최적화 과 적합성 문제에 주의해야 하며, 여러 시장 피드백 검증해야 한다.
손실의 위험을 줄이기 위해 스톱 로직을 추가하는 것을 고려할 수 있습니다.
트렌드 지표와 결합하여 역동적인 조작을 피할 수 있습니다.
통계주기를 늘리거나 저주기를 사용해서, 최적화 매개 변수를 사용하여 전략의 안정성을 높일 수 있다.
여러 품종의 조합을 고려하여 전략적 승률을 높일 수 있다.
기계학습 방법과 결합하여 자동 최적화 매개 변수.
이 전략은 K선 방향 분석을 기반으로 거래 방향을 결정하고, 아이디어는 명확하고 이해하기 쉽으며, 파라미터 설정을 통해 전략의 민감도를 제어할 수 있다. 전략의 장점은 논리적으로 간단하고, 사용 요구 사항이 낮고, 적용 범위가 넓지만, 전략의 안정성을 높이기 위해 추가적인 최적화가 필요한 위험이 있다.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Refined CandleCounter Strategy by origo", overlay=true)
// how many candles to count
NUM_CANDLES = 7
// determine candle direction
candle_dir = close > open ? 1 : (round(close-open) == 0 ? 0 : -1)
// return # of candles with a given direction
count_candles(dir, max) =>
count = 0
for i = 0 to max
if candle_dir[i] == dir
count := count + 1
count
ups = count_candles(1, NUM_CANDLES)
dns = count_candles(-1, NUM_CANDLES)
neu = count_candles(0, NUM_CANDLES)
indic = ups-dns
if indic > 0
indic := indic+neu
else
indic := indic-neu
plotarrow(neu, title="UP vs DN")
longCondition = (indic) > 0
shortCondition = (indic) <= 0
strategy.entry("buy", strategy.long, 1, when = longCondition and not shortCondition)
strategy.entry("sell", strategy.short, 1, when = shortCondition and not longCondition)