시계열 데이터 기반의 적응형 동적 임계값 전략


생성 날짜: 2024-04-01 10:48:52 마지막으로 수정됨: 2024-04-01 10:48:52
복사: 2 클릭수: 613
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

시계열 데이터 기반의 적응형 동적 임계값 전략

개요

이 전략은 주식이나 다른 금융 자산에 기반한 순수 시간 순서 데이터로, 인덱스 이동 평균 (EMA) 의 평준화 인자를 동적으로 계산하여 구매 신호의 촉발을 달성하기 위해 적응적으로 경로를 조정합니다. 이 전략의 주요 아이디어는 순수 가치 데이터 자체에 포함 된 모든 정보를 사용하여 순수 가치 변화의 복잡성을 계산하여 EMA 평준화 인자를 동적으로 조정하여 역동적인 변화의 경로를 얻습니다. 가격이 경로를 돌파 할 때 더 많이 입장을 열고 경로를 돌파 할 때 평준화하십시오.

전략 원칙

  1. 순가치 데이터의 효율 비율을 계산한다 (ER), 즉 순가치 변화량과 총 변화량의 비율이다. ER 값이 작을수록 순가치 변화량이 평평한 것으로 나타난다. ER 값이 클수록 순가치 변화량이 급격한 것으로 나타난다.
  2. ER를 pine_ema 함수의 평형 인수 alpha로, EMA의 평균값과 절대 편차를 동적으로 계산한다.
  3. EMA의 평균값을 더하고 절대 편차를 줄여서 역동적인 변화의 상승과 하락을 얻는다.
  4. 현재 순자산이 궤도 상위 돌파를 할 때 더 많은 포지션을 열고, 궤도 하위 돌파를 할 때 평형 포지션을 한다.

전략적 이점

  1. 순수 시간열 데이터에 포함된 모든 정보를 최대한 활용하고, 어떤 매개 변수나 최적화를 설정할 필요가 없으며, 방법은 간결하고 자연스럽다.
  2. 동적으로 ER를 계산하여 EMA 평준 인자를 조정하여 순가 변동의 복잡성에 적응할 수 있으며 시장 변화에 유연하게 대응할 수 있다.
  3. 기존의 고정 변수 EMA와 비교하여, 동적 EMA는 거래 횟수 및 보유 시간을 효과적으로 줄이고, 거래 비용과 위험을 줄일 수 있다.
  4. 효과적으로 통제할 수 있는 철수. 구매 보유에 비해 이 전략은 최대 철수를 2~3배 줄일 수 있고, 같은 철수에서 수익을 2~3배 높일 수 있다.
  5. 여러 정책의 조합에 편리하게 적용할 수 있으며, 정책 자동 전환의 목적을 달성한다.

전략적 위험

  1. 이 전략은 당기순시열 데이터에 기초하고 있으며, 가격운동이 근본적으로 역전될 경우 평준화의 속도가 느려져 수익에 영향을 미칠 수 있다.
  2. 이 전략은 자율적으로 변수를 조정할 수 있지만, 극단적인 상황에 대한 적응성은 더 많은 연구가 필요합니다.
  3. 이 전략은 현재는 주로 더 많은 일을 하는 경우를 대상으로 하고 있고, 더 많은 일을 하는 경우를 개선해야 한다.
  4. 실제 적용에서, 이 전략은 선택 지표의 품질에 대한 요구가 높으며, 장기적으로 상승하는 지표를 선택해야 한다.

전략 최적화 방향

  1. ER의 계산 방법을 더욱 최적화하여, 순자치 변화 특성을 반영하는 지표를 더 많이 도입하여, ER의 안정성과 유효성을 향상시키는 것을 고려할 수 있다.
  2. 이 전략의 수익성과 위험성을 높이기 위해 이동식 스톱 스톱, 비율로 스톱 스톱 등을 고려하는 것과 같은 더 자세한 조건이 추가될 수 있습니다.
  3. 다양한 기준과 시장 환경에 맞게 전략에 대한 파라미터 최적화 및 적응성 조정이 가능하며, 전략의 보편성을 높일 수 있다.
  4. 이 전략은 다른 전략 (트렌드 추적, 평균 회귀 등) 과 조합하여 다른 전략의 장점을 발휘하여 포트폴리오의 안정성과 수익성을 향상시킬 수 있습니다.

요약하다

이 전략은 동적으로 계산 효율비율 (ER) 을 지수 이동 평균 (EMA) 의 평준화 인자로 조정하여 구매 신호의 촉발을 실현한다. 이 전략은 당기순시열 데이터에 포함된 정보를 최대한 활용하고, 과도한 파라미터 설정 및 최적화가 필요하지 않으며, 방법은 간단하고 자연스럽고, 시장 변화에 유연하게 대응할 수 있으며, 회수를 효과적으로 제어한다. 그러나 이 전략은 극단적인 상황의 적응성에 대한 추가 조사가 남아 있으며, 실제 응용에서 지표에 필요한 선택 사항에 주의한다.

전략 소스 코드
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy('Equity control', 'EC')
// study('Exponential bands', 'EB', overlay = true)


er(src) =>
    var start = src
    var total = 0.0

    total += abs(src - nz(src[1], src))
    net    = abs(src - start          )
    
    net / total

pine_ema(src, alpha) =>
    mean = 0.0
    dev  = 0.0

    mean := na(mean[1]) ? src : (1 - alpha) * mean[1] + alpha *     src
    dev  := na(dev [1]) ? 0   : (1 - alpha) * dev [1] + alpha * abs(src - mean)

    [mean, dev]


src = input(close)


a           = er      (src   )
[mean, dev] = pine_ema(src, a)

dev_lower = mean - dev
dev_upper = mean + dev


// plot(dev_lower, 'lower deviation', color.silver, 2, plot.style_stepline)
// plot(mean     , 'basis'          , color.purple, 1, plot.style_stepline)
// plot(dev_upper, 'upper deviation', color.silver, 2, plot.style_stepline)


if src > dev_upper
    strategy.entry('event', true, comment = 'on')
if src < dev_lower
    strategy.close('event', comment = 'off')


plot(strategy.equity)

//bigDope