일중 롱 브레이크아웃 전략


생성 날짜: 2024-03-29 16:13:30 마지막으로 수정됨: 2024-03-29 16:13:30
복사: 0 클릭수: 614
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

일중 롱 브레이크아웃 전략

개요

이 전략은 기술 지표에 기반한 일일 다수 거래 전략이다. 주로 세 가지 기술 지표를 사용하여 다수 입시 시점을 판단한다: 1. 미끄러진 낮은 점 2. K 라인 형태 3. 극심한 과매매. 동시에 ATR (Average True Range) 지표를 사용하여 중지 손실과 중지 가격을 계산한다. 이 전략은 모든 주기 및 모든 지표에 적용된다.

전략 원칙

이 전략은 다음과 같은 원칙에 기초하고 있습니다.

  1. 상승 추세에서 주가가 종종 회전이 발생하여 지역 저점을 형성합니다. 이러한 지역 저점은 종종 좋은 구매 기회입니다. 전략은 이러한 구매 기회를 잡기 위해 낮은 점의 흔들림을 사용합니다.
  2. 특정 K선 형태는 종종 트렌드 반전이나 트렌드 연장을 예고합니다. 전략은 반전 구매 시간을 판단하기 위해 보석 3선 타킹 형태를 사용합니다.
  3. 주가가 몇일 연속으로 하락한 후, 공백력이 점차 쇠퇴하고, 계속 하락할 수 있는 공간이 제한되어 주가가 언제든지 상승할 수 있으며, 전략은 이러한 반전 구매 기회를 잡기 위해 극심한 과매매 지표를 사용합니다.
  4. 주식 가격의 변동은 주기적이고 유사하며 ATR 지표로 측정할 수 있으며, 이를 통해 적절한 스톱 스톱 손실 거리를 계산할 수 있다.

전략적 이점

  1. 3가지의 고전적인 기술 지표를 조합하여, 엄격한 정량 거래 시스템을 형성하고, 주관성의 단점을 회피한다.
  2. 스톱 스톱 손실의 설정은 ATR 변동률 지표에 기반하여 객관적으로 수치화 할 수 있으며, 주관적인 단점을 피할 수 있으며, 스톱 손실과 목표 가격 및 시장 변동률이 일치하여 위험을 효과적으로 제어하고 수익을 잠금 할 수 있습니다.
  3. 적용 범위가 넓고, 주기 및 지표에 대한 제한이 없으며, 장점을 최대한 활용하여 이익을 얻을 수 있습니다.

전략적 위험

  1. 단방향 상향행동에 대한 판단 정확도가 높지만, 흔들림행동에 직면하면, 자주 진입하면 손실이 증가할 수 있다.
  2. “이런 일이 벌어진다면, 우리는 더 나은 삶을 살 수 있을 것이다”.
  3. 극심한 과매매 지표는 역전 능력이 제한되어 있으며, 추세 상황에서는 무효가 될 수 있다.

전략 최적화 방향

  1. MA, MACD 등과 같은 트렌드 판단 지표를 추가하여 큰 트렌드 방향을 판단하는 것을 고려할 수 있으며, 상승 추세에서 이 전략을 사용하며 하향 추세에서 중지한다.
  2. 최적화 알고리즘을 고려하여 최적의 매개 변수를 찾고, 특히 ATR 배수의 선택, 정지 배수가 더 작아 수익을 더 빠르게 얻을 수 있다.
  3. 극심한 과매매 지표는 KDJ, RSI 등과 같은 더 성숙한 과매매 지표로 변경하여 최적화 할 수 있습니다.

요약하다

이 일간 다단계 돌파 전략은 휘어지는 낮은 점, 시상식 형태 및 과매매 반전 기반의 양적 거래 전략이다. 세 가지 기술 지표를 사용하여 여러 관점에서 다단계 매수점을 캡처한다. 동시에 ATR 변동률 지표를 사용하여 동적 스톱 손실을 계산한다. 상승 상황에서 이익을 충분히 캡처 할 수 있지만 격동 상황에서 자주 거래 할 위험이 있습니다. 전략에는 약간의 최적화 공간이 있으며, 추세를 판단하고, 변수 및 지표를 최적화하는 방법과 같은 전략의 효과를 더욱 향상시킬 수 있습니다.

전략 소스 코드
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © LuxTradeVenture

//@version=5
strategy("Intraday Bullish Script", overlay=true, margin_long=100, margin_short=100)



// Settings for Strategy 1
entryCondition1 = input.bool(true, title="Use Entry Condition - Strategy 1")

// Input for ATR multiplier for stop loss 
atrMultiplierforstoploss = input.float(2, title="ATR Multiplier for Stop Loss")

// Input for ATR multiplier for target price
atrMultiplierforlongs = input.float(4, title="ATR Multiplier for Target Price")

// Calculate ATR
atrLength = input.int(14, title="ATR Length")
atrValue = ta.atr(atrLength)

// Swing low condition - Strategy 1
swingLow1 = low == ta.lowest(low, 12) or low[1] == ta.lowest(low, 12)


/// 
maj_qual = 6  //input(6)
maj_len = 30  //input(30)
min_qual = 5  //input(5)
min_len = 5  //input(5)

lele(qual, len) =>
    bindex = 0.0
    bindex := nz(bindex[1], 0)
    sindex = 0.0
    sindex := nz(sindex[1], 0)
    ret = 0
    if close > close[4]
        bindex := bindex + 1
        bindex
    if close < close[4]
        sindex := sindex + 1
        sindex
    if bindex > qual and close < open and high >= ta.highest(high, len)
        bindex := 0
        ret := -1
        ret
    if sindex > qual and close > open and low <= ta.lowest(low, len)
        sindex := 0
        ret := 1
        
major = lele(maj_qual, maj_len)
minor = lele(min_qual, min_len)

ExaustionLow  = major ==  1 ? 1 : 0

Bullish3LineStrike = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1]

// Entry and Exit Logic for Strategy 2
// Create variables to track trade directions and entry prices for each strategy
var int tradeDirection1 = na

var float entryLongPrice1 = na


// Calculate entry prices for long positions - Strategy 1
if (swingLow1 or Bullish3LineStrike)
    entryLongPrice1 := close
    tradeDirection1 := 1



// Calculate target prices for long positions based on ATR - Strategy 1
targetLongPrice1 = entryLongPrice1 + (atrMultiplierforlongs * atrValue)



// Calculate stop loss prices for long positions based on entry - Strategy 1
stopLossLongPrice1 = entryLongPrice1 - (atrMultiplierforstoploss * atrValue)


// Entry conditions for Strategy 1
if (tradeDirection1 == 1 and (swingLow1 or Bullish3LineStrike))
    strategy.entry("Long - Strategy 1", strategy.long)


// Exit conditions for long positions: When price reaches or exceeds the target - Strategy 1
if (close >= targetLongPrice1)
    strategy.close("Long - Strategy 1", comment="Take Profit Hit")

// Exit conditions for long positions: When price hits stop loss - Strategy 1
if (close <= stopLossLongPrice1)
    strategy.close("Long - Strategy 1", comment="Stop Loss Hit")