复盘盈亏比自动计算与K线自动生成;居中页头导航

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-15 12:58:24 +08:00
parent 105f630388
commit a35a08d2f6
10 changed files with 352 additions and 56 deletions
+19 -12
View File
@@ -4,11 +4,20 @@
return isNaN(n) ? null : n;
}
function calcPnl(direction, entry, target, lots) {
if (!entry || !target || !lots) return '';
if (direction === 'long') return ((target - entry) * lots).toFixed(2);
if (direction === 'short') return ((entry - target) * lots).toFixed(2);
return '';
function calcRR(direction, entry, stop, target) {
if (!entry || !stop || !target) return '';
var risk, reward;
if (direction === 'long') {
risk = entry - stop;
reward = target - entry;
} else if (direction === 'short') {
risk = stop - entry;
reward = entry - target;
} else {
return '';
}
if (risk <= 0) return '';
return (reward / risk).toFixed(2);
}
function calcDuration(openVal, closeVal) {
@@ -30,16 +39,15 @@
var sl = parseNum(form.querySelector('[name="stop_loss"]').value);
var tp = parseNum(form.querySelector('[name="take_profit"]').value);
var close = parseNum(form.querySelector('[name="close_price"]').value);
var lots = parseNum(form.querySelector('[name="lots"]').value) || 1;
var openT = form.querySelector('[name="open_time"]').value;
var closeT = form.querySelector('[name="close_time"]').value;
var hold = document.getElementById('holding_duration');
var initP = document.getElementById('initial_pnl');
var actP = document.getElementById('actual_pnl');
var initR = document.getElementById('initial_rr');
var actR = document.getElementById('actual_rr');
if (hold) hold.value = calcDuration(openT, closeT);
if (initP) initP.value = calcPnl(dir, entry, tp, lots);
if (actP) actP.value = calcPnl(dir, entry, close, lots);
if (initR) initR.value = calcRR(dir, entry, sl, tp);
if (actR) actR.value = calcRR(dir, entry, sl, close);
}
function bindForm() {
@@ -62,9 +70,8 @@
['止盈', data.take_profit], ['平仓价', data.close_price],
['张数', data.lots], ['开仓时间', data.open_time],
['平仓时间', data.close_time], ['持仓时长', data.holding_duration],
['初始盈亏', data.initial_pnl], ['实际盈亏', data.actual_pnl],
['初始盈亏', data.initial_pnl], ['实际盈亏', data.actual_pnl],
['盈亏金额', data.pnl], ['开仓类型', data.open_type],
['预期RR', data.expected_rr], ['实际RR', data.actual_rr],
['离场触发', data.exit_trigger], ['离场补充', data.exit_supplement],
['情绪单', data.is_emotion ? '是' : '否'],
['行为标签', data.behavior_tags], ['备注', data.notes]