13
Follow
1
Followers
Mengenai masalah grafik sekunder dari grafik strategi
Created 2025-02-08 12:16:59 Updated 2025-02-10 09:42:02
4
754
Mengenai masalah grafik sekunder dari grafik strategi
judul: tentang subgraph pertanyaan tentang grafik strategi isi: bahasa python, dapat membuat beberapa subgraph? ingin indikator yang berbeda dihitung yang ditampilkan pada subgraph yang berbeda, untuk memudahkan analisis. saat ini grafik strategi hanya memiliki satu subgraph, dengan plot pada subgraph indikator yang berbeda dihitung, yang ditampilkan pada satu subgraph, karena setiap indikator nilai daerah yang sangat berbeda, setiap visibilitas kurva yang buruk.
Related Recommendations
Inventor Quant Workflow FAQ (Continuously Updated)Financial Magic Zone Global KOL RecruitmentFAQ Summary (Updating...)PINE Language Introductory Tutorial of FMZ QuantPrimary Tutorial of Strategy Writing with FMZ Quant Trading Platform (Must Read)Getting Started with FMZ Quant Trading Platform (Must Read)
Comment
All comments (4)
您可以参考这样设计。
javascript
var chartCfg = {
tooltip: {
xDateFormat: '%Y-%m-%d %H:%M:%S, %A'
},
legend: {
enabled: true,
},
plotOptions: {
candlestick: {
color: '#d75442',
upColor: '#6ba583'
}
},
rangeSelector: {
buttons: [{
type: 'hour',
count: 1,
text: '1h'
}, {
type: 'hour',
count: 3,
text: '3h'
}, {
type: 'hour',
count: 8,
text: '8h'
}, {
type: 'all',
text: 'All'
}],
selected: 2,
inputEnabled: true
},
series: [{
type: 'candlestick',
name: 'BTC/USD',
id: 'primary',
data: [],
}, {
type: 'line',
name: 'RSI',
data: [],
yAxis: 1, // 绑定副图1
color: '#1a1a1c',
}, {
type: 'line',
name: 'RSI2',
data: [],
yAxis: 2, // 绑定副图2
color: '#ff5733',
}],
yAxis: [{
height: '50%', // 主图
resize: {
enabled: true
},
}, {
top: '55%', // 副图1(RSI)
height: '20%',
offset: 0,
opposite: true,
}, {
top: '80%', // 副图2(RSI2),避免与副图1重叠
height: '20%',
offset: 0,
opposite: true,
}],
};
function main() {
let c = Chart(chartCfg);
let preBarTime = 0;
while (true) {
var records = exchange.GetRecords();
if (records.length <= 0) {
continue;
}
var rsi = TA.RSI(records, 14);
for (let i = 0; i < records.length; i++) {
if (records[i].Time > preBarTime) {
if (i != 0) {
c.add(0, [records[i - 1].Time, records[i - 1].Open, records[i - 1].High, records[i - 1].Low, records[i - 1].Close], -1); // OHLC
c.add(1, [records[i - 1].Time, rsi[i - 1]], -1); // RSI
c.add(2, [records[i - 1].Time, rsi[i - 1]], -1); // RSI
}
c.add(0, [records[i].Time, records[i].Open, records[i].High, records[i].Low, records[i].Close]); // OHLC
c.add(1, [records[i].Time, rsi[i]]); // RSI
c.add(2, [records[i].Time, rsi[i]]); // RSI
preBarTime = records[i].Time;
} else if (records[i].Time == preBarTime) {
c.add(0, [records[i].Time, records[i].Open, records[i].High, records[i].Low, records[i].Close], -1); // OHLC
c.add(1, [records[i].Time, rsi[i]], -1); // RSI
c.add(2, [records[i].Time, rsi[i]], -1); // RSI
}
}
c.update(chartCfg)
Sleep(1000)
}
}
2 years ago
- 1


