그림자 거래 전략

저자:차오장, 날짜: 2023-11-03 16:03:59
태그:

img

전반적인 설명

그림자 거래 전략은 잠재적인 시장 반전 기회를 결정하기 위해 긴 하위 또는 상위 그림자와 K 라인을 식별합니다. 긴 하위 그림자가 확인되면 길게 이동하고 긴 상위 그림자가 확인되면 짧게 이동합니다. 전략은 주로 상거래를 위해 그림자 반전의 일반적인 원리를 사용합니다.

전략 논리

그림자 거래 전략의 핵심 논리는 K-라인에서 긴 상위와 하위 그림자를 식별하는 것입니다. 전략은 K-라인 몸의 크기를 계산합니다.corpo그늘의 크기를 두고 맹세하나니pinnaL그리고pinnaS. 그림자의 크기가 몸의 크기를 어느 정도 더 커지면, 역행 가능성이 있다고 생각합니다. 구체적으로 전략에는 다음과 같은 단계가 포함됩니다.

  1. K-라인 몸 크기를 계산corpo이 값은 오픈 가격과 종료 가격의 절대 값입니다.
  2. 위 그림자를 계산합니다.pinnaL가장 높은 가격과 닫는 가격의 절대값입니다.
  3. 아래 그림자를 계산pinnaS가장 낮은 가격과 가장 가까운 가격의 절대값입니다.
  4. 상층 그림자가 몸 크기보다 더 큰지 확인pinnaL > (corpo*size), 어디size조절 가능한 매개 변수입니다.
  5. 아래 그림자가 몸 크기보다 더 큰 경우를 확인pinnaS > (corpo*size).
  6. 위의 조건이 충족되면 그림자를 가진 K-선 끝에서 짧게 (길이 긴 상층 그림자) 또는 길게 (길이 긴 하층 그림자) 가 됩니다.

또한 전략은 K-라인 범위가dim최소값보다 크다min무시할 수 없는 범위의 사소한 K선을 필터링합니다.

이점 분석

  • 그림자 반전의 일반적인 원리를 이용합니다. 비교적 신뢰할 수 있는 거래 신호입니다.
  • 간단하고 명확한 전략 논리, 직관적인 매개 변수 설정, 이해하기 쉬운
  • 유연한 위험 관리로 입시 빈도를 변경하도록 매개 변수를 조정
  • 추세, 지원/ 저항 등을 결합하여 더 이상 최적화 할 수 있습니다.

위험 과 해결책

  • 그림자 역전에서 실패의 확률이 존재, 매개 변수를 조정함으로써 위험을 줄일 수 있습니다
  • 트렌드 판단과 결합하여 역 트렌드 거래를 피해야 합니다.
  • 매개 변수는 다른 제품에 최적화가 필요하고 제품마다 다를 수 있습니다.
  • 다른 지표를 결합하여 항목을 필터링 할 수 있습니다. 더 높은 수익성을 위해 더 낮은 승률

최적화 방향

  • 안정성을 높이기 위해 제품별 매개 변수를 최적화
  • 반 트렌드를 피하기 위해 이동 평균 등으로 트렌드 판단을 추가하십시오.
  • 효과 향상을 위해 최근 최고/하위점을 깨는 검사를 추가
  • 손실을 최소화하면서 수익을 극대화하기 위해 손실을 중지하고 이익을 취하도록 최적화하십시오.
  • 위치 크기를 최적화, 다른 제품에 따라 다를 수 있습니다

결론

그림자 거래 전략은 간단하고 실용적인 단기 거래 전략이다. 그림자 반전의 일반적인 원리를 사용하여 거래 신호를 생성한다. 전략 논리는 간단하고 구현하기 쉽고 제품 차이에 따라 조정 및 최적화 될 수 있다. 동시에 그림자 거래는 또한 특정 위험을 초래한다. 잘못된 거래를 줄이기 위해 트렌드와 다른 요인과 필터레이션을 결합해야합니다. 올바르게 사용하면 그림자 거래는 양자 거래 시스템의 효과적인 구성 요소가 될 수 있습니다.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-11 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Shadow Trading", overlay=true)

size = input(1,type=float)
pinnaL = abs(high - close) 
pinnaS = abs(low-close)
scarto = input(title="Tail Tollerance", type=float, defval=0.0018)
corpo = abs(close - open)
dim = abs(high-low)
min = input(0.001)
shortE = (open + dim)

longE = (open - dim)
barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na)

longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto)
minimo=low+scarto
massimo=high+scarto
barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na)
shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
//plot(shortE)
//plot(longE)
//plot(open)
ss= shortcond ? close : na
ll=longcond ? close : na
offset= input(0.00000)

DayClose = 2
closup = barssince(change(strategy.opentrades)>0)  >= DayClose 

longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) 

crossFlag = longcond ? 1 : 0
monthBegin = input(1,maxval = 12)
yearBegin = input(2013, maxval= 2015, minval=2000)

if(month(time)>monthBegin and year(time) >yearBegin)
    if (longcond)
        strategy.entry("short", strategy.short, stop = low - offset)   
//strategy.close("short", when = closup)
shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
if(month(time)>monthBegin and year(time) >yearBegin)
    if (shortcond)
        strategy.entry("long", strategy.long, stop = high + offset)
//strategy.close("long", when = closup)

Target =  input(20) 
Stop = input(70) //- 2
Trailing = input(0) 
CQ = 100

TPP = (Target > 0) ? Target*10: na
SLP = (Stop > 0) ? Stop*10 : na
TSP = (Trailing > 0) ? Trailing : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

더 많은