java.lang.Object
io.runon.trading.technical.analysis.indicator.divergence.Divergence

public class Divergence extends Object
다이버전스 뜻은 사전적 의미는 차이, 이격, 발산 등을 의미합니다. 대부분의 지표는 가격을 따라가기 때문에 가격이 오르면 같이 오르고 내리면 같이 내립니다. 그러나 종종 반대로 움직이거나 하는 경우가 있는데 이러한 주가와 지표의 움직임의 이격, 차이, 발산을 다이버전스라고 정의합니다. 다이버전스는 여러가지 종류를 정의할 수 있겠으나 일반적으로 많이 나타나며 신뢰할만한 다이버전스는 세종류이며 사실 이중 한 종류가 다른 한 종류에 포함 된다고 할 수도 있기에 크게는 일반 다이버전스와 히든 다이버전스 두 종류로 기억하셔도 됩니다. 다른 여러가지를 정의할 수 있겠으나 실전에서 잘 나타나지 않거나 신뢰도가 높지 않기에 여기서는 세가지만 소개하도록 하겠습니다. 각각의 다이버전스는 상승 다이버전스와 하락 다이버전스으로 나뉘며 상승 다이버전스는 향후 상승 추세로의 전환, 하락 다이버전스는 향후 하락 추세로의 전환이 될 수도 있음을 암시합니다. (1) 일반 다이버전스(Regular Divergence) 일반 다이버전스 [그림 7-1] 일반 다이버전스 일반 하락 다이버전스는 시세의 고점이 상승하나 지표는 이를 따라가지 못하여 고점이 하락하는 경우를 일반 하락다이버전스가 발생했다고 하며 추세 지표를 예를 들자면 가격의 고점을 갱신하였으나 추세는 고점을 갱신하지 못함을 의미합니다. 이는 가격은 상승하였으나 상승 추세는 둔화되었음을 의미하기에 조만간 추세가 반전될 수도 있음을 암시합니다. 일반 상승 다이버전스는 시세의 저점이 하락하나 지표의 저점은 높아지는 경우로 하락 추세가 둔화되기에 조만간 추세가 반전될 수도 있음을 암시합니다. 거래량 지표에서 발생한다면 시세의 방향에 비해 매수세, 혹은 매도세가 약해짐을 의미하기에 추세가 반전될 수도 있음을 의미하며 모멘텀 지표에서 발생한다면 모멘텀이 둔화되어 반전될 수도 있음을 의미합니다. (2) 과장된 다이버전스(Exaggerated Divergence) 과장 다이버전스 [그림 7-2] 과장된 다이버전스 과장된 다이버전스는 일반 다이버전스와 유사하며 개인적으로는 일반 다이버전스의 일종으로 봐도 된다 생각합니다. 일반 다이버전스에서 시세의 고점이나 저점이 보합을 이룬다고 하더라도 일반 다이버전스와 본질적으로 큰 차이가 없기에 비슷한 효과를 낼 것으로 생각합니다. 하지만 일반 다이버전스보다 신뢰도가 약한 것은 사실입니다. (3) 히든 다이버전스(Hidden Divergence) 히든 다이버전스 [그림 7-3] 히든 다이버전스 히든 다이버전스는 주로 일반다이버전스가 나타난 후에 나타나는 경우가 많습니다. 이런 경우 히든 다이버전스를 우선시 한다고 알려져 있습니다. 예를 들자면 하락장에서 쌍바닥을 만들고 상승다이버전스가 생성되었다면 상승 반전을 기대할 수 있으나 이후 고점에서 히든 하락 다이버전스가 생성되는 경우가 있습니다. 이것은 지표는 끌어 올리고 있으나 가격 고점이 내려 오는 것으로 상승다이버전스의 효과는 이미 고점을 만듦으로써 종료되고 고점이 내려오는 하락추세를 만드는 것이기에 하락추세의 지속을 의미합니다. 즉, 히든 다이버전스는 주로 일반 다이버전스 이후에 나타나며 이때 일반 다이버전스의 효과가 종료됨을 의미하기에 기존의 추세가 지속됨을 의미합니다.
Author:
ccsweets
  • Constructor Details

    • Divergence

      public Divergence()
  • Method Details

    • getArray

      public static DivergenceData[] getArray(TradeCandle[] candleArr, BigDecimal[] compareArr, int minLength, int maxLength, int size)
      다이버전스 Array를 돌려준다.
      Parameters:
      candleArr - 캔들 배열
      compareArr - 지표 배열
      minLength - 최소 탐색 길이
      maxLength - 최대 탐색 길이
      size - 최대 배열 개수
      Returns:
      다이버전스 배열
    • getArray

      public static DivergenceData[] getArray(TradeCandle[] candleArr, BigDecimal[] compareArr, int minLength, int maxLength)
      다이버전스 Array를 돌려준다.
      Parameters:
      candleArr - 캔들 배열
      compareArr - 지표 배열
      minLength - 최소 탐색 길이
      maxLength - 최대 탐색 길이
      Returns:
      다이버전스 배열
    • getArray

      public static DivergenceData[] getArray(BigDecimal[] indicatorArr, BigDecimal[] compareArr, int minLength, int maxLength)
      다이버전스 Array를 돌려준다.
      Parameters:
      indicatorArr - 지표 배열
      compareArr - 비교 지표 배열
      minLength - 최소 탐색 길이
      maxLength - 최대 탐색 길이
      Returns:
      다이버전스 배열
    • getArray

      public static DivergenceData[] getArray(BigDecimal[] indicatorArr, BigDecimal[] compareArr, int minLength, int maxLength, int size)
      다이버전스 Array를 돌려준다.
      Parameters:
      indicatorArr - 지표 배열
      compareArr - 비교 지표 배열
      minLength - 최소 탐색 길이
      maxLength - 최대 탐색 길이
      size - 최대 배열 개수
      Returns:
      다이버전스 배열
    • getArray

      public static DivergenceData[] getArray(io.runon.trading.TimePrice[] highTimePriceArr, io.runon.trading.TimePrice[] lowTimePriceArr, BigDecimal[] compareArr, int minLength, int maxLength, int size)
      다이버전스 Array를 돌려준다.
      Parameters:
      highTimePriceArr - 고가 배열
      lowTimePriceArr - 저가 배열
      compareArr - 비교지표배열
      minLength - 최소길이
      maxLength - 최대길이
      size - 최대 배열 길이
      Returns:
      다이버전스 배열
    • getArray

      public static DivergenceData[] getArray(io.runon.trading.TimePrice[] highTimePriceArr, io.runon.trading.TimePrice[] lowTimePriceArr, BigDecimal[] compareArr, int minLength, int maxLength)
      다이버전스 Array를 돌려준다.
      Parameters:
      highTimePriceArr - 고가 배열
      lowTimePriceArr - 저가 배열
      compareArr - 비교지표배열
      minLength - 최소길이
      maxLength - 최대길이
      Returns:
      다이버전스 배열