이치모쿠 긴코 효에 기반한 데이 트레이딩 전략


생성 날짜: 2023-10-16 16:10:55 마지막으로 수정됨: 2023-10-16 16:10:55
복사: 0 클릭수: 728
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이치모쿠 긴코 효에 기반한 데이 트레이딩 전략

개요

이 전략은 1차 평형선을 사용하여 일일 주식 거래를 수행하며, 단선 거래 전략에 속한다. 1차 평형선의 변환선, 기준선 및 선행선 조합을 사용하여 매매 신호 판단을 하고, 병렬선 SAR을 보조하여 손실 추적을 수행하여 이중 보호를 실현한다.

원칙

1차 평형선은 전환선, 기준선, 선행 1선, 선행 2선으로 구성된다. 전환선은 당일 종전 가격과 지난 9일 최고 가격 최저 가격 평균값의 평균값으로, 최근 기간 동안의 주가 평형상태를 반영한다. 기준선은 지난 26일 최고 가격 최저 가격 평균값으로, 중장기적인 평형상태를 대표한다. 선행 1선은 기준선과 전환선의 평균값으로, 미래 흐름의 흐름을 반영한다. 선행 2선은 지난 52일 최고 가격 최저 가격 평균값이다. 이 평형선은 조합되어 구매 판매 신호를 형성한다.

닫기 가격이 밑에서 기준선을 뚫고 선행 2선보다 높을 때, 구매 신호가 발생한다. 닫기 가격이 위로부터 기준선을 뚫고 선행 1선보다 낮을 때, 판매 신호가 발생한다. 패러블리 SAR는 스톱로스를 추적하는데, 가격이 SAR보다 낮을 때 스톱로스 신호를 발산한다.

이 전략은 평형 선의 조합을 이용하여 주식의 미래 추세와 현재 추세의 지속성을 판단하는 전형적인 추세 추적 전략에 속한다. 구매 및 판매 신호가 발생했을 때, 동향을 따라 시간에 맞춰 거래를 한다. 동시에, SAR 중지 이익 메커니즘은 손실 확산을 방지한다.

장점

  1. 평형선을 사용하여 미래 추세를 판단하여 판단의 정확도를 높여라

평형선은 다른 주기적 가격 정보를 포함하고 있으며, 추세 변화를 미리 반영하고, 조합 판단을 사용하여 정확도를 높인다. 단일 지표에 비해, 구매 및 판매 지점을 더 정확하게 판단할 수 있다.

  1. SAR 피해 추적, 이중 보호

SAR는 유연하게 주식 운행을 추적하여 손실을 줄 수 있다. 균형선과 결합하여 수익 후 적당히 손실을 줄 수 있으며 손실이 확대되는 것을 방지할 수 있다.

  1. 간단한 매개 변수 설정, 쉽게 실행

이 전략은 적은 수의 매개 변수를 가지고 있으며, 곡선 적합과 같은 복잡한 기술 지표에 의존하지 않으며, 간단하고 실용적이며, 쉽게 구현할 수 있다. 매개 변수의 기본값은 좋은 효과를 얻을 수 있다.

  1. 일일 단선 거래에 적용

하루 내의 가격 변화를 이용하여 매매점을 판단하는 것은 단선 거래 전략에 속한다. 주식의 하루 내의 변동성을 최대한 활용하여 이익을 얻을 수 있다.

위험

  1. 탈퇴 위험

트렌드 구매와 거래는 높은 회수율을 가져옵니다. 단편적 손실을 통제하기 위해 합리적인 중지 지점을 설정해야합니다.

  1. 위기 상황

진동상태에서, 평형선이 생성하는 신호는 빈번하게 발생하여 수익을 창출하는 데 도움이 되지 않는다. 적절한 변수를 조정하여 일부 신호를 필터링 할 수 있다.

  1. 과대 최적화 위험

간단한 매개 변수가 지나치게 최적화되기 쉽고, 실디 효과는 바람직하지 않을 수 있다. 과도한 적합성을 방지하기 위해 안정성 테스트를 실시해야 한다.

  1. 효과 요인의 차이

효과는 선택된 주식과 관련이 있으며, 전략이 최대한 효과를 발휘하도록 트렌드가 뚜렷한 주식을 선택하여 거래해야합니다.

최적화 방향

  1. 다른 지표와 결합하여 필터링 신호

이동 평균과 같은 다른 지표와 결합하여 불확실한 신호를 필터링하여 가상 거래를 방지 할 수 있습니다.

  1. 동적 조정 스톱포인트

시장의 변동에 따라 SAR의 매개 변수를 동적으로 조정할 수 있으며, 스톱로드를 더 유연하게 만들 수 있다.

  1. 최적화 변수 모음

더 체계적인 최적화와 조합 테스트를 통해 더 나은 변수 조합을 찾고, 전략 효과를 향상시킬 수 있다.

  1. 시장 상황에 따라 포지션을 조정

대장 움직임과 같은 시장 환경에 따라, 동적으로 조정하는 전략의 위치와 위치를, 위험을 제어할 수 있다.

요약하다

이 전략은 평형 선의 구매/판매 신호를 이용하고, 평형 선 SAR과 함께 스톱 로드 추적을 구현하는, 비교적 간단하고 실용적인 짧은 선 거래 전략이다. 평형 선의 기능을 효과적으로 이용하여 미래 추세를 예측하고, 돌파구에 대한 구매/판매 작업을 한다. 동시에 스톱 로드 메커니즘은 손실을 증가시키는 것을 피한다. 실행할 때 철회 제어, 주식 선택 및 파라미터 최적화 등의 문제에 주의를 기울여야 한다. 이러한 문제를 해결하면, 쉽게 실행할 수 있고, 효과도 적지 않은 일간 거래 전략이다.

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

//@version=3
//
//  Based on the trading strategy described at
//    http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:ichimoku_cloud
//
//  See Also:
//    - Backtesting and forwardtesting (of TradingView Strategies) <https://www.tradingview.com/wiki/Strategies#Backtesting_and_forwardtesting>
//    - 9 Mistakes Quants Make that Cause Backtests to Lie <https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/>
//    - When Backtests Meet Reality <http://financial-hacker.com/Backtest.pdf>
//    - Why MT4 backtesting does not work <http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020>
//
// 
// -----------------------------------------------------------------------------
// Copyright 2018 sherwind
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// The GNU General Public License can be found here
// <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//

strategy(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=3)

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")

usePSARTrailStop    = input(true, title="Use Parabolic SAR for Trailing Stop")
psarStart           = input(0.02, title="Parabolic SAR Start")
psarIncrement       = input(0.02, title="Parabolic SAR Increment")
psarMaximum         = input(0.2,  title="Parabolic SAR Maximum")


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

conversionLine = donchian(conversionPeriods)
baseLine  = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
leadLineDisp1 = leadLine1[displacement]
leadLineDisp2 = leadLine2[displacement]

psar = sar(psarStart, psarIncrement, psarMaximum)

// BUY Signal:
// close > leading span b and
// leading span a > leading span b and 
// close crosses over base line and
// close > parabolic sar
buySignal = close > leadLineDisp2 and
  leadLineDisp1 > leadLineDisp2 and
  crossover(close, baseLine) and
  (usePSARTrailStop ? close > psar : not usePSARTrailStop)

// Sell Signal:
// close < leading span a and 
// leading span a < leading span b and 
// close crosses under base line and
// close < psar
sellSignal = close < leadLineDisp1 and
  leadLineDisp1 < leadLineDisp2 and
  crossunder(close, baseLine) and
  (usePSARTrailStop ? close < psar : not usePSARTrailStop)

hasLong  = strategy.position_size > 0
hasShort = strategy.position_size < 0


strategy.entry("ichimoku-long", strategy.long, when = buySignal)
strategy.entry("ichimoku-short", strategy.short, when = sellSignal)

strategy.exit("trailstop-long", "ichimoku-long", stop = psar, when = hasLong and usePSARTrailStop)
strategy.exit("trailstop-short", "ichimoku-short", stop = psar, when = hasShort and usePSARTrailStop)