关闭订单的利润计算 "HELP" - 页 2 123456789 新评论 [删除] 2016.12.11 14:41 #11 Renat Akhtyamov:不,我不是指你已经写过的东西。 请用文字告诉我--你对哪些平仓订单感兴趣的利润计算方法- 每日- 亏损- 最后一个订单 还是别的什么? 描述一下这个系列一系列 "暂时 "关闭的最后订单 Renat Akhtyamov 2016.12.11 14:48 #12 Natashe4ka:"目前 "最后关闭的一系列订单也就是说,你需要关于最近关闭的一系列订单的信息,如果我理解正确的话?为了实现这种方法,你应该首先在每次成功关闭时填写订单 数组,然后以你需要的形式拉出已关闭订单的信息你能自己做吗? Vitaly Muzichenko 2016.12.11 14:52 #13 尝试Comment( LastProfitCL(-1, 0) );//+----------------------------------------------------------------------------+//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция) double LastProfit=0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic){ if(t<=OrderCloseTime()) { t=OrderCloseTime(); LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); }}}} return(LastProfit);} Profit calculation of closed 如何编码? 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Renat Akhtyamov 2016.12.11 14:53 #14 Vitaly Muzichenko:尝试Comment( LastProfitCL(-1, 0) );//+----------------------------------------------------------------------------+//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция) double LastProfit=0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){ if(t<=OrderCloseTime()) { t=OrderCloseTime(); LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); } } } } return(LastProfit);}如果不在同一时间关闭怎么办?不太对。如果你在提交平仓单时记住了这一点,那么就可以了。但这句话... t=OrderCloseTime();是不需要的。它将拉出整个系列的总数但夫人想要更详细的信息,正如我从第一个帖子中了解的那样 Vitaly Muzichenko 2016.12.11 14:54 #15 Renat Akhtyamov: 如果不在同一时间关闭怎么办? 如果函数关闭,一切都会顺利进行 [删除] 2016.12.11 14:58 #16 Renat Akhtyamov:所以,如果我理解正确的话,你需要的是关于最后关闭的一系列订单的信息?为了实现这种方法,你应该首先在成功收盘时创建一个订单 数组,然后拉出已关闭订单的信息你能自己做吗?请建议我们使用一个例子。I.e. if (cnt>0) Ticket=OrderTicket()-1;然后再进行比较? Renat Akhtyamov 2016.12.11 15:00 #17 Natashe4ka: 你 最好 给我一个例子。I.e. if (cnt>0) Ticket=OrderTicket()-1;然后再进行比较?没问题。现在唯一需要澄清的是,该系列的平仓订单信息应该是什么样子?是转帐还是应该用+和-来划分金额? Alekseu Fedotov 2016.12.11 15:02 #18 有一个指标用于i-Profit输出今天、周、月、年的当前利润。 Vitaly Muzichenko 2016.12.11 15:14 #19 Natashe4ka:一个更好的例子是下面是一个例子。int ClosePosition(int type=-1,int mg=-1) { GlobalVariableSet(GetGlobalVariableName("LastProfit"), TimeCurrent()); // запомним время закрытия // здесь код закрытия всех и сразу, нужен цикл, чтоб не выходил с функции до полного закрытия всех} 故事的其余部分//+----------------------------------------------------------------------------+//| Возвращает суммарный профит в валюте депозита серии закрытых позиций |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция) double LastProfit=0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) { if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){ if(t<=OrderCloseTime()) { t=OrderCloseTime(); LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); }}}} return(LastProfit);}//===============================================================================================//----------------------- Создает и возвращает имя глобальной переменной -----------------------+//===============================================================================================string GetGlobalVariableName(string name="", string symb="0") { if(symb=="0") { symb=Symbol();} if(!MQLInfoInteger(MQL_TESTER)) { return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_"+name); } else { return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_tester"+"_"+name); }} 即使我们重新启动终端,也会得到它void OnTick() { Comment( LastProfitCL(-1, (datetime)GlobalVariableGet(GetGlobalVariableName("LastProfit"))) ); } Profit calculation of closed 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 初学者的问题 MQL4 MT4 MetaTrader Vitaly Muzichenko 2016.12.11 15:17 #20 Alekseu Fedotov:有一个指标用于i-Profit输出今天、周、月、年的当前利润。 这是不合适的,没有10年的信息。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,我不是指你已经写过的东西。
请用文字告诉我--你对哪些平仓订单感兴趣的利润计算方法
- 每日
- 亏损
- 最后一个订单
还是别的什么?
描述一下这个系列
一系列 "暂时 "关闭的最后订单
"目前 "最后关闭的一系列订单
也就是说,你需要关于最近关闭的一系列订单的信息,如果我理解正确的话?
为了实现这种方法,你应该首先在每次成功关闭时填写订单 数组,然后以你需要的形式拉出已关闭订单的信息
你能自己做吗?
尝试
return(LastProfit);Comment( LastProfitCL(-1, 0) );
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
if(t<=OrderCloseTime()) {
t=OrderCloseTime();
LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}}}}
}
尝试
Comment( LastProfitCL(-1, 0) );
//+----------------------------------------------------------------------------+
//| Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){
if(t<=OrderCloseTime()) {
t=OrderCloseTime();
LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
return(LastProfit);
}
如果不在同一时间关闭怎么办?
不太对。
如果你在提交平仓单时记住了这一点,那么就可以了。
但这句话...
是不需要的。
它将拉出整个系列的总数
但夫人想要更详细的信息,正如我从第一个帖子中了解的那样
如果不在同一时间关闭怎么办?
所以,如果我理解正确的话,你需要的是关于最后关闭的一系列订单的信息?
为了实现这种方法,你应该首先在成功收盘时创建一个订单 数组,然后拉出已关闭订单的信息
你能自己做吗?
请建议我们使用一个例子。
I.e.
然后再进行比较?
你 最好 给我一个例子。
I.e.
然后再进行比较?
没问题。
现在唯一需要澄清的是,该系列的平仓订单信息应该是什么样子?
是转帐还是应该用+和-来划分金额?
有一个指标用于
i-Profit
输出今天、周、月、年的当前利润。
一个更好的例子是
下面是一个例子。
GlobalVariableSet(GetGlobalVariableName("LastProfit"), TimeCurrent()); // запомним время закрытия
// здесь код закрытия всех и сразу, нужен цикл, чтоб не выходил с функции до полного закрытия всех
}
故事的其余部分
//| Возвращает суммарный профит в валюте депозита серии закрытых позиций |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1, datetime t=0){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--) {
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
if((op<0||OrderType()==op) && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){
if(t<=OrderCloseTime()) {
t=OrderCloseTime();
LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();
}}}}
return(LastProfit);
}
//===============================================================================================
//----------------------- Создает и возвращает имя глобальной переменной -----------------------+
//===============================================================================================
string GetGlobalVariableName(string name="", string symb="0") {
if(symb=="0") { symb=Symbol();}
if(!MQLInfoInteger(MQL_TESTER)) {
return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_"+name);
} else {
return(prefix+symb+"_"+(string)AccountInfoInteger(ACCOUNT_LOGIN)+"_"+MQLInfoString(MQL_PROGRAM_NAME)+"_tester"+"_"+name);
}}
即使我们重新启动终端,也会得到它
{
Comment( LastProfitCL(-1, (datetime)GlobalVariableGet(GetGlobalVariableName("LastProfit"))) );
}
有一个指标用于
i-Profit
输出今天、周、月、年的当前利润。