이 전략은 추세와 변동성을 결정하기 위해 서로 다른 기간 동안 이동 평균과 변동을 계산하여 가격 최고와 하락을 식별합니다.
이 전략의 핵심 논리는 최근 다양한 기간 동안 이동 평균과 변수를 계산하는 것입니다. 구체적으로 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)