피크 투 피크 패턴을 기반으로 한 거래 전략


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

피크 투 피크 패턴을 기반으로 한 거래 전략

개요

이 전략의 이름은 ?? 피크 피크 형태에 기반한 거래 전략 ?? 이며, 주로 K 선의 피크 피크 형태를 사용하여 구매 및 판매 시간을 결정한다. 이 전략은 기술 분석 유형 전략에 속한다.

전략 원칙

이 전략은 K선 그래프의 피크 피크 형태를 상승 피크 (upFractal) 와 하강 피크 (downFractal) 를 정의하여 판단한다.

구체적으로, 상승 절정의 판단 논리는: 현재 K 선의 높이는 가장 최근의 n 루트 K 선의 높이며, 이후의 K 선의 높이는 현재 K 선의 높이를 초과하지 않는다.

하향 피크의 판단 논리는: 현재 K 선의 최저점은 가장 최근 n 루트 K 선의 최저점이며, 후속 K 선의 최저점은 현재 K 선의 최저점보다 낮지 않는다.

여기서는 뷰어 변수와 순환을 통해 전 n 루트와 후 n 루트 K 라인이 현재 K 라인의 높고 낮은 점과의 관계를 판단하여 결국 상승 절정과 하락 절정을 결정한다.

그래서 이 전략의 핵심 논리는 다음과 같습니다.

  1. 상승점과 하락점을 판단하는 방법
  2. 피크가 올라가면 더 많이 하고, 피크가 내려면 더 적게 합니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 피크 피크 형태는 쉽게 인식되고, 조작이 간단합니다.
  2. 기본적 영향을 받지 않고 기술적인 형태를 활용하는 것
  3. 철회 가능성은 낮습니다.

위험 분석

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

  1. 피크 피크의 형상 판단이 정확하지 않아 최고의 출전 기회를 놓쳤을 수도 있다.
  2. 급격한 변동이 있을 때, 정지 손실을 결정하는 것은 어려울 수 있습니다.
  3. 다른 요소들을 무시하고 형식에만 의존하는 것.

대책:

  1. 피크 피크 모양의 매개 변수를 조정하여 판단 논리를 최적화합니다.
  2. 다른 지표와 함께 정지 지점을 결정합니다.
  3. 기본 분석 또는 다른 전략과 함께 사용

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 매개 변수 조정 공간을 추가하고, 피크 피크 형태 판단을 최적화합니다.
  2. Stop Loss 로직을 추가합니다.
  3. 거래량이나 변동성 같은 다른 지표들을 고려하세요.
  4. 다른 시간주기 분석과 결합

요약하다

이 전략은 피크 피크 형태 원칙에 기초하여 간단하고 쉽게 작동하며, 회귀는 작을 수 있다. 그러나 또한 위험이 있으며, 다른 분석 방법과 함께 사용해야 최대 효과를 낼 수 있다. 다음 단계는 판단 정확성, 손해 중지, 지표 최적화 등의 측면에서 개선될 것이다.

전략 소스 코드
/*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"}]
*/

//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)

// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)

// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)

// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (shortCondition)
    strategy.entry("Sell", strategy.short)