avatar of 发明者量化-小小梦 发明者量化-小小梦
집중하다 사신
4
집중하다
1271
수행원

시각적 향상 도구! 브릭 차트와 평균 캔들스틱을 사용하여 FMZ 시장 동향을 파악하세요.

만든 날짜: 2025-06-06 09:27:29, 업데이트 날짜: 2025-06-06 17:34:58
comments   2
hits   568

[TOC]

시각적 향상 도구! 브릭 차트와 평균 캔들스틱을 사용하여 FMZ 시장 동향을 파악하세요.

양적 거래에서 전통적인 캔들스틱 차트는 가장 일반적으로 사용되는 데이터 표현 방식 중 하나이지만, 변동에 둔감하거나 과도한 노이즈가 발생하는 등 몇 가지 한계점도 있습니다. 가격 추세를 더욱 명확하게 파악하기 위해 트레이더들은 종종 다음과 같은 개선된 차트를 사용합니다.

  • 렌코: 시간이 아닌 가격 변화에 따라 추첨하여 시장 노이즈를 효과적으로 걸러냅니다.
  • 하이킨 아시: 가격 데이터를 매끄럽게 하여 추세 방향을 보다 직관적으로 보여줍니다.

이 글에서는 FMZ 양적 거래 플랫폼에서 일반적인 K-라인을 기반으로 브릭 차트와 평균 K-라인 데이터를 계산하는 방법을 소개하고, 전략 개발자가 시장 동향을 보다 직관적으로 분석하는 데 도움이 되는 그리기 효과를 보여줍니다.

브릭 차트(렌코)

렌코 차트는 “벽돌”을 단위로 사용하며, 가격이 고정 범위(예: 100달러)를 넘어 변동할 때만 새로운 벽돌이 그려집니다.

  • 장점: 가격 변동을 기반으로 시장의 작은 변동을 걸러내고 주요 추세를 강조합니다.
  • 적용 가능한 시나리오: 중장기 추세를 파악하고 거래에서 노이즈 간섭을 줄이는 데 적합합니다.

거래 신호 해석

  • 추세 확인: 지속적으로 상승하는 벽돌은 강력한 추세를 나타내며 포지션을 유지할 수 있습니다. 반전 벽돌이 나타나면 추세가 반전된다는 신호입니다.
  • 돌파 거래: 새로운 가격이 등장할 때, 특히 이전 최고가/최저가를 돌파할 때 시장에 진입하는 것을 고려하세요.
  • 거짓 브레이크아웃 필터링: 브릭 차트는 작은 변동을 무시하므로 진동 기간 동안 작은 거짓 브레이크아웃을 걸러내는 데 도움이 됩니다.

핵심 계산 논리:

  • 벽돌 크기 설정 brickSize
  • 초기 가격을 기준으로 최신 가격이 이전 벽돌 가격과 brickSize 이상 차이가 나는지 지속적으로 비교합니다.
  • 가격이 한도를 넘어 오르면 상승 벽돌을 뽑습니다. 하락하는 가격에도 동일하게 적용됩니다.

브릭 다이어그램(Renko)을 계산하고 코드를 그립니다.

/*backtest
start: 2025-05-01 00:00:00
end: 2025-06-06 00:00:00
period: 1h
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT","balance":1000,"stocks":0.5}]
*/

let globalbricks = []
let lastBarTime = 0

function getBricks(r, brickSize, sourceAttribute, lastPrice) {
    for (let i = 1; i < r.length; i++) {
        let bar = r[i]
        let price = bar[sourceAttribute]
        let time = bar.Time

        if (time < lastBarTime) {
            continue 
        }

        // 遍历原始K线数据
        while (Math.abs(price - lastPrice) >= brickSize) {
            if (globalbricks.length > 0 && time == globalbricks[globalbricks.length - 1].Time) {
                time = globalbricks[globalbricks.length - 1].Time + 1000
            }
            // 构造砖块
            let brick = {
                Time: time,
                Open: lastPrice,
                Close: 0,
                High: 0,
                Low: 0
            }

            if (price > lastPrice) {
                // 上涨砖块
                lastPrice += brickSize
                brick.Close = lastPrice
                brick.High = lastPrice
                brick.Low = brick.Open
            } else {
                // 下跌砖块
                lastPrice -= brickSize
                brick.Close = lastPrice
                brick.High = brick.Open
                brick.Low = lastPrice
            }

            // 放入数组
            globalbricks.push(brick)

            // time 累加1秒,防止一根BAR分成多块brick时断开
            time += 1000
        }

        lastBarTime = bar.Time
    }

    return globalbricks
}

function getRenko(r, brickSize, sourceAttribute) {
    // 原始K线数据如果不符合计算要求,直接返回
    if (!r || r.length <= 0) {
        return null
    }

    if (globalbricks.length == 0) {
        return getBricks(r, brickSize, sourceAttribute, r[0][sourceAttribute])
    } else {
        return getBricks(r, brickSize, sourceAttribute, globalbricks[globalbricks.length - 1].Close)
    }
}

function main() {
    let c = KLineChart({
        overlay: true
    })

    while (true) {
        let r = _C(exchange.GetRecords)
        let bricks = getRenko(r, 100, "Close")
        bricks.forEach(function (brick, index) {
            c.begin(brick)
            c.close()
        })

        Sleep(1000)
    }
}

백테스팅

시각적 향상 도구! 브릭 차트와 평균 캔들스틱을 사용하여 FMZ 시장 동향을 파악하세요.

하이킨 아시

하이킨 아시는 전통적인 K-라인을 매끄럽게 하는 공정입니다.

  • 장점: 가격 데이터를 매끄럽게 하여 추세 방향을 더 명확하게 제공하고 잘못된 신호를 줄입니다.
  • 적용 가능한 시나리오: 추세 추종 전략에 적용 가능하며, 트레이더가 추세 속에서 포지션을 더 오래 유지하는 데 도움이 됩니다.

계산 방법은 다음과 같습니다.

HA_Close = (Open + High + Low + Close) / 4
HA_Open = (前一根 HA_Open + 前一根 HA_Close) / 2
HA_High = max(High, HA_Open, HA_Close)
HA_Low = min(Low, HA_Open, HA_Close)
Heikin Ashi 本质上是一种移动平均滤波的 K 线,具有趋势持续性更强的特点。

추세 판단 및 신호 인식

  • 몸통이 크고 위아래 그림자가 거의 없는 강세 캔들은 강력한 상승 추세를 나타냅니다.
  • 큰 몸통과 거의 위아래 그림자가 없는 음의 선은 강한 하향 추세를 나타냅니다.
  • 위쪽과 아래쪽 그림자가 점점 길어지고, 실제 몸통은 줄어들고 있습니다. 추세가 약해지고 있으니 반전에 주의하세요.
  • 몸통은 매우 짧고, 그림자는 길다. 시장 변동성이 크므로 지금은 거래를 하지 마십시오.

구현 코드 및 도면:

/*backtest
start: 2025-05-01 00:00:00
end: 2025-06-06 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT","balance":1000,"stocks":0.5}]
*/

function toHeikinAshi(records) {
    if (!records || records.length == 0) {
        return null 
    }

    let haRecords = []

    for (let i = 0; i < records.length; i++) {
        let r = records[i]
        let ha = {}

        ha.Time = r.Time
        ha.Close = (r.Open + r.High + r.Low + r.Close) / 4

        if (i === 0) {
            // 第一根 Heikin Ashi 的开盘价用普通K线的开盘价和收盘价的均值
            ha.Open = (r.Open + r.Close) / 2
        } else {
            // 后续每根的开盘价 = 上一根Heikin Ashi开盘价和收盘价均值
            ha.Open = (haRecords[i - 1].Open + haRecords[i - 1].Close) / 2
        }

        ha.High = Math.max(r.High, ha.Open, ha.Close)
        ha.Low = Math.min(r.Low, ha.Open, ha.Close)

        haRecords.push(ha)
    }

    return haRecords
}

function main() {
    let c = KLineChart({
        overlay: true
    })

    while (true) {
        let r = _C(exchange.GetRecords)
        let heikinAshiRecords = toHeikinAshi(r)
        heikinAshiRecords.forEach(function (bar, index) {
            c.begin(bar)
            c.close()
        })
        Sleep(1000)
    }
}

백테스팅

시각적 향상 도구! 브릭 차트와 평균 캔들스틱을 사용하여 FMZ 시장 동향을 파악하세요.

END

렌코 차트와 하이킨 아시는 트렌드 트레이더를 위한 강력한 도구입니다.

  • 렌코 차트는 가격 변위에 초점을 맞추고 있으며 돌파와 추세 확인에 적합합니다.
  • 하이킨 아시는 가격 평활화에 초점을 맞추고 있으며 추세 위치 제어에 적합합니다.
  • 두 가지를 보완적으로 사용하면 추세 전략 신호의 안정성과 충격 방지 능력을 향상시킬 수 있습니다.

백테스팅과 실시간 검증을 결합하고, 자신의 거래 상품과 주기에 맞는 차트 솔루션을 선택하여 개인화된 양적 거래 시스템을 만드는 것이 좋습니다.