关闭订单的利润计算 "HELP" - 页 6 123456789 新评论 Renat Akhtyamov 2016.12.11 20:38 #51 Aleksey Semenov: 例如,如果你有一个充满了数百个未使用的glob变量的终端,那么是的--隔板将可悲地结束,如果不是这样,如果写得正确的话,它工作得相当快。 你可以建立你自己的日志 Vitaly Muzichenko 2016.12.11 22:08 #52 Aleksey Semenov: 例如,如果你的终端充满了数百个未使用的glob变量,那么是的--矫枉过正会让人难过,如果不是这样,如果你写得正确,它的工作速度相当快 我不反对,但如果可能的话,最好能找到更容易的方法。或者我们不是在寻找简单的方法)? Renat Akhtyamov 2016.12.11 22:17 #53 Vitaly Muzichenko: 我不介意,但如果可能的话,最好能找到更容易的方法。还是我们没有寻找到简单的方法? 最重要的是自己开始写作 [删除] 2016.12.11 22:30 #54 Vitaly Muzichenko: 我不介意,但如果可能的话,最好能找到更容易的方法。或者说我们不是在寻找一个简单的方法吗? 因此,哪里是简单的方法,这个问题仍然没有答案。 [删除] 2016.12.12 12:08 #55 我们仍然没有解决这个问题,而这是一个必要的功能,许多交易者使用它而不知道它不能正确计算平仓订单的利润。这就是为什么一个简单的解决方案: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); 不会起作用,而每个人都在他们的代码中不断地与历史订单 作斗争。甚至在整个网络上都没有合格的解决方案--"谷歌 "说。所以,事实证明,每个人都在使用标准的不正确的解决方案,或正确的解决方案,但只有最后一个订单? Renat Akhtyamov 2016.12.12 12:11 #56 Natashe4ka:我们还没有解决这个问题,而这是一个必要的功能,许多人使用它,不知道平仓订单的利润没有被正确考虑。这就是为什么一个简单的解决方案: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); 不会起作用,而每个人都在他们的代码中不断地与历史订单 作斗争。甚至在整个网络上都没有合格的解决方案--"谷歌 "说。所以,事实证明,每个人都在使用标准的不正确的解决方案,或正确的解决方案,但只有最后一个订单? 我们建议,你没有得到它.... [删除] 2016.12.12 12:21 #57 Renat Akhtyamov: 我们建议,你不理解....好吧,那我们就分解一下:有一个订单的关闭时间,有一个与关闭时间相吻合的票据或订单数量。我们如何合并和计算这些订单的利润? 这似乎很简单,但我们还是不明白。 [删除] 2016.12.12 13:32 #58 它计算正确,但只有在1-3个订单被关闭的情况下,如果超过3个,则会获得价值不明确的利润。 我们在这里还能补充什么呢?//+----------------------------------------------------------------------------+// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция) double LastProfit=0; datetime t=0; for(i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) { if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue; if (t<OrderCloseTime()) {t=OrderCloseTime();} if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();} } return(LastProfit); } 如何编码? Profit calculation of closed 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Renat Akhtyamov 2016.12.12 14:03 #59 Natashe4ka:它计算正确,但只有在1-3个订单被关闭的情况下,如果超过3个,那么利润就会有一个不明确的值。 我们在这里还能补充什么呢?//+----------------------------------------------------------------------------+// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |//+----------------------------------------------------------------------------+double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция) double LastProfit=0; datetime t=0; for(i=OrdersHistoryTotal()-1;i>=0;i--) if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) { if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue; if (t<OrderCloseTime()) {t=OrderCloseTime();} if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();} } return(LastProfit); }你有没有试过问自己 "为什么要写在我的代码里,写了什么?我已经在上面三次告诉你该做什么和怎么做。你将无法从死穴中移动,否则你将无法做到这一点。 Sergey Gritsay 2016.12.12 16:05 #60 Natashe4ka:好吧,那我们来分解一下:有一个订单的关闭时间,有一个与关闭时间相吻合的票据或订单数量。我们如何合并和计算这些订单的利润? 这似乎很容易,但我还是不明白。 你是把这些东西都保存在一个变量里还是在一个数组里? 先告诉我们你把它保存在哪里,然后我们再看下一步该怎么做。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
例如,如果你有一个充满了数百个未使用的glob变量的终端,那么是的--隔板将可悲地结束,如果不是这样,如果写得正确的话,它工作得相当快。
例如,如果你的终端充满了数百个未使用的glob变量,那么是的--矫枉过正会让人难过,如果不是这样,如果你写得正确,它的工作速度相当快
我不介意,但如果可能的话,最好能找到更容易的方法。还是我们没有寻找到简单的方法?
我不介意,但如果可能的话,最好能找到更容易的方法。或者说我们不是在寻找一个简单的方法吗?
我们仍然没有解决这个问题,而这是一个必要的功能,许多交易者使用它而不知道它不能正确计算平仓订单的利润。
这就是为什么一个简单的解决方案: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); 不会起作用,而每个人都在他们的代码中不断地与历史订单 作斗争。
甚至在整个网络上都没有合格的解决方案--"谷歌 "说。所以,事实证明,每个人都在使用标准的不正确的解决方案,或正确的解决方案,但只有最后一个订单?
我们还没有解决这个问题,而这是一个必要的功能,许多人使用它,不知道平仓订单的利润没有被正确考虑。
这就是为什么一个简单的解决方案: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); 不会起作用,而每个人都在他们的代码中不断地与历史订单 作斗争。
甚至在整个网络上都没有合格的解决方案--"谷歌 "说。所以,事实证明,每个人都在使用标准的不正确的解决方案,或正确的解决方案,但只有最后一个订单?
我们建议,你不理解....
好吧,那我们就分解一下:有一个订单的关闭时间,有一个与关闭时间相吻合的票据或订单数量。我们如何合并和计算这些订单的利润?
这似乎很简单,但我们还是不明白。
它计算正确,但只有在1-3个订单被关闭的情况下,如果超过3个,则会获得价值不明确的利润。
我们在这里还能补充什么呢?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
它计算正确,但只有在1-3个订单被关闭的情况下,如果超过3个,那么利润就会有一个不明确的值。
我们在这里还能补充什么呢?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
你有没有试过问自己 "为什么要写在我的代码里,写了什么?
我已经在上面三次告诉你该做什么和怎么做。
你将无法从死穴中移动,否则你将无法做到这一点。
好吧,那我们来分解一下:有一个订单的关闭时间,有一个与关闭时间相吻合的票据或订单数量。我们如何合并和计算这些订单的利润?
这似乎很容易,但我还是不明白。