이 전략은 기본 이동 평균 시스템에서 신호를 받은 입구점을 최적화합니다.
가장 중요한 논리는
한 기간 동안의 이동 평균을 계산합니다 (예를 들어 20일)
크로스오버는 긴/단 신호를 생성합니다
신호가 나오면 즉시 들어가지 말고 더 높은 레벨을 기다리세요
더 나은 수준이 지정된 날 (예: 3 일) 내에 발생하면 트레이드를 입력합니다.
그렇지 않으면 5일째에 닫기 가격으로 입력하여 놓치지 않도록 합니다
이것은 즉시 신호를 입력하기보다는 통합 후의 동향의 재개를 활용하기 위해 노력합니다. 개선 된 수준에서 위치를 설정 할 수 있습니다.
더 나은 입시 레벨을 위한 입시 최적화
최대 대기일이 완전히 놓친 거래를 피합니다.
간단하고 명확한 규칙
대기 시간 및 임계 기준은 최적화되어야 합니다.
단기적인 트렌드 기회를 놓칠 수도 있습니다.
시간 및 가격 조건을 모니터링 할 필요가 있습니다
이 전략은 트렌드를 놓치지 않도록 단순 입시 최적화를 통해 더 나은 입시 수준을 달성하는 것을 목표로합니다. 그러나 대기 시간 및 입시 기준을 최적화하는 것이 중요합니다.
/*backtest start: 2023-08-14 00:00:00 end: 2023-09-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dongyun //@version=4 strategy("等待一个更好的入场机会", overlay=true) period = input(20,'') maxwait = input(3,'') threshold = input(0.01,'') signal = 0 trend = 0.0 newtrend = 0.0 wait = 0.0 initialentry = 0.0 trend := sma(close,period) signal := nz(signal[1]) if trend > nz(trend[1]) signal := 1 else if trend < nz(trend[1]) signal := -1 wait := nz(wait[1]) initialentry := nz(initialentry[1]) if signal != signal[1] if strategy.position_size > 0 strategy.close('long',comment='trend sell') signal := -1 else if strategy.position_size < 0 strategy.close('short',comment='trend buy') signal := 1 wait := 0 initialentry := close else if signal != 0 and strategy.position_size == 0 wait := wait + 1 // test for better entry if strategy.position_size == 0 if wait >= maxwait if signal > 0 strategy.entry('long',strategy.long, comment='maxtime Long') else if signal < 0 strategy.entry('short',strategy.short, comment='maxtime Short') else if signal > 0 and close < initialentry - threshold strategy.entry('long',strategy.long, comment='delayed Long') else if signal < 0 and close > initialentry + threshold strategy.entry('short',strategy.short, comment='delayed short')