왓킨스 스네이크 키스 스톰 양적 전략


생성 날짜: 2024-02-18 15:36:22 마지막으로 수정됨: 2024-02-18 15:36:22
복사: 0 클릭수: 527
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

왓킨스 스네이크 키스 스톰 양적 전략

개요

워킨스 뱀 키스 바람 구름 양적 전략은 주로 일 구름 도표 지표와 무작위 지표 RSI를 결합하여 두 지표 신호 판단에 대한 가중치를 통해 양적 거래 전략 신호를 구축하여 증권 품종에 대한 자동 거래를 구현한다. 이 전략은 다양한 강도의 일 구름 도표 지표 신호와 스토치 RSI 지표 신호를 고려하여 중량을 설정하여 거래 결정을 더 부드럽고 안정적으로 만든다.

전략 원칙

이 전략은 한 클라우드 그래프의 전환선, 기준선, 선도 1 및 선도 2와 같은 지표를 스토크RSI의 K선 및 D선과 조합한다. 한 클라우드 그래프 부분에서 전환선이 기준선보다 높고 선도 1이 선도 2보다 높으면 강한 신호로 다중을 하고, 전환선이 기준선보다 낮으면 선도 1이 선도 2보다 강한 빈 신호로 다중을 한다. 또한 전환선이 기준선보다 높거나 낮으면 빈 신호를 생성한다.

우위 분석

이 전략은 하나의 클라우드 그래프와 StochRSI 두 지표를 결합하여 트렌드 방향과 오버 바이 오버 세를 동시에 판단할 수 있으며, 신호는 더 포괄적이고 신뢰할 수 있습니다. 하나의 지표를 단독으로 사용하는 것과 비교하여 잘못된 신호의 발생을 줄일 수 있습니다. 하나의 클라우드 그래프 지표는 중·장기 트렌드 판단에 대해 더 정확하지만, StochRSI 지표는 단기간의 오버 바이 오버 세 현상을 측정할 수 있으며, 둘을 결합하면 전략이 다른 주기에 적합하도록합니다. 전략 중량에 대한 결정에 참여하는 디자인은 전략 신호를 더 평평하고 신뢰할 수 있습니다.

위험 분석

이 전략의 가장 큰 위험은 한 클라우드 그래프와 StochRSI 지표가 모두 잘못된 신호를 일으킬 수 있다는 것입니다. 특히 충격적인 상황에서는 불필요한 거래 수를 증가시킬 수 있습니다. 또한, 무게와 변수 값의 설정은 전략의 효과에 큰 영향을 미칩니다. 무게를 잘못 설정하면 중요한 신호를 놓칠 수 있거나 너무 많은 잘못된 신호를 생성 할 수 있습니다. RSI 길이, Stoch 길이와 같은 몇 가지 중요한 매개 변수는 다른 상품과 시장 환경에 대한 테스트와 최적화가 필요합니다. 그렇지 않으면 전략의 효과에 영향을 미칩니다. 마지막으로, 데이터 문제는 전략의 위험이 될 수 있습니다.

최적화 방향

이 전략은 또한 많은 최적화 공간을 가지고 있다. 첫째, 더 많은 지표들을 추가하는 것을 고려할 수 있다. 예를 들어, 브린 라인, KD 지표 등은 신호 판단을 더 포괄적으로 할 수 있다. 둘째, 기계 학습이나 유전 알고리즘과 같은 방법을 사용하여 자동으로 매개 변수를 최적화할 수 있다. 고정된 매개 변수를 사용하는 대신, 전략을 더 지능적이고 적응력이 강하게 할 수 있다. 셋째, 잘못된 신호를 줄이기 위해 매개 변수 알고리즘을 개선하는 방법을 연구할 수 있다. 넷째, 재중치 메커니즘은 또한 더 나은 신호의 권력을 증가시키는 것과 같은 추가적인 최적화를 할 수 있다. 다섯째, 더 많은 품종이나 시장 부문에 대해 매개 변수와 규칙을 최적화하여 변화하는 시장 환경에 적응할 수 있다.

요약하다

워킨스 뱀 키스 바람 구름 정량화 전략은 하나의 구름 그래프와 스톡RSI 두 개의 지표를 결합하여 중량화 및 변수 디자인을 통해 거래 신호를 형성합니다. 시장의 추세 전환을 자동으로 포착 할 수 있으며, 다양한 품종과 주기에는 좋은 적응력이 있습니다. 깊이 있는 연구와 응용에 가치가있는 정량화 전략입니다. 이 전략은 또한 더 많은 지표와 기술 수단 등을 도입하는 것과 같은 추가 확장 및 최적화의 잠재력을 가지고 있으며, 더 나은 거래 효과를 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Baracuda Ichimoku/StochRSI Strategy", overlay=true)

DecisionWeight = input(50, minval = 0, title="BUY/SELL decision weight")

ichimokuStrong = input(35, minval = 0, title="Ichimoku strong weight")
ichimokuStandard = input(20, minval = 0, title="Ichimoku standard weight")
ichimokuWeak = input(20, minval = 0, title="Ichimoku weak weight")
stochRSIWweak = input(30, minval = 0, title="Stoch RSI weight")

conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(5, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

lengthRSI = input(8, minval=8) //14
lengthStoch = input(5, minval=5)//14
smoothK = input(3,minval=3) 
smoothD = input(3,minval=3)
OverSold = input(20)
OverBought = input(80)
rsi1 = rsi(close, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)


stronglong = conversionLine > baseLine and leadLine1 > leadLine2
strongshort = conversionLine < baseLine and leadLine1 < leadLine2

weaklong = conversionLine > baseLine
weakshort = conversionLine < baseLine

RSIlong = k > d and k < OverSold and d < OverSold
RSIshort = k < d and k > OverBought and d > OverBought

long=(((stronglong ? 1:0)*ichimokuStrong) + ((weaklong? 1:0)*ichimokuWeak) + ((RSIlong? 1:0)*stochRSIWweak)) > DecisionWeight
short=(((strongshort? 1:0)*ichimokuStrong) + ((weakshort? 1:0)*ichimokuWeak) + ((RSIshort? 1:0)*stochRSIWweak)) > DecisionWeight

strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)