가격 오차에 기반한 트렌드 추적 전략


창간 날짜: 2024-01-22 11:51:28 마지막 수정: 2024-01-22 11:51:28
복사: 0 클릭 수: 280
1
관심
1105
관심자

基于价格偏离的趋势追踪策略

개요

이 전략은 가격 오차 지표에 기초하여 피포나치 리콜 영역과 결합하여 트렌드를 식별하고 추적하는 것을 구현합니다. 가격이 어느 방향에서 점점 멀어지면 트렌드가 형성되는 것으로 판단되어 거래 신호를 생성합니다.

전략적 원칙

이 전략은 VWAP를 가격의 중축선으로 사용한다. 그 다음 가격의 변동성에 따라 상하 1.618배와 2.618배의 표준편차의 가격 편차선을 계산한다. 가격이 아래에서 위로 경로를 돌파할 때 더 많은 신호가 생성되며, 가격이 위에서 아래로 경로를 돌파할 때 빈 신호가 생성된다.

더 많은 공백을 한 후의 스톱손실 EXIT 신호는: 더 많은 스톱손실 라인이 경로로 내려가고, 더 많은 공백 스톱손실 라인이 경로로 올라간다.

특히 몇 가지 단계가 있습니다.

  1. VWAP를 가격의 중축선으로 계산합니다

  2. 가격의 변동성을 측정하는 지표로 계산되는 표준차단sd

  3. sd를 기준으로 구간을 계산한다: 구간은 VWAP + 1.618*sd 및 VWAP + 2.618*sd; 구간은 VWAP - 1.618*sd 및 VWAP - 2.618*sd

  4. 가격이 아래에서 위로 1.618배의 경로를 돌파할 때 더 많은 신호가 생성됩니다. 가격이 위에서 아래로 1.618배의 경로를 돌파할 때 빈 신호가 생성됩니다.

  5. 더 많은 스톱손실 EXIT: 가격이 2.618 배의 경로를 돌파; 무손실 EXIT: 가격이 2.618 배의 경로를 돌파

장점 분석

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

  1. 가격 변동 지표를 사용하여 가격 트렌드를 효과적으로 판단하고 트렌드를 추적합니다.

  2. 피포나치 리콜 영역과 결합하여 엔트라 입구와 스톱 손실 출구를 더 명확하게합니다.

  3. VWAP는 가격 중축선으로서 지표의 기준값을 향상시킵니다.

  4. 다양한 품종과 주기에 적응할 수 있습니다.

위험 분석

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

  1. 하지만 이 모든 것이 다른 방식으로 진행될 수 있다는 것을 알고 있습니다.

  2. 잘못된 매개 변수 설정도 전략 효과에 영향을 줄 수 있습니다.

  3. 가격의 급격한 변동으로 인해 손해배상 위험이 높습니다.

대책:

  1. 적당하게 보유 주기를 단축하고 적시에 손실을 멈추기

  2. 최적화된 매개 변수, 최적의 매개 변수 조합

  3. 포지션 관리를 강화하고 단금 손실을 통제합니다.

최적화 방향

이 전략은 다음과 같은 몇 가지 측면에서 최적화 될 수 있습니다:

  1. 트렌드 지표를 결합하여 역행 거래를 피합니다.

  2. 포지션 관리 메커니즘에 가입

  3. 최적화된 파라미터 설정

  4. 여러 시간 사이클에 대한 재검사 최적화

요약

이 전략은 가격 편차 사상에 기반하여, VWAP와 피포나치 표준차차 배수 영역을 결합하여, 트렌드를 식별하고 추적하는 것을 실현한다. 단일 사용 평균선과 같은 지표에 비해, 이 전략은 더 명확한 판단과 더 명확한 위험 통제를 가능하게 한다. 이 전략은 매개 변수를 조정하고 최적화함으로써, 다른 품종과 시기를 적용하여 더 나은 전략 효과를 얻을 수 있다.

전략 소스 코드
                
                    /*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))
                
            
더 많은 내용