대수공간 이치모쿠 긴코 효 지표를 기반으로 한 교차곱 전략


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

대수공간 이치모쿠 긴코 효 지표를 기반으로 한 교차곱 전략

개요

이 전략은 암호 화폐를 대상으로 한 간단한 거래 전략으로, 상수 공간의 일차 균형 지표를 사용하여 거래 신호를 생성한다. 이 전략은 암호 화폐 품종을 가로질러 거래하는 데 적합하다.

전략 원칙

이 전략은 사용자 정의된 대수 공간의 1차 균형 지표를 주요 거래 지표로 사용합니다. 1차 균형 지표는 일반적으로 전전선, 기준선 및 지연선을 포함한다. 이 전략에서는 이러한 선은 대수 가격의 공간에서 계산됩니다.

구체적으로, 전진선은 가장 최근의 9개의 주기 상수 낮은 점과 상수 높은 점의 평균값이다. 기준선은 가장 최근의 26개의 주기 상수 평균값이다. 지연선1은 전진선과 기준선의 평균값이며, 지연선2는 가장 최근의 52개의 주기 상수 평균값이다.

지연선 1 위에 지연선 2를 뚫을 때, 더 많은 일을 한다. 지연선 1 아래에 지연선 2를 뚫을 때, 공백을 한다.

우위 분석

이 전략의 주요 장점은 상수 가격 공간의 일차 균형 지표를 사용하여 암호화폐의 트렌드 변화를 더 잘 식별할 수 있다는 것입니다. 상수 좌표 아래에서는 비율 변화가 더 일관되어 더 신뢰할 수있는 거래 신호를 생성하는 데 도움이됩니다.

또 다른 장점은, 이 전략이 암호화폐 품종을 넘나드는 거래에 적용된다는 것입니다. 상수 공간의 일차 균형 지표의 사용은 다른 품종 사이의 가격 변화의 비교성을 강화할 수 있습니다.

위험 분석

이 전략의 주요 위험은 평형 지표 자체가 잘못된 신호를 생성할 수 있다는 것입니다. 특히 암호화폐 시장의 높은 변동성 기간 동안 평형 지표의 성능은 신뢰할 수 없습니다.

또한, 대수 변환은 극단적인 상황에서도 무효가 될 수 있다. 가격이 비정상적으로 변동할 때 대수 좌표의 비교성이 떨어진다.

최적화 방향

이 전략은 다음과 같은 방법으로 최적화될 수 있습니다.

  1. 다른 지표와 결합하여 1차 균형 지표의 신호를 검증하여 잘못된 신호의 가능성을 감소시킵니다.

  2. 암호화폐 품종에 더 적합한 1차 균형 지표 매개 변수의 최적값을 업데이트합니다.

  3. 포지션을 개시하기 전에 거래량 필터와 같은 필요한 필터 조건을 설정하여 가짜 브레이크로 오해받지 않도록하십시오.

  4. 포지션 개시 전략을 최적화하고, 스톱 및 스톱 조건을 설정하고, 위험을 제어합니다.

요약하다

이 전략은 대수 공간의 첫 번째 평형 지표의 장점을 활용하여, 크로스 버라이어티 거래에 적용되는 암호화폐를 대상으로 한 정량화 전략을 설계한다. 이 전략은 추세 변화를 식별하는 데 도움이되지만, 또한 위험이 존재한다. 추가적인 최적화를 통해, 전략 매개 변수를 암호화폐 시장에 더 적합하게 만들고, 필요한 입점 조건과 위험 제어 장치를 설정하여 더 나은 전략 성능을 얻을 수 있다.

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

//@version=3
strategy(title="Log Ichimoku Strategy", shorttitle="Ichi Strategy", overlay=true)

drop1st(src) =>
    x = na
    x := na(src[1]) ? na : src

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(26, minval=1, title="Displacement")
showClouds = input(false, "show clouds")

loglows = log(drop1st(low))
loghighs = log(drop1st(high))

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

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

plot(showClouds ? exp(conversionLine) : na, color=#0496ff, title="Conversion Line")
plot(showClouds ? exp(baseLine) : na, color=#991515, title="Base Line")

p1 = plot(showClouds ? exp(leadLine1) : na, offset = displacement, color=green, title="Lead 1")
p2 = plot(showClouds ? exp(leadLine2) : na, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = showClouds ? (leadLine1 > leadLine2 ? green : red) : na)

if (crossover(leadLine1, leadLine2))
    strategy.entry("Ichi-LE", strategy.long, oca_name="Ichi", comment="Ichi")

if (crossunder(leadLine1, leadLine2))
    strategy.entry("Ichi-SE", strategy.short, oca_name="Ichi",  comment="Ichi")