
이 전략은 개량된 버전의 가이어 지표 전략으로, 원래의 가이어 지표의 기반에, 여러 가지 새로운 기능이 추가되었습니다. 그 중에는 마이너스에 기반한 구매 및 판매 신호의 촉발, EMA 가이어 라인을 평형화, 스톱 스톱을 추가, 단지 더 많은 것을, 단지 더 적은 것을 또는 양방향 거래를 구현하는 등이 포함됩니다. 이 전략은 개량된 가이어 지표를 사용하여 정량 거래를 원하는 투자자에게 적합합니다.
이 전략의 핵심 지표는 개량된 버전의 가이어 지표이다. 전통적인 가이어 지표는 가격 변동의 절대값의 합을 계산하여, 양과 음의 가이어 라인을 형성한다. 양 가이어 라인이 마이너스 가이어 라인을 통과하면 구매 신호를 발산하고, 음 가이어 라인이 마이너스 가이어 라인을 통과하면 판매 신호를 발산한다.
이 전략은 기존의 가이어 지표들을 업그레이드했습니다.
기어 라인의 교차에 따라 더 이상 매매를 판단하지 않고, 하락의 개념을 도입한다. 양극 기어 라인의 차가 설정된 하락값을 초과할 때만 매매를 촉발한다. 이것은 일부 무효의 작은 크기의 교차 신호를 필터링 할 수 있다.
기어 라인을 EMA 부드럽게 처리하여 곡선의 흔들림을 줄인다.
스톱로스 스톱 설정을 추가하여 수익/손실 비율을 미리 설정할 수 있으며, 위험을 더욱 세밀하게 제어할 수 있다.
다양한 요구에 따라, 오로지 더, 오로지 더, 또는 양방향으로 거래할 수 있습니다.
이러한 개선을 바탕으로 전략은 트렌드를 보다 안정적으로 포착할 수 있게 되었고, 피드백에서 더 잘 작동하게 되었다.
개선된 변속기 지표는 무효 신호를 제거하여 가짜 돌파구를 효과적으로 방지할 수 있다. EMA 평준화는 또한 소음을 제거하는 데 도움이 된다.
트렌드 전환점을 판단하는 데는 단순한 교차가 아닌 매매 시그널을 판단하는 데 쓰이는 절벽을 이용하면 더욱 신뢰할 수 있다.
스톱로스 스톱 기능이 추가되어, 수익과 손실의 비율을 미리 설정할 수 있으며, 이는 합리적인 거래 원칙에 따라 단일 거래의 위험을 제어할 수 있다.
선택 가능한 것은 다만 하고, 다만 하고 또는 양방향으로, 시장의 다른 단계에 유연하게 적응할 수 있고, 다른 거래자의 요구를 충족시킬 수 있다.
이 전략의 매개 변수는 합리적으로 설계되었으며, 재검사 성능이 좋으며 실제 사용 가치가 있습니다.
이 전략은 주로 추세적인 행태에 적용되며, 종합 시장에서의 성과는 영향을 받을 수 있다.
기어 라인 자체는 주식 변동에 민감하며, 잘못된 매개 변수 설정으로 인해 너무 자주 거래 될 수 있습니다.
임계값을 너무 높게 설정하면 매매점을 놓칠 수 있고, 너무 낮게 설정하면 가짜 신호를 증가시킬 수 있으며, 최적의 매개 변수를 찾기 위해 세심한 테스트가 필요합니다.
시장의 비정상적 행태가 있을 때, 정지 손실이 뚫릴 수 있으며, 이 위험을 경계할 필요가 있다.
다른 지표와 함께 조합을 고려할 수 있으며, 신호를 결정할 때 더 많은 요소를 판단할 수 있다.
다양한 주식의 매개 변수 감수성을 테스트하고 매개 변수 설정을 최적화할 수 있다.
대동맥에서 가격과 함께 스톱포드를 조정하는 자기 적응 스톱포드 기술을 연구할 수 있다.
기계학습과 같은 기술을 도입할 수 있으며, 트레이닝 모델은 자동으로 최적화 파라미터를 적용할 수 있다.
이 전략에 기반한 지수화 방법을 탐색할 수 있고, 전략의 용량을 확장할 수 있다.
이 전략은 전통적인 가이어 지표의 기초에 여러 가지 개선이 이루어져 보다 성숙한 신뢰할 수 있는 양적 거래 프로그램을 형성한다. 이 전략은 트렌드 판단과 위험 제어의 장점을 결합하여, 산발적인 거래의 과도한 적응 위험을 피할 수 있고, 지표 자체의 트렌드 캡처 능력을 활용할 수 있다.
/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// [Guz] Custom Vortex
// Custom version of the Vortex indicators that adds many features:
// -Triggers trades after a threshold is reached instead of the normal vortex lines cross (once the difference between the 2 lines is important enough)
// -Smooths the Vortex lines with an EMA
// -Adds Take Profit and Stop Loss selection
// -Adds the possibility to go Long only, Short only or both of them
// ! notice that it uses 10% position size and 0.04% trade fee, found on some crypto exchanges futures contracts
// Allows testing leverage with position size moddification (values above 100%, to be done with caution)
// Not an investment advice
//@version=4
strategy(title="%-[Guz] Vortex Indicator Custom", shorttitle="%-[Guz] Vortex Indicator Custom", overlay=true)
period_ = input(300, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
ema_len = input(title="EMA Length", defval=7)
tresh= input(title="Threshold", defval=16.2, step=0.1)
VIP = ema(VMP / STR,ema_len)
VIM = ema(VMM / STR,ema_len)
//plot(VIP, title="VI +", color=#2962FF)
//plot(VIM, title="VI -", color=#E91E63)
condition_long = crossover(VIP-VIM, tresh/100)
condition_close = cross(VIP-VIM,0)
condition_short = crossunder(VIP-VIM, -tresh/100)
is_short=input(true,title="Do Short?")
is_long=input(true,title="Do Long?")
if (condition_long and is_long)
strategy.entry("VortexLE", strategy.long, comment="Long Algo")
if (condition_short and is_short)
strategy.entry("VortexSE", strategy.short, comment="Short Algo")
if (condition_close)
strategy.close_all()
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
stop_loss_long_percent = input(2.5, title="Stop Loss Long", minval=0.1, step=0.1)
stop_loss_long = (1-stop_loss_long_percent/100)*strategy.position_avg_price
take_profit_long_percent = input(1.5, title="Take Profit Long", minval=0.1, step=0.1)
take_profit_long = (1+take_profit_long_percent/100)*strategy.position_avg_price
stop_loss_short_percent = input(2.5,title="Stop Loss Short", minval=0.1, step=0.1)
stop_loss_short = (1+stop_loss_short_percent/100)*strategy.position_avg_price
take_profit_short_percent = input(1.7,title="Take Profit Short", minval=0.1, step=0.1)
take_profit_short = (1-take_profit_short_percent/100)*strategy.position_avg_price
strategy.exit("TP-SL Long", "VortexLE", limit = take_profit_long , stop = stop_loss_long) //, trail_price = trail_price_long , trail_offset = trail_offset_long) //, trail_offset=tsl_offset_tick, trail_price=tsl_offset_tick)
strategy.exit("TP-SL Short", "VortexSE", limit = take_profit_short , stop = stop_loss_short)