fix: ECR-004 威科夫区间评分硬化与 VP 绘图减负(已审)
评分选 TR、阶段最小跨度、elements_only 门闩、Top-8 VP;无币种独立参数。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2222,7 +2222,8 @@ function initTradingView(symbol, timeframe) {
|
||||
if (!isNaN(t0) && !isNaN(t1) && !isNaN(hi) && !isNaN(lo)) {
|
||||
const fill = 'rgba(52, 152, 219, 0.07)';
|
||||
const border = 'rgba(52, 152, 219, 0.75)';
|
||||
const fillLines = 6;
|
||||
// ECR-004:填充线 6→3,减 series
|
||||
const fillLines = 3;
|
||||
const step = (hi - lo) / (fillLines + 1);
|
||||
for (let fi = 1; fi <= fillLines; fi++) {
|
||||
const fy = lo + step * fi;
|
||||
@@ -2320,20 +2321,29 @@ function initTradingView(symbol, timeframe) {
|
||||
const t1 = tr.end_time ? parseTs(tr.end_time) : chartEnd;
|
||||
if (!isNaN(t1)) {
|
||||
const bins = vp.bins || [];
|
||||
// ECR-004 A+C:只画有量 Top-N,避免每 bin 一条 series
|
||||
const TOP_N = 8;
|
||||
const ranked = bins
|
||||
.filter(function(b) { return b && b.volume > 0; })
|
||||
.slice()
|
||||
.sort(function(a, b) { return b.volume - a.volume; })
|
||||
.slice(0, TOP_N);
|
||||
let maxVol = 0;
|
||||
bins.forEach(function(b) { if (b.volume > maxVol) maxVol = b.volume; });
|
||||
const maxWidthSec = Math.max(60, Math.floor((t1 - parseTs(tr.start_time)) * 0.15));
|
||||
bins.forEach(function(b) {
|
||||
ranked.forEach(function(b) { if (b.volume > maxVol) maxVol = b.volume; });
|
||||
const tStart = parseTs(tr.start_time);
|
||||
const maxWidthSec = Math.max(60, Math.floor((t1 - (isNaN(tStart) ? t1 : tStart)) * 0.15));
|
||||
ranked.forEach(function(b) {
|
||||
if (!b.volume || maxVol <= 0) return;
|
||||
const wSec = Math.max(1, Math.floor(maxWidthSec * (b.volume / maxVol)));
|
||||
const alpha = 0.15 + 0.55 * (b.volume / maxVol);
|
||||
const alpha = 0.2 + 0.55 * (b.volume / maxVol);
|
||||
const leftT = Math.max(isNaN(tStart) ? (t1 - wSec) : tStart, t1 - wSec);
|
||||
mainChart.addLineSeries({
|
||||
color: 'rgba(142, 68, 173, ' + alpha.toFixed(2) + ')',
|
||||
lineWidth: 1,
|
||||
lastValueVisible: false,
|
||||
priceLineVisible: false
|
||||
}).setData([
|
||||
{ time: t1 - wSec, value: b.price },
|
||||
{ time: leftT, value: b.price },
|
||||
{ time: t1, value: b.price }
|
||||
]);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user