기하급수적으로 평평한 스토카스틱 오시레이터 전략

저자:차오장, 날짜: 2024-01-18 15:53:41
태그:

img

전반적인 설명

기하급수 평형 스토카스틱 오시레이터 전략은 스토카스틱의 감수성을 조정하고 거래 신호를 생성하기 위해 기하급수 무게 매개 변수를 추가하여 전통적인 스토카스틱 지표의 수정 버전입니다. 지표가 과소매 수준에서 넘어가면 길고, 지표가 과소매 수준에서 넘어가면 짧습니다. 최적화된 전략은 트렌드를 따르는 매우 안정적인 전략이 될 수 있습니다.

전략 논리

기하급수적으로 매끄러운 스토카스틱 전략의 핵심은 기하급수적 무게 매개 변수 (ex) 에 있습니다. 전통적인 스토카스틱은 다음과 같이 계산됩니다.

s = 100 * (close - lowest low) / (highest high - lowest low)

기하급수적 매개 변수로, 공식은 다음과 같습니다.

exp = ex<10? (ex)/(10-ex) : 99   

s = 100 * (close - lowest low) / (highest high - lowest low)  

ks = s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50   
       :-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50  

엑스퍼를 조정하면 k에 s의 영향을 바꿀 수 있습니다. 엑스퍼를 증가하면 지표가 덜 민감해지고 엑스퍼를 감소하면 더 민감합니다.

구매 신호는 ks가 과소매 수준에서 넘어가면 생성됩니다. 판매 신호는 ks가 과소매 수준에서 넘어가면 생성됩니다.

장점

전통적인 스토카스틱 전략에 비해, 지수 평형 스토카스틱 오시레이터 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 스토카스틱의 민감도는 거래 빈도를 제어하기 위해 기하급수 가중치를 변경하여 자유롭게 조정할 수 있습니다.
  2. 증가한 기하급수적 무게는 소음을 필터링하고 더 안정적인 거래 신호를 생성 할 수 있습니다.
  3. 서로 다른 시간 프레임의 지표를 결합하면 여러 시간 프레임 확인을 달성하고 신호 신뢰성을 향상시킬 수 있습니다.

위험성

계수 평형 스토카스틱 오시레이터 전략은 또한 다음과 같은 위험을 가지고 있습니다.

  1. 너무 큰 기하급수적 무게를 가진 경우 과도한 신호 필터링으로 인해 일부 거래 기회가 놓칠 수 있습니다.
  2. 표시기는 소음 및 잘못된 교차로에 취약합니다. 신뢰할 수있는 교차 신호를 보장하기 위해 매개 변수를 조정해야합니다.
  3. 다양한 시장에 최적의 매개 변수 범위를 확인해야합니다. 잘못된 매개 변수 설정은 전략 성과에 영향을 줄 수 있습니다.

개선 영역

계수 평형 스토카스틱 오시레이터 전략은 다음 측면에서 최적화 될 수 있습니다:

  1. MACD와 이동 평균과 같은 다른 지표와 결합하여 신호를 필터하고 잘못된 신호를 줄이십시오.
  2. 스톱 로스 메커니즘을 추가하여 위험을 효과적으로 제어합니다.
  3. 최적의 매개 변수 조합을 찾기 위해 기하급수 무게 매개 변수를 최적화합니다. 다른 매개 변수를 다른 시장에 사용할 수 있습니다.
  4. 예를 들어, 복합성을 높이고 계절 지표와 시장 구조 지표와 결합하여 안정성을 더욱 향상시킵니다.

결론

기하급수적으로 매끄러운 스토카스틱 오시레이터 전략은 스토카스틱 지표의 민감도를 조정함으로써 더 신뢰할 수있는 거래 신호를 생성합니다. 중장기 트렌드를 효과적으로 추적 할 수 있으며 단기 전략으로 최적화 할 수도 있습니다. 추가 구성성과 매개 변수 최적화로 더 일관된 수익성 수익을 얻을 수 있습니다.


/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro

//@version=5
strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len=input.int(14, "length") 
ex=input.int(2, title="exp", minval=1, maxval=10)
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len))
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 :
 -math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
plot(ks, color= color.white)
bot=input.int(20)
top=input.int(80)
longCondition = ta.crossover(ks, bot) and bar_index>0
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ks, top) and bar_index>0
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
//    strategy.close("My Long Entry Id")
alertcondition(longCondition, title = "buy")
alertcondition(shortCondition, title = "sell")
h1=hline(top)
h2=hline(bot)
h3=hline(100)
h4=hline(0)
fill(h1,h3, color= color.rgb(255,0,0,200-top*2))
fill(h2,h4, color= color.rgb(0,255,0,bot*2))

더 많은