
이 전략은 평균선 지표, 오버 바이 오버 셀 지표, 그리고 변동률 지표를 결합하여 오버 다운 반발 시 최저 가격에 구매하고 오버 바이 반발 시 최저 가격에 판매하여 트렌드 추적을 구현합니다.
RSI와 스토흐 지표가 동시에 초과 영역에 있고, AO 진동기가 역전 신호가 발생했을 때 포지션을 설정한다. 구체적으로, RSI와 스토흐가 모두 낮은 지점에 있을 때 (<30과 20), AO는 마이너스에서 교정할 때 더 많이 한다. RSI와 스토흐가 모두 높은 지점에 있을 때 (<70과 80), AO는 마이너스에서 교정할 때 공백한다.
이 전략은 크게 네 가지 지표를 사용합니다.
AO가 반전 신호가 발생하고 RSI와 Stoch이 동시에 초매권에 있을 때, 가격이 반전될 수 있음을 나타냅니다. 이 때 포지션을 구축하는 데 개입할 수 있습니다. ATR 지표는 스톱 로스 스톱 가격을 설정하고 시장의 변동성에 따라 스톱 로스 스톱 로스의 폭을 조정하여 피지배되는 것을 피합니다.
이러한 위험을 줄이기 위해 다음과 같은 측면에서 최적화할 수 있습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
최적화 파라미터 설정을 . 우수성을 찾는 방법과 같은 방법을 통해 더 우수한 파라미터 조합을 찾을 수 있다.
필터링 조건을 추가한다. 추가적인 지표 확인을 추가하여 잘못된 신호를 방지한다.
손해 제도를 최적화한다. 이동 손해, 퇴장 분할 등의 방법으로 위험을 통제할 수 있다.
최적화 중지 방법. 이동 중지, 트렌드 분기 중지 등의 방법을 사용하여 더 많은 수익을 잠금 할 수 있습니다.
자동 스톱을 추가한다. 예를 들어 중요한 정수 문에 접근할 때 스톱을 추가하고, 급격한 회귀를 방지한다.
자본 관리를 최적화한다. 예를 들어, 위험 변화에 따라 포지션 크기를 조정하고 최대 손실을 제어한다.
특정 품종/시기를 위한 테스트 최적화. 매개 변수와 스톱 스 방식은 다른 품종과 시기를 위해 최적화되어야 한다.
중요한 뉴스에 대해 거래를 피하거나 급격한 손실을 방지하는 등의 급격한 사건에 대한 처리를 추가합니다.
이 전략은 통합적으로 평선 시스템, 오버 바이 오버 세일 시스템 및 변동률 시스템을 사용하며, 가치 저평가시 낮은 구매, 가치 고평가시 높은 판매, 강한 트렌드 추적 능력을 가지고 있습니다. 그러나 몇 가지 매개 변수 설정 고정, 상쇄 메커니즘이 완벽하지 않은 문제도 있습니다. 우리는 최적의 매개 변수 설정, 상쇄 메커니즘을 개선하고, 파동 조건을 증가시키는 등의 측면에서 다각적인 최적화를 수행 할 수 있습니다. 전략이 더 안정적이고 신뢰할 수 있습니다. 실전 운영 시에는 피드백 결과를 결합하여 특정 품종과 주기에 대한 테스트를 최적화해야 함으로써 전략의 효율성을 극대화하고 안정적인 수익을 얻을 수 있습니다.
/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.
//AO
fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)
awesome=(sma(hl2,fast)-sma(hl2,slow))*1000
plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))
//Stoch
K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)
k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)
hline(80)
hline(20)
plot(k,color=color.blue)
//RSI
rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)
rsi=rsi(rsisource,rsilength)
hline(70,color=color.orange)
hline(30,color=color.orange)
plot(rsi,color=color.orange)
//ATR
atrlen=input(title="ATR Length", type=input.integer,defval=14)
atrvalue=rma(tr,atrlen)
plot(atrvalue*1000,color=color.green)
LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
stoploss=low-atrvalue
takeprofit=close+atrvalue
strategy.entry("Long Position", strategy.long)
strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
if (ShortCondition)
stoploss=high+atrvalue
takeprofit=close-atrvalue
strategy.entry("Short Position",strategy.short)
strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)