리소스 로딩... 로딩...

로가리듬 가격 예측 전략

저자:차오장, 날짜: 2023-12-20 14:40:23
태그:

img

전반적인 설명

이 전략은 표준편차와 거래량 평균을 기반으로 가격 변화를 모델링하기 위해 로가리듬 함수를 사용하여 미래의 가격을 예측하기 위해 로가리듬 함수의 입력 매개 변수로 z 점수를 계산합니다.

전략 원칙

  1. 종료 가격의 ROC 값을 계산하고 양값을 volume_pos로, 음값을 volume_neg으로 축적합니다.
  2. 순량으로 volume_pos와 volume_neg의 차이를 계산합니다.
  3. 표준편차 netto_std와 net_volume의 평균 net_sma를 계산합니다.
  4. net_sma를 net_std로 나누면서 z-score를 계산합니다.
  5. 종료 가격, 종료 가격의 20일 표준편차 및 z 점수를 물류 기능의 매개 변수로 사용하여 다음 기간의 가격을 예측합니다.
  6. 예측된 가격이 현재 실제 가격보다 높을 때 긴 위치 * 1.005, 0.995 이하의 경우 긴 위치

이점 분석

이 전략은 로그아리듬 함수를 사용하여 거래량 및 가격 예측에 대한 통계 정보를 결합합니다.

이점:

  1. 시장 정서를 측정하기 위해 거래량에서 긴 짧은 차이를 사용합니다.
  2. 로가리듬 함수는 예측에 가격 변화 곡선에 잘 맞습니다.
  3. 간단하고 직접적인 전략, 실행하기 쉬운

위험 분석

이 전략에도 몇 가지 위험이 있습니다.

  1. 거래량 지표가 지연되어 시장 변화를 적시에 반영 할 수 없습니다.
  2. 로가리듬 예측은 항상 정확하지 않으며, 오해의 소지가 있습니다.
  3. 손실을 막기 위한 조치가 없는 경우 손실을 통제할 수 없는 경우

위험은 다음과 같이 감소 할 수 있습니다.

  1. 부피 신호의 신뢰성을 판단하기 위해 다른 지표를 결합합니다.
  2. 예측 정확성을 향상시키기 위해 로그리듬 함수의 매개 변수를 최적화
  3. 거래당 최대 손실과 전체 손실을 제한하기 위해 스톱 로스 라인을 설정합니다.

최적화 방향

이 전략은 다음으로 더 최적화 될 수 있습니다.

  1. 동적으로 로가리듬 함수를 최적화하기 위해 기계 학습을 채택
  2. 포지션 크기를 조정하기 위해 변동성 지표를 포함
  3. 유효하지 않은 신호를 필터링하기 위해 베이센 필터링을 추가
  4. 브레이크아웃 전략과 결합하여 브레이크아웃 포인트에 입력합니다.
  5. 부피와 가격의 오차 신호를 탐지하기 위해 연관 규칙을 사용

여러 방법을 결합하면 안정성과 수익성이 더욱 향상될 수 있습니다.

결론

이 전략은 거래량 및 로그아리듬 예측의 통계적 지표를 독특한 양적 거래 방법론으로 통합합니다. 지속적인 최적화로 효율적이고 안정적인 자동화 거래 시스템이 될 수 있습니다. 기계 학습 및 포트폴리오 최적화 이론을 활용함으로써 거래 성능을 더욱 향상시킬 수 있다고 확신합니다.


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

//@version=4
strategy("Logistic", overlay=true )

volume_pos = 0.0
volume_neg = 0.0
roc = roc(close, 1)

for i = 0 to 100
    if (roc > 0)
        volume_pos := volume
    else
        volume_neg := volume
    
volume_net = volume_pos - volume_neg
net_std    = stdev(volume_net, 100)
net_sma    = sma(volume_net, 10)
z          =  net_sma / net_std
std        = stdev(close, 20)

logistic(close, std, z) =>
    m = (close + std)
    a = std / close
    pt = m / ( 1 + a*exp(-z))
    pt
    
    
pred = logistic(close, std, z)

buy = pred > close * 1.005
sell = pred < close * 0.995

color = strategy.position_size > 0? #3BB3E4 : strategy.position_size == 0? #FF006E : #6b6b6b
barcolor(color)


if (buy == true)
    strategy.entry("Long", strategy.long, comment="Open L")
    
if (sell == true)
    strategy.close("Long", comment="Close L")


더 많은