MetaTrader5
如何查看最后关闭的交易数据:利润、类型和符号 - MetaTrader 5
在这篇博文中,我将教你如何通过代码块获取最后关闭交易的数据,而无需使用循环。这个方法简单易用,非常适合想要快速查看交易记录的朋友们。 步骤说明 首先,创建一个变量来设置当前日期的开始时间(这个步骤可以选择不做)。 接下来,创建一些其他变量,用于打印图表输出,以及在其他代码块中使用(这也是可选的)。 将此代码放入 OnTick(); 函数中,每次有新报价时都会显示结果,你也可以设置为每根K线显示一次。 代码示例 // 变量定义
string DayStart = "00:00"; // 日开始时间
double LastClosed_Profit; // 最后关闭交易的利润
string TradeSymbol, TradeType;
// 专家初始化--------------------
int OnInit()
{
return(INIT_SUCCEEDED);
}
// 专家去初始化-------------------
void OnDeinit(const int reason)
{
}
// 每次报价时执行--------------------------
void OnTick()
{
// 检查最后关闭的交易
CheckLastClosed();
}
//+------------------------------------------------------------------+
// 检查最后关闭的交易
void CheckLastClosed()
{
datetime HistoryTime = StringToTime(DayStart);
// 从日开始到当前时间的历史数据
if(HistorySelect(HistoryTime,TimeCurrent))
{
int Total = HistoryDealsTotal();
// 获取最后交易的票据号码并选择它以便进一步处理
ulong Ticket = HistoryDealGetTicket(Total -1);
// 获取需要的数据
LastClosed_Profit = NormalizeDouble(HistoryDealGetDouble(Ticket,DEAL_PROFIT),2);
TradeSymbol = HistoryOrderGetString(Ticket,ORDER_SYMBOL);
// 判断是卖出交易
if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_BUY)
{
TradeType = "卖出交易";
}
// 判断是买入交易
if(HistoryDealGetInteger(Ticket,DEAL_TYPE) == DEAL_TYPE_SELL)
{
TradeType = "买入交易";
}
// 输出到图表
Comment("\n","交易总数 - : ", Total,
"\n","最后交易票据 - : ", Ticket,
"\n", "最后关闭利润 -: ", LastClosed_Profit,
"\n", "最后交易类型 -: ", TradeType);
}
}
//+------------------------------------------------------------------+
如果你想获取整个交易历史(从账户开始的所有交易),可以使用 HistorySelect(); 函数,如下所示: // 获取整个历史
HistorySelect(0,TimeCurrent()); 希望这个方法能帮助到你,让你更轻松地管理自己的交易历史!
2024.04.22