复盘盈亏比自动计算与K线自动生成;居中页头导航
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+19
-12
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user