8
Follow
1363
Followers
시각적 향상 도구! 브릭 차트와 평균 캔들스틱을 사용하여 FMZ 시장 동향을 파악하세요.
Created 2025-06-06 09:27:29 Updated 2025-06-06 17:34:58
2
959
양적 거래에서 전통적인 캔들스틱 차트는 가장 일반적으로 사용되는 데이터 표현 방식 중 하나이지만, 변동에 둔감하거나 과도한 노이즈가 발생하는 등 몇 가지 한계점도 있습니다. 가격 추세를 더욱 명확하게 파악하기 위해 트레이더들은 종종 다음과 같은 개선된 차트를 사용합니다.
- 렌코: 시간이 아닌 가격 변화에 따라 추첨하여 시장 노이즈를 효과적으로 걸러냅니다.
- 하이킨 아시: 가격 데이터를 매끄럽게 하여 추세 방향을 보다 직관적으로 보여줍니다.
이 글에서는 FMZ 양적 거래 플랫폼에서 일반적인 K-라인을 기반으로 브릭 차트와 평균 K-라인 데이터를 계산하는 방법을 소개하고, 전략 개발자가 시장 동향을 보다 직관적으로 분석하는 데 도움이 되는 그리기 효과를 보여줍니다.
브릭 차트(렌코)
렌코 차트는 "벽돌"을 단위로 사용하며, 가격이 고정 범위(예: 100달러)를 넘어 변동할 때만 새로운 벽돌이 그려집니다.
- 장점: 가격 변동을 기반으로 시장의 작은 변동을 걸러내고 주요 추세를 강조합니다.
- 적용 가능한 시나리오: 중장기 추세를 파악하고 거래에서 노이즈 간섭을 줄이는 데 적합합니다.
거래 신호 해석
- 추세 확인: 지속적으로 상승하는 벽돌은 강력한 추세를 나타내며 포지션을 유지할 수 있습니다. 반전 벽돌이 나타나면 추세가 반전된다는 신호입니다.
- 돌파 거래: 새로운 가격이 등장할 때, 특히 이전 최고가/최저가를 돌파할 때 시장에 진입하는 것을 고려하세요.
- 거짓 브레이크아웃 필터링: 브릭 차트는 작은 변동을 무시하므로 진동 기간 동안 작은 거짓 브레이크아웃을 걸러내는 데 도움이 됩니다.
핵심 계산 논리:
- 벽돌 크기 설정 brickSize
- 초기 가격을 기준으로 최신 가격이 이전 벽돌 가격과 brickSize 이상 차이가 나는지 지속적으로 비교합니다.
- 가격이 한도를 넘어 오르면 상승 벽돌을 뽑습니다. 하락하는 가격에도 동일하게 적용됩니다.
브릭 다이어그램(Renko)을 계산하고 코드를 그립니다.
javascript
/*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)
}
}
백테스팅
하이킨 아시
하이킨 아시는 전통적인 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 线,具有趋势持续性更强的特点。
추세 판단 및 신호 인식
- 몸통이 크고 위아래 그림자가 거의 없는 강세 캔들은 강력한 상승 추세를 나타냅니다.
- 큰 몸통과 거의 위아래 그림자가 없는 음의 선은 강한 하향 추세를 나타냅니다.
- 위쪽과 아래쪽 그림자가 점점 길어지고, 실제 몸통은 줄어들고 있습니다. 추세가 약해지고 있으니 반전에 주의하세요.
- 몸통은 매우 짧고, 그림자는 길다. 시장 변동성이 크므로 지금은 거래를 하지 마십시오.
구현 코드 및 도면:
javascript
/*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)
}
}
백테스팅
END
렌코 차트와 하이킨 아시는 트렌드 트레이더를 위한 강력한 도구입니다.
- 렌코 차트는 가격 변위에 초점을 맞추고 있으며 돌파와 추세 확인에 적합합니다.
- 하이킨 아시는 가격 평활화에 초점을 맞추고 있으며 추세 위치 제어에 적합합니다.
- 두 가지를 보완적으로 사용하면 추세 전략 신호의 안정성과 충격 방지 능력을 향상시킬 수 있습니다.
백테스팅과 실시간 검증을 결합하고, 자신의 거래 상품과 주기에 맞는 차트 솔루션을 선택하여 개인화된 양적 거래 시스템을 만드는 것이 좋습니다.
Related Recommendations
When Top Comments Meet AI Quant: A Journey Into Strategy ImplementationThe Hottest AI Trading Technology of 2025: A Smart Trading Guide to FMZ Platform with Claude (Part 1)Exploration of Counter-Trend Short-Term Mean Reversion Strategy: A Learning Practice of "Volatility Statistical Arbitrage"A Brief Discussion on the Development Record of A Cryptocurrency Trend IndicatorVisual Enhancement Tool! Use Renko and Heikin Ashi to Understand Market Trends on FMZBuilding A Multi-Account Walkthrough System That Supports MyLanguage and Pine Strategy Language Based on FMZDesign of Real Ticker Driven Simulation Trading System Based on FMZ Quant Trading PlatformUsing AI to Learn Strategy Design Reversely: A New Way to Improve Quantitative Trading SkillsThe Go-Anywhere Quantitative Journey Starts from FMZQuantitative Practice of DEX Exchanges (4) - Strategy Access Test of WOOFi / EdgeX



