패러볼 오시레이터 고도와 하위 전략을 찾는

저자:차오장, 날짜: 2024-02-20 16:01:12
태그:

img

전반적인 설명

이 전략은 추세와 변동성을 결정하기 위해 서로 다른 기간 동안 이동 평균과 변동을 계산하여 가격 최고와 하락을 식별합니다.

전략 논리

이 전략의 핵심 논리는 최근 다양한 기간 동안 이동 평균과 변수를 계산하는 것입니다. 구체적으로 5 일, 4 일 및 3 일 이동 평균 (ma, mb, mc) 및 변수를 (da, db, dc) 계산합니다. 그 다음 크기를 비교하고 현재 추세를 나타내는 가장 높은 변수를 갖는 기간을 선택합니다. 마지막으로, 최종 곡선을 출력하기 위해 대표 기간의 변수의 제곱을 이동 평균으로 곱합니다.

따라서 가격이 상승하거나 하락할 때 대표적인 기간과 그 변동은 크게 변하게 되므로 wg도 눈에 띄게 변하여 최고와 최저를 식별 할 수 있습니다.

이점 분석

서로 다른 기간에 기반한 트렌드 변화를 판단하는 이 아이디어는 효과적이며 가격 전환점을 명확하게 식별 할 수 있습니다. 단일 기간 판단에 비해 여러 기간을 결합하면 정확성과 시기성을 향상시킬 수 있습니다.

이동 평균과 변수를 계산하는 것도 간단하고 효율적입니다. 작은 코드 크기로 갑작스러운 가격 변화에 매우 민감하며 급격히 파장을 감지 할 수 있습니다.

위험 분석

이 전략에서 사용되는 기간은 짧습니다. 중장기적 목적으로 판단은 정확하고 충분히 포괄적이지 않을 수 있습니다. 단기 가격 변동은 잘못된 판단을 일으킬 수 있습니다.

또한, 이동 평균 과 변동 의 가중 은 판단 결과 에 영향 을 미칩니다. 잘못 설정 될 경우, 신호 는 편향 될 수 있습니다.

최적화 방향

다른 길이의 더 많은 기간을 추가하여 판결을 더 포괄적으로 만들기 위해 조합을 만들 수 있습니다. 예를 들어 중장기 용도에 대해 10 일, 20 일.

또한 무게 설정을 더 유연하게 만들기 위해 다른 무게 스키마를 테스트 할 수 있습니다. 매개 변수 최적화는 잘못된 판단 가능성을 줄이기 위해 시장 조건에 따라 무게를 자동 조정 할 수 있습니다.

또한 다른 지표도 포함될 수 있습니다. 예를 들어 비정상적인 거래량처럼, 중재 거래에 의해 오인되는 것을 피하기 위해서요.

결론

이 전략의 전반적인 논리는 명확하고 이해하기 쉽으며, 이동 평균과 변수를 사용하여 가격 추세와 변동성을 판단하고, 그 다음을 결합하여 고도와 하락을 명확하게 식별 할 수있는 곡선을 출력합니다. 이러한 다 기간 복합 판단은 단기 및 장기 시장 특성을 효과적으로 포착하여 인플렉션 포인트 검출의 정확성을 향상시킬 수 있습니다. 또한 전략이 더 견고하고 포괄적 일 수 있도록 기간, 무게 및 지표 등과 같은 측면에서 최적화 할 수있는 많은 공간이 있습니다.


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

//@version=3
strategy("x²", overlay=false)


a1=(close[2]-close[3])/1
a2=(close[1]-close[3])/4
a3=(close[0]-close[3])/9

b1=(close[3]-close[4])/1
b2=(close[2]-close[4])/4
b3=(close[1]-close[4])/9
b4=(close[0]-close[4])/16

c1=(close[4]-close[5])/1
c2=(close[3]-close[5])/4
c3=(close[2]-close[5])/9
c4=(close[1]-close[5])/16
c5=(close[0]-close[5])/25

ma=(a1+a2+a3)/3
da=(a1-ma)*(a1-ma)
da:=da+(a2-ma)*(a2-ma)
da:=da+(a3-ma)*(a3-ma)
da:=sqrt(da)
da:=min(2, da)
da:=1-da/2
da:=max(0.001, da)


mb=(b1+b2+b3+b4)/4
db=(b1-mb)*(b1-mb)
db:=db+(b2-mb)*(b2-mb)
db:=db+(b3-mb)*(b3-mb)
db:=db+(b4-mb)*(b4-mb)
db:=sqrt(db)
db:=min(2, db)
db:=1-db/2
db:=max(0.001, db)

mc=(c1+c2+c3+c4+c5)/5
dc=(c1-mc)*(c1-mc)
dc:=dc+(c2-mc)*(c2-mc)
dc:=dc+(c3-mc)*(c3-mc)
dc:=dc+(c4-mc)*(c4-mc)
dc:=dc+(c5-mc)*(c5-mc)
dc:=sqrt(dc)
dc:=min(2, dc)
dc:=1-dc/2
dc:=max(0.001, dc)



g=close
if(da>db and da>dc)
    g:=da*da*ma
else
    if(db > da and db > dc)
        g:=db*db*mb
    else
        g:=dc*dc*mc

wg=wma(g, 2)
plot(wg)
plot(0, color=black)


longCondition = true //crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = true //crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

더 많은