매일의 하이 스트라이크와 로우 스트라이크 전략


생성 날짜: 2023-09-23 15:07:58 마지막으로 수정됨: 2023-09-23 15:07:58
복사: 1 클릭수: 1039
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이것은 매일의 높고 낮은 점, 이동 평균과 거래량을 결합한 간단한 일일 거래 전략이다. 전략의 주요 아이디어는 이전 하루의 높고 낮은 점을 돌파할 때, 이동 평균 방향과 자금 흐름 방향을 결합하여 입문 신호이다.

전략 원칙

이 전략은 다음과 같은 몇 가지 지표에 따라 판단됩니다.

  1. 매일의 최고와 최저: 지난 거래일의 최고와 최저가격이 기록되어, 돌파점을 판단하는 기준으로 사용된다.

  2. 이동 평균: 큰 트렌드를 판단하는 데 참고로 특정 주기의 종결 가격 이동 평균을 계산한다.

  3. 거래량의 빈도 지표: 일정 주기 내의 거래량의 통일된 빈도 값을 계산하여 자금 유입과 유출을 판단한다.

거래 규칙은 다음과 같습니다.

  1. 더 많은 조건: 하루의 최고점은 하루의 최고점을 돌파하고, 종결 가격은 이동 평균보다 높으며, 거래량 다공지표가 양성이라면 더 많이 한다.

  2. 평대 조건: 종식 가격이 이동 평균 아래로 떨어지면, 평대 주문을 한다.

  3. 공백 조건: 당일 하락점이 전날 하락점을 돌파하고, 종결 가격이 이동 평균보다 낮고, 거래량 다공백 지표가 마이너스인 경우 공백한다.

  4. 평평한 조건: 종전 가격이 이동 평균을 깨면 공표를 평평하게 한다.

이 전략은 돌파구, 트렌드, 자금 흐름과 같은 여러 측면을 충분히 고려하여 비교적 포괄적인 판단 시스템을 형성하여 일부 가짜 돌파구 소음을 효과적으로 필터링 할 수 있습니다. 그러나 하루 내의 데이터에만 기반하여 결정을 내리기 때문에 단선 운영 전략에 속합니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 아이디어는 단순하고 직관적이며, 실행은 이해하기 쉽습니다.

  2. 그리고 그 전날의 하락과 상승점을 뚫고, 더 강력한 힘의 방향을 잡을 수 있다.

  3. 이동 평균과 함께 필터링을 통해 많은 잡음 신호를 피할 수 있습니다.

  4. 자금의 흐름 지표를 이용해서 힘의 다공간 분포를 판단할 수 있다.

  5. 일일 거래는 반복적으로 거래함으로써 수익을 쌓을 수 있습니다.

  6. 복잡한 매개 변수 최적화가 필요없고, 구현하기 쉽다.

  7. 다양한 품종에 적용할 수 있으며, 유연성이 높다.

  8. 전체적으로 보면, 전략은 간단하고 명확하며, 실행에 옮기는 데에는 큰 어려움이 없으며, 수익의 여지가 상당히 크다.

위험 분석

이 전략은 장점이 많지만 다음과 같은 위험도 있습니다.

  1. 위성 침입으로 인한 피해가 발생할 수 있습니다.

  2. 하루 중 거래에 너무 의존해서 밤새 일어나는 일들에 영향을 받을 수 있습니다.

  3. 이동 평균 지연성은 추세 전환점을 놓칠 수 있다.

  4. 수강량 지표의 효과는 불안정하며 때로는 잘못된 신호를 낸다.

  5. 단편적 손실의 크기를 잘 통제할 수 없고, 과도한 손실의 위험이 있다.

  6. 하루 중 반복되는 거래는 거래 수수료에 영향을 받을 수 있습니다.

  7. 최적화 공간은 제한되어 있고, 지속적인 초과 수익을 얻는 것은 어렵습니다.

  8. 전체적으로, 전략적 신호는 빈번하지만, 안정성과 수익성은 모두 시험되어야 합니다.

최적화 방향

이 전략은 다음의 몇 가지 측면에서 더 개선될 수 있습니다.

  1. 단편적 손실을 통제하기 위해 Stop Loss 메커니즘에 가입하십시오.

  2. 이동 평균 변수를 최적화하여 더 민감하거나 평평하게 만듭니다.

  3. 다른 거래량 지표를 시도하여 재화 흐름 판단의 정확성을 높여라.

  4. 더 많은 필터링 조건을 추가하여 가짜 침투의 기회를 줄입니다.

  5. 더 높은 시간 프레임으로 전략을 실행하고 너무 자주 거래하는 것을 피하십시오.

  6. 기계학습을 도입하고 적응형 거래 신호 시스템을 구축하는 방법

  7. 뉴스 이벤트, 매크로 환경 등과 같은 더 많은 데이터 소스를 통합하여 의사 결정을 내립니다.

  8. 전략의 안정성과 수익의 변동 위험을 전체적으로 평가하고, 너무 높은 수익을 추구하지 마십시오.

요약하다

이 전략은 전반적으로 간단한 직관적인 고저 돌파 전략 아이디어이며, 핵심은 가격 관계와 추세 판단을 파악하는 데 있습니다. 그것은 장점이 있지만, 또한 위험이 있으며, 추가 최적화 및 검증이 필요합니다. 위험을 제어하고 수익을 안정화 할 수 있다면 실제 가치있는 단선 전략 아이디어가 될 수 있습니다. 그러나 더 효율적인 안정화 전략은 더 많은 요소를 도입하는 모델링과 엄격한 피드백 테스트가 필요합니다.

증명서

전략 소스 코드
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5

strategy(title='Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)

////////////////////////////GENERAL INPUTS//////////////////////////////////////
len = input.int(24, minval=1, title='Length MA', group='Optimization paramters')
src = input.source(close, title='Source MA', group='Optimization paramters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization paramters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0


if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, when=barstate.isconfirmed, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, when=barstate.isconfirmed, stop=pricehigh[1])
    strategy.close('long', when=close < out)