구름 너머의 전략


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

구름 너머의 전략

개요

이 전략은 슈퍼 트렌드 지표 보조 주문을 사용하며, 구름 층과 K선 색과 결합하여 필터링을 수행하여, 제한 가격 주문은 수익률을 증가시킵니다. 그 목표는 트렌드가 시작 된 후 빠르게 트렌드를 포착하여 회수 영역에서 손실 위험을 줄이는 것입니다.

전략 원칙

  1. ATR 주기의 최고 가격과 최저 가격의 평균값을 기준으로 계산한다.

  2. 팩터 곱에 따라 계산된 상반 및 하반 레일

  3. 종결값이 오프레일보다 크면 1, 오프레일보다 작면 -1으로 표시되며, 다른 경우에는 현재 상태를 유지한다.

  4. 마감 가격과 상하의 위치 관계에 따라 실시간으로 스톱 라인을 조정한다.

  5. 위아래 궤도 간격의 일정한 비율에 따라 구름 범위를 계산한다.

  6. 슈퍼 트렌드가 1일 때, 더 많이 할 때는 상장 가격보다 낮은 상장 가격을 필요로 하고, 더 많이 할 때는 상장 가격보다 높은 상장 가격을 필요로 한다.

  7. 더할 때, 구매 제한요건을 붙이고, 가격은 K선 상위 종결 가격이다. 공백할 때, 판매 제한요건을 붙이고, 가격은 K선 상위 종결 가격이다.

  8. 필터링 기간, 모든 포지션을 닫을 수 있습니다.

우위 분석

이 전략은 슈퍼 트렌드 지표와 클라우드 개념을 결합하여 트렌드가 시작되면 빠르게 트렌드 방향을 잡을 수 있습니다. 일반 이동식 스톱에 비해 슈퍼 트렌드 스톱 라인은 가격 변화를 더 빨리 추적 할 수 있습니다. 클라우드 필터는 가짜 돌파구로 인한 손실을 방지합니다.

  1. 슈퍼 트렌드 지표는 매우 민감하고, 트렌드를 추적하는 능력이 강하다.

  2. 클라우드 개념 필터링은 가짜 침입으로 인한 손실을 줄여줍니다.

  3. K선 색은 판단에 도움을 주며, 반향을 피한다.

  4. 가격 제한은 슬라이포인트 영향을 줄이고 수익률을 높여줍니다.

  5. 다양한 거래 요구 사항에 맞게 사용자 정의 시간대 및 포지션 관리

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 슈퍼 트렌드 지표의 매개 변수 설정이 잘못되면 곡선이 너무 민감해져서 잘못된 신호가 더 많이 발생한다.

  2. 클라우드 범위가 너무 커지면 정상적인 돌파 신호를 필터링하여 수익에 영향을 미칠 수 있다.

  3. 한정 가격이 큰 변동이 있을 때 거래가 어렵고, 거래 기회를 놓칠 수 있다.

  4. 어떤 추적 상쇄도 엄청난 손실의 체계적인 위험을 완전히 피할 수 없습니다.

  5. 지위가 너무 커지면 손실도 커지고, 위험을 통제해야 한다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.

  1. 다양한 시장과 품종을 테스트하여 최적의 슈퍼 트렌드 파라미터 조합을 찾습니다.

  2. 시장의 변동에 따라 동적으로 조정되는 스톱 손실을 설정하십시오.

  3. 클라우드 범위를 최적화하여 소음 제거와 신호 보존 사이의 균형을 잡습니다.

  4. 포지션 최적화 모듈을 추가하여 포지션 크기가 동적으로 시장 변화에 따라 달라집니다.

  5. 다른 시간대에 다른 파라미터 조합을 사용해서 시장의 리듬에 적응한다.

  6. 테스트와 다른 지표의 조합으로 사용된 효과

요약하다

요약하자면, 이 전략의 전체적인 아이디어는 명확하며, 트렌드를 포착하는 데 있어 장점은 분명하다. 그러나 어떤 전략도 체계적인 위험을 완전히 피할 수 없으며, 실제 거래에서 발생할 수 있는 위험을 줄이기 위해 포지션을 제어하고, 지속적인 최적화를 통해 전략의 장점을 최대한 활용해야합니다. 이 전략은 큰 발전 잠재력을 가지고 있으며, 더 많은 변화하는 시장 환경에 적응하기 위해 후속 테스트 및 최적화를 할 가치가 있습니다.

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

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v2.0 Limit", shorttitle = "STL str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR")
Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100)
ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100)
centr = input(true, defval = true, title = "need center of ATR?")
border = input(false, defval = false, title = "need border?")
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")

//Super Trend ATR 1
src = close
Up=hl2-(Factor*atr(ATR))
Dn=hl2+(Factor*atr(ATR))
TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn
Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)
Tsl1 = Trend==1? TUp: TDown
Tsl2 = Trend==1? TDown: TUp
limit = (Tsl1 - Tsl2) / 100 * cloud
upcloud = Tsl1 - limit
dncloud = Tsl2 + limit

//Cloud
linecolor = Trend == 1 ? green : red
centercolor = centr == true ? blue : na
cloudcolor = Trend == 1 ? green : red
cline = (Tsl1 + Tsl2) / 2
P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center")
P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1")
P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1")
fill(P1, P4, color = linecolor == red ? red : lime, transp = 50)
fill(P2, P5, color = linecolor == red ? red : lime, transp = 50)

//Signals
up = 0.0
dn = 0.0
up := Trend != 1 ? 0 : Trend == 1 and close < open ? close : up[1]
dn := Trend != -1 ? close * 1000 : Trend == -1 and close > open ? close : dn[1]

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if true
    strategy.entry("Long", strategy.long, needlong ? lot : 0, limit = up, when = (Trend == 1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort ? lot : 0, limit = dn, when = (Trend == -1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()