로그 기반 가격 예측 전략


생성 날짜: 2023-12-20 14:40:23 마지막으로 수정됨: 2023-12-20 14:40:23
복사: 0 클릭수: 660
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

로그 기반 가격 예측 전략

개요

이 전략은 대수 함수를 사용하여 가격 변화를 모의하고 거래량에 따라 표준 차와 평균값의 z값을 계산하여 미래 가격을 예측하기 위해 대수 함수를 입력합니다.

전략 원칙

  1. 마감 가격의 ROC 값을 계산합니다. 양값은 volume_pos로, 음값은 volume_neg로 축적됩니다.
  2. volume_pos와 volume_neg의 차이를 net_volume로 계산합니다.
  3. net_volume의 표준차 net_std와 평균 net_sma를 계산
  4. net_sma를 net_std로 나누면 z값을 얻습니다.
  5. 클로즈 가격, 클로즈 가격 20 일 표준 차, z 값을 파라미트로, 인더스 함수 logistic를 입력하여 다음 주기 가격을 예측합니다.
  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")