Ephemeris Trade Calendar
- 实用工具
- 版本: 1.0
- 激活: 5
Ephemeris Trade Calendar - 把账户历史变成月度盈亏日历 (MT4)
Ephemeris Trade Calendar 把 MetaTrader 4 的历史记录变成图表上的月度盈亏日历。每笔已平仓交易都落在它所属的那一天:单元格按结果着色,显示盈利和亏损笔数,并汇总为每周合计。下方面板可在统计、优势图(按入场星期和小时的 P/L,以及已平仓交易的权益曲线)和当日明细之间切换,TODAY 仪表跟踪您的每日目标和亏损上限。在真实和模拟图表上它只读取历史:从不开仓、修改或平仓。
快速开始
- 将其加载到任意图表(任意品种、任意周期)。不需要开启 Algo Trading。
- 在"终端"窗口打开"账户历史"选项卡,右键选择 All History。MT4 只向程序提供该选项卡中已加载的历史;较短的时间段会让较早的月份为空,并使百分比只是近似值。
- 可选:设置 Symbol Filter 和 Magic Filter 以只跟踪一个品种或一个 EA,并为 TODAY 仪表设置 Daily Target / Daily Loss Limit。
- 检查:徽标显示 TRACKING n TRADES,当月日历开始填充。点击某一天即可打开其明细。
面板
标题栏
- 指示灯:紫色正常,绿色已达目标,红色已触及亏损上限,琥珀色在亏损上限的 80% 以内,灰色没有已平仓交易。
- `<>` 将面板移到下一个角落。`[-]` 将其折叠为 EPHEMERIS 小胶囊,显示今日 P/L(已平仓 + 浮动);`[+]` 展开。
- 副标题:#账户、货币和过滤器:ALL SYM、图表品种或 LIST(n);ALL MAGIC、MANUAL 或 MAGIC(n);NET(含库存费和佣金)或 GROSS。
- 徽标:TRACKING n TRADES、NO CLOSED TRADES、CHECK FILTER LIST(选择了列表过滤但列表为空)、TARGET REACHED、LOSS LIMIT HIT、NEAR LOSS LIMIT。操作后显示几秒:EXPORTED n TRADES, m DAYS、EXPORT FAILED(错误代码)、HISTORY RELOADED、AUTOSCROLL OFF、DAY NOT ON CHART。
月份导航
`<<` 上个月,`>>` 下个月(最多到当前月),TODAY 回到当前月并选中今天。显示当前月时,日历会在午夜自动跟随日期。
日历
- 列为 MO 到 SU(或 SU 到 SA),另加 WEEK 列。
- 日期单元格:日期、当前单位下的数值和盈亏笔数,例如 2W 1L(净值为零的交易两边都不计)。绿色 = 净盈利,红色 = 净亏损,颜色越深 = 相对当月最大一天的结果越大;灰色 = 有交易但净值为零;深色 = 无交易;淡色数字 = 相邻月份。
- 青色边框 = 今天,琥珀色边框 = 选中的日期。
- WEEK:该行在当前单位下的合计和交易笔数 (n tr);百分比模式下为每日百分比之和。
- 点击单元格选中该日并打开 DAY 明细;点击相邻月份的淡色日期会切换到该月。
月度条
NET(金额)、RETURN(当月净值 / 月初余额)、GREEN DAYS(盈利天数 / 交易天数)、TRADES、WIN RATE。
选项卡和开关
- STATS、EDGE 和 DAY 切换下方面板。
- UNIT: MONEY、UNIT: % 和 UNIT: PTS 循环切换日历数值:账户货币;占当天开始时余额的百分比;点数(价格距离 / 品种点值,跨品种相加)。
- SCOPE: MONTH 或 SCOPE: ALL 让 STATS 和 EDGE 针对当前查看的月份或全部已加载历史。
STATS 面板(金额)
Net P/L、Return(净值 / 范围开始时余额)、Trades、Win rate、Profit factor(总盈利 / 总亏损;无亏损交易时显示 --)、Expectancy(每笔净值)、Avg win、Avg loss、Payoff ratio(平均盈利 / 平均亏损)、Largest win、Largest loss、Max drawdown(已平仓交易累计 P/L 自高点的最大回落,金额及占该高点余额的 %)、Win streak、Loss streak、Best day 和 Worst day(含日期)、Green days(盈利 / 交易天数,%)、Swap + comm。底行:SCOPE、LOTS 和 HISTORY FROM(最早加载的记录)。
EDGE 面板(金额)
- ENTRY WEEKDAY:每个星期一根柱,表示当天开仓交易的 P/L(绿色向上,红色向下,平的灰色 = 无交易)。ENTRY HOUR:24 根柱,对应入场小时 0-23。两者都遵循 Day Shift;读数显示最好和最差的星期与小时。
- EQUITY CURVE:范围内已平仓交易按平仓顺序的累计 P/L(最多 82 列),零以上为青绿色,零以下为红色,并显示 end 和 low 值。
DAY 面板(明细)
标题:星期、日期、交易笔数、净值、W/L。列:TICKET、SYMBOL、SIDE、LOTS、OPEN >CLOSE(平移后的时间;* = 在另一天开仓或平仓)、NET。每页七行;`<` 和 `>` 翻页。GO TO DAY 将图表滚动到该日并关闭自动滚动(按 End 返回)。空白日期显示 "No closed trades on this day."
TODAY 模块
closed(今日已平仓净值)、open(符合过滤条件的持仓浮动 P/L)、total。仪表从左侧 LIMIT 到右侧 TARGET,带零点标记;填充表示目标值(已平仓 + 浮动,或仅已平仓)。两者都为 0 时显示 "no target or limit set"。
操作区
- PLOT: ON / PLOT: OFF 绘制当前查看月份中图表品种的交易:开仓箭头(蓝色 buy,橙色 sell)、平仓标记和盈亏颜色的虚线,以及净值标签;鼠标悬停可看到订单号。最多绘制最近 400 笔;此时状态行显示 PLOT n/m。
- EXPORT CSV 写入下列文件。REFRESH 立即重新读取历史。SYNC hh:mm:ss = 最近一次更新。
自动行为
- 每隔 History Check Interval 秒及每个报价检查历史;只有在记录数量、账户或日期变化时才重新计算。
- 只统计 buy 和 sell 交易。已删除的挂单、余额和信用记录会被跳过(余额操作用于百分比,从不计入 P/L)。部分平仓会显示为多笔交易,因为 MT4 为每个平仓部分单独保存订单号。
- 日期按 Assign Trades to Days by 和 Day Shift from Server Time 划分;TODAY 模块使用同样规则。百分比基于从当前余额向前倒推的余额。
- 目标和上限提醒每天各触发一次(重新加载后会再次触发)。它们只做提示:不会平掉任何交易。
- 月份、面板、单位、范围、绘图、角落和折叠状态在切换周期和品种时保留,重新加载或修改输入参数时重置。
- 策略测试器:在图表上本工具从不交易。在测试器中(Market 演示版在此运行),Sample Trades in the Strategy Tester 会在服务器时间 08、11、14 和 17 点开一笔 0.10 手的示例交易(或经纪商最小手数)(方向取自 H1 20-SMA,止损 1.2 ATR,止盈 1.6 ATR,已检查保证金),并在 21 点平仓,magic 20261105,让日历有历史可显示。按钮在可视化测试中可用;日期单元格在那里无法点击。
提醒
目标值达到目标时提示 "daily target reached";跌至负的上限时提示 "daily loss limit reached"。Popup Alert on Target or Limit 显示弹窗;Push Notification on Target or Limit 发送推送(在 工具 > 选项 > 通知 中设置 MetaQuotes ID)。
文件和全局变量
- EXPORT CSV 写入 MQL4\Files\Ephemeris\<account>_trades.csv(ticket、symbol、type、lots、开平仓时间和价格、profit、swap、commission、net、points、magic、day)和 <account>_days.csv(day、trades、wins、losses、net、gross profit、gross loss、lots、points、pct_of_balance)。每次导出会覆盖它们(文件 > 打开数据文件夹)。
- 启用 Publish Global Variables 时:EPH_<account>_TODAY_NET(今日已平仓净值)、EPH_<account>_TODAY_TOTAL(已平仓 + 浮动)、EPH_<account>_GOAL_STATE(1 已达目标,-1 已触及亏损上限,0 都没有)。每秒更新,移除工具时删除。
string a = IntegerToString(AccountNumber());
double goal = GlobalVariableGet("EPH_" + a + "_GOAL_STATE");
if(goal < 0) return; // 今日已触及亏损上限:不再新开仓 - 图表对象使用前缀 EPH_C_(面板)和 EPH_T_(绘制的交易);退出时全部删除。不使用 DLL。
输入参数
- Symbol Filter (All symbols):All symbols / Chart symbol only / Symbol list。
- Symbol List:逗号分隔,不区分大小写;每项匹配所有以它开头的品种(EURUSD 也包括 EURUSDm)。
- Magic Filter (All trades):All trades / Manual trades only (magic 0) / Magic number list。
- Magic Number List:逗号分隔的数字。
- Include Swap and Commission (true):false = 仅总盈利 (GROSS)。
- Assign Trades to Days by (Close time):Close time / Open time。
- Day Shift from Server Time(0,-12 到 12 小时):移动日期边界、入场小时和明细时间。
- Week Starts on (Monday):Monday / Sunday。
- Cell Value at Start (Money):Money / Percent of balance / Points。
- Stats Scope at Start (Viewed month):Viewed month / All loaded history。
- Lower Deck at Start (Stats):Stats / Edge map / Day ledger。
- Daily Target (0 = off)、Daily Loss Limit (0 = off):正数。
- Target and Limit Unit (Money):Money / Percent of day-start balance。
- Include Floating P/L in the Daily Goal (true)。
- Popup Alert on Target or Limit (true),Push Notification on Target or Limit (false)。
- Publish Global Variables (false)。Plot Trades on Chart at Start (true)。
- Profit Color、Loss Color:单元格、标签和绘图颜色。
- Panel Corner (Top left):Top left / Top right / Bottom right / Bottom left。Panel X Offset (12)、Panel Y Offset (24):距该角落的像素。
- Panel Scale(1.0,0.6-2.0)。Start Collapsed (false)。
- History Check Interval(2,1-60 秒)。
- Sample Trades in the Strategy Tester (true):仅限测试器,见上文。
典型设置
- 全账户日志:默认值,账户历史设为 All History。
- 单个 EA:Magic Filter = Magic number list,Magic Number List = 其 magic,在其图表上 PLOT: ON。
- 每日防护:Daily Target 1.0,Daily Loss Limit 2.0,Target and Limit Unit = Percent of day-start balance,Push Notification on Target or Limit 和 Publish Global Variables = true,让您的 EA 读取 GOAL_STATE。
- 按本地时间划分日期:Day Shift from Server Time = 您的 UTC 偏移减去服务器的偏移(服务器 UTC+2,您 UTC+8:6)。
说明
- 只能看到"账户历史"中已加载的历史。点数会跨不同点值的品种相加。STATS 和 EDGE 始终以金额显示。
- 统计只描述过去的结果;不能预测未来,交易存在亏损风险。
