Shift In and Out 전략 V2.0


생성 날짜: 2023-09-21 15:21:40 마지막으로 수정됨: 2023-09-21 15:21:40
복사: 0 클릭수: 636
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 진입과 진출 가격을 계산하여 추세 상황에서 장거리 거래를 수행합니다.

전략 원칙

  1. K 라인의 종결 가격의 비율 이동 가격을 계산한다.

  2. 아래로 이동하는 가격은 구매 라인이고, 위로 이동하는 가격은 판매 라인이다.

  3. 가격이 구매 라인에 닿을 때 포지션을 다.

  4. 가격이 매매선 (Sell Out Line) 에 닿을 때 평지한다.

전략적 이점

  • 모바일 스톱 스톱 손해, 수동 조작이 필요하지 않습니다.
  • 사용자 정의 이동 비율, 최적화 매개 변수
  • 더 많이 하고 거래 빈도를 낮추는 것뿐입니다.
  • 거래 시간 범위를 제한할 수 있습니다

전략적 위험

  • 트렌드 종말을 제대로 판단할 수 없는 상황
  • 시간 지연으로 인해 빠른 회귀를 놓칠 수 있습니다.

최적화 방향

  • 다른 이동 비율 변수를 테스트합니다.
  • 최적화 매개 변수의 인크티멘트 설정
  • 동적으로 이동하는 지표 설정과 동향 판단
  • 새로운 고위권에 진입하는 것을 고려하는 것

요약하다

이 전략은 이동적 입출장 가격을 설정하여 자동으로 트래킹 스톱을 구현한다. 변수 최적화와 판단 논리 최적화는 전략의 효과를 더욱 향상시킬 수 있다. 그러나 리스크에 노출되는 것은 예방할 필요가 있다.

전략 소스 코드
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's ShiftEx Strategy v2.0", shorttitle = "ShiftEx 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
buy = input(-10.0, title = "Buy, src-%")
sell = input(0.0, title = "Sell, src+%")
buysrc = input(low, title = "Source for buy")
sellsrc = input(ohlc4, title = "Source for sell")
offset = input(true)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Levels
bar = close > open ? 1 : close < open ? -1 : 0
mult = 1 / syminfo.mintick
lb = bar == -1 ? buysrc + ((buysrc / 100) * (buy * 1)) : buysrc + ((buysrc / 100) * (buy * 2))
levelbuy = round(lb * mult) / mult
ls = sellsrc + ((sellsrc / 100) * sell)
levelsell = round(ls * mult) / mult

//Lines
os = offset ? 1 : 0
plot(levelbuy, offset = os, linewidth = 2, color = lime, title = "Buy")
plot(levelsell, offset = os, linewidth = 2, color = blue, title = "Sell")

//Trading
if low[1] > 0
    strategy.entry("long", strategy.long, limit = levelbuy, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("close", strategy.short, 0, limit = levelsell, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))