획기적인 공정한 스프레드 전략


생성 날짜: 2024-02-20 15:47:05 마지막으로 수정됨: 2024-02-20 15:47:05
복사: 0 클릭수: 1197
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

획기적인 공정한 스프레드 전략

개요

이것은 매우 간단한 트렌드를 따르는 전략이다. 그것은 다중형 공정 가격 차이가 있을 때 더 많이 하고, 공중형 공정 가격 차이가 있을 때 청산 또는 공백한다. 그것은 평형 상태에서 좋지 않은 성능을 발휘하지만, 트렌드 상태에서 매우 풍부한 이익을 얻을 수 있다.

전략 원칙

이 전략의 핵심 논리는 공평 가격 격차 형태를 식별하는 것이다. 이른바 공평 가격 격차란, 하루의 최고 가격이 전날의 최저 가격보다 낮거나, 하루의 최저 가격이 전날의 최고 가격보다 높을 때, 돌파의 간격을 형성한다. 이것은 일반적으로 가능한 추세 전환을 예고한다. 구체적으로, 전략 규칙은 다음과 같다:

  1. 만약 그 날의 최고 가격이 전날의 최저 가격보다 낮고, 종결 가격이 전날의 최저 가격보다 낮다면, 공수형 공정 가격차이 형성되었다고 여겨진다.
  2. 만약 그날의 최저가격이 전날의 최고가격보다 높고, 종결가격이 전날의 최고가격보다 높다면, 다단식 공정가격차가 형성되었다고 여겨진다.

여기서 두 개의 lag, 즉 앞 두 K 선의 높고 낮은 가격을 사용하여 공정 가격 차이를 판단하여 가짜 돌파 또는 단기 회귀의 영향을 받지 않도록, 형태 판단의 신뢰성과 신호 품질을 향상시킵니다.

전략적 이점

  1. 적절한 공정 가격 격차 형태를 식별하는 것은 미래의 추세에 대한 예측을 가능하게 합니다.
  2. 전략의 논리와 규칙은 간단하고 명확하며 이해하기 쉽고 실행이 쉽다.
  3. 새로운 트렌드를 빠르게 포착할 수 있습니다.

전략적 위험

  1. 공평한 가격차별 형태 판단은 완전히 정확하지 않으며, 단기간에 회귀가 발생하면 잘못된 신호를 발생시킬 수 있다.
  2. 이 전략은 트렌드가 반전될 때 손실이 발생할 수 있으며, 적당히 손실을 방지할 필요가 있다.
  3. “이번 경기에서 더 나쁜 성적을 거두면 더 많은 잘못된 신호와 작은 손실이 발생할 수 있습니다”.

최적화 방향

  1. 최적화된 손해 차단 메커니즘. 동적 ATR을 구현하는 동적 위험 제어와 결합할 수 있다.
  2. 필터링 조건을 최적화한다. 거래량, 평균선 지표 등의 기준으로 공정 가격 격차 돌파의 신뢰성을 판단할 수 있다.
  3. 다인자 모델과 결합하여 미래의 추세를 예측할 확률

요약하다

이 전략은 공정 가격 차이의 형성을 식별하여 추세가 역전될 수 있음을 판단하는 기본 추세 추적 전략에 속한다. 장점은 트렌드 역전의 타이밍이 정확하지만 약간의 오류가 존재한다는 것입니다. 위험을 차단하고 필터링을 통해 제어 할 수 있으며 판단의 정확성을 높이기 위해 더 많은 요소를 결합 할 수 있습니다.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Greg_007

//@version=5
strategy("Fair Value Gap Strategy", "FVG Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding = 1)

var longOnly = input.bool(false, "Take only long trades?")
var pyramid = input.bool(false, "Since this can generate a lot of trades, make sure to fill in the commission (if applicable) for a realistic ROI.", group = "REMINDERS")
var pyramid2 = input.bool(false, "Modify pyramiding orders to increase the amount of trades.", group = "REMINDERS")
var bearFVG = false
var bullFVG = false
var plotBull = false
var plotBear = false
var bearTrend = false
var bullTrend = false

//BEARISH FVG
if high < low[2] and close[1] < low[2]
    bullFVG := false
    bearFVG := true
    plotBear := true
    if not longOnly
        strategy.entry("Short", strategy.short)
    else
        strategy.close_all()
else
    //BULLISH FVG 
    if low > high[2] and close[1] > high[2]
        bullFVG := true
        bearFVG := false
        plotBull := true
        strategy.entry("Long", strategy.long)
        
// plotshape(plotBull, style=shape.labeldown, location=location.abovebar, color=color.green, text="FVG",textcolor=color.white, size=size.tiny, title="Bull FVG", display=display.all - display.status_line)
// plotshape(plotBear, style=shape.labelup, location=location.belowbar, color=color.red, text="FVG",textcolor=color.white, size=size.tiny, title="Bear FVG", display=display.all - display.status_line)

// //reset the status
// plotBull := false
// plotBear := false