[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 391 1...384385386387388389390391392393394395396397398...631 新评论 saenko1981 2012.09.21 04:37 #3901 snail09_1: 我认为,我不会创建一个 要关闭的票据数组,而是在市场订单枚举循环中,通过将票据送入关闭函数的输入,检查每个订单的可能条件。 你能在代码中显示这一点吗? 我的意思是,这怎么能实施呢? [Удален] 2012.09.21 04:55 #3902 大家下午好! 也许这个问题不适合新手,但我找不到其他可以提问的主题。 我怎样才能从MetaTrader 4卸下详细的报告,在图表上显示股权而不是余额?我不知道,如果我从MT4或其他方便的方式上传,会不会是现实的?我不知道我是否有正确的平衡,我只想知道缩减的结果。 我不知道如何使用这个经纪人。 [Удален] 2012.09.21 07:48 #3903 belous: 你能用代码显示吗? 我的意思是,如何能够实施? 像这样的事? int ticket; for(int z=OrdersTotal()-1;z>=0;z--) { if(!OrderSelect(z,SELECT_BY_POS)) { _GetLastError=GetLastError(); Print(" OrderSelect(",z,",SELECT_BY_POS)-Error #",_GetLastError); continue; } if(OrderMagicNumber()==magic && OrderSymbol()==Symbol()) { if((OrderType()==OP_BUY)||(OrderType()==OP_SELL)) { // Проверим условие для закрытия, и если истинно { ticket=OrderTicket(); //Закрываем его } } } } [删除] 2012.09.21 09:07 #3904 请帮助。 以下是代码 //-----------------Закрытие по истории в безубыток-------------------- //---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- Iteration = 0; // зануляем инерации перед их учетом в цикле по истории Sum_Loss = 0; // суммарный убыток по этим итерациям datetime Time_at_History_Current = 0, Time_at_History_Previos = 0; if(OrdersHistoryTotal() != 0) { for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--) { OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if(OrderType() == OP_BUY || OrderType() == OP_SELL) { if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера // для последующего его анализа при подсчете количества итераций { double lastLoss = OrderProfit(); Sum_Loss=Sum_Loss+lastLoss; // считаем общий убыток по закрытым подряд убыточным ордерам Time_at_History_Current = OrderCloseTime(); } //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS)); //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS)); if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными { Time_at_History_Previos = Time_at_History_Current ; Iteration++; //Print("Iteration at History в условии сравнения = ", Iteration); } else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла { if(OrderProfit() >= 0) break; } } } } } if (Sum_Loss < 0.0) { // Имеем убыток по закрытым позам double money = Lots; BuyLots = GetBuyLotsSum(); SellLots = GetSellLotsSum(); if(BuyLots > SellLots)money = BuyLots * 10; if(BuyLots < SellLots)money = SellLots * 10; if (((AccountEquity() + Sum_Loss + (Sum_Loss / money)) >= AccountBalance()) && (((totalSell > 0) && (totalBuy < 1)) || ((totalSell < 1) && (totalBuy > 0)))) { // Достигли безубытка // Здесь какой-то код, который необходимо выполнить при достижении безубытка CloseAllBuy(); CloseAllSell(); Sum_Loss = 0.0; 我没有办法使一个循环打开,当一个交易以负数关闭时,如果下一个订单关闭时高于零,即正数余额,但小于负数,我们把正数加到负数,得到一个新的负数值,这个值已经比较小了。 if(OrderProfit() >= 0 && Sum_Loss < 0.0) double lastLoss_two = OrderProfit(); Sum_Loss=Sum_Loss+lastLoss_two; // считаем общий убыток по закрытым подряд убыточным ордерам Time_at_History_Current = OrderCloseTime(); } 如果它是更多的负数,根据信号,我们关闭订单并从头开始循环。 情况是,当这段代码在损失中关闭交易时,它会记住减去的余额,而当它在加号中关闭交易时,如果加号小于余额,那么它就会重置Sum_Loss,我需要它不被清零,并被砍掉。 所以这就是现在的工作方式。 它检查一个已关闭的订单,如果已关闭的订单的利润小于零,那么这个利润将被添加到Sum_Loss中,以此类推,直到开放交易的利润超过(将超过)Sum_Loss,当达到时,交易被关闭,Sum_Loss被清零,循环重新开始。 我需要。 订单以负数收盘,其负数利润被加到Sum_Loss中,然后如果下一笔交易以正数利润收盘,Sum_Loss被减去从利润中得到的金额,这意味着下一笔开仓订单Sum_Loss已经是一个较小的金额,以此类推,直到订单利润高于Sum_Loss,然后Sum_Loss被清除,一个新的循环开始。 Sum_Loss = 0。 第一笔平仓单:利润(-50)< 0 Sum_Loss + profit (Sum_Loss + (-50)) Sum_Loss = -50。 第二笔平仓单:利润(+40)>0且Sum_Loss<0 Sum_Loss + profit (Sum_Loss + 40) Sum_Loss = -10 也许Sum_Loss变量应该被指定为一个负变量? 总的来说,我很困惑。 我已经尝试了很多变体,但我没有得到正确的结果。我已经尝试了很多变种,但仍然没有得到正确的结果。 学习如何赚取村民的钱 [第2集] ! max79 2012.09.21 14:05 #3905 我怎样才能 在不考虑点差的情况下测试EA?这有可能吗? [Удален] 2012.09.21 14:27 #3906 Max79: 我怎样才能在不考虑点差的情况下测试EA?这有可能吗? 谷歌一下,你就会发现,例如在这里(集散?site:mql4.com) 阅读:https://www.mql5.com/ru/forum/102224/page2 Ruslan 2012.09.21 14:34 #3907 谁有这样一只火鸡? Vladimir M. 2012.09.21 15:27 #3908 请帮助。 我在EA中设置了一个挂单的修改器,在日志中测试时,它给我一个错误 - 1。 即--"如果我传递未改变的值作为函数参数,将产生错误 1(ERR_NO_RSULT)"。 我在修改前打了个勾,但没有什么用。错误是什么?该EA正在测试中,但我如何才能筛选出数值未变的订单? Alekseu Fedotov 2012.09.21 15:47 #3909 Run: 谁有这样的火鸡? 看看这个吧。 http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=45 Paladin80 2012.09.21 15:54 #3910 rosomah: 请帮助。 我在EA中设置了一个挂单的修改器,在日志中测试时,它给我一个错误 - 1。 即--"如果我传递未改变的值作为函数参数,将产生错误 1(ERR_NO_RSULT)"。 我在修改前打了个勾,但没有什么用。错误是什么?该EA正在测试中,但我如何才能筛选出数值未变的订单? 打印pr、stop和take的值,看看它们向OrderModify发送什么。 1...384385386387388389390391392393394395396397398...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我认为,我不会创建一个 要关闭的票据数组,而是在市场订单枚举循环中,通过将票据送入关闭函数的输入,检查每个订单的可能条件。
你能在代码中显示这一点吗?
我的意思是,这怎么能实施呢?
大家下午好!
也许这个问题不适合新手,但我找不到其他可以提问的主题。
我怎样才能从MetaTrader 4卸下详细的报告,在图表上显示股权而不是余额?我不知道,如果我从MT4或其他方便的方式上传,会不会是现实的?我不知道我是否有正确的平衡,我只想知道缩减的结果。
我不知道如何使用这个经纪人。
你能用代码显示吗?
我的意思是,如何能够实施?
像这样的事?
请帮助。
以下是代码
我没有办法使一个循环打开,当一个交易以负数关闭时,如果下一个订单关闭时高于零,即正数余额,但小于负数,我们把正数加到负数,得到一个新的负数值,这个值已经比较小了。
如果它是更多的负数,根据信号,我们关闭订单并从头开始循环。
情况是,当这段代码在损失中关闭交易时,它会记住减去的余额,而当它在加号中关闭交易时,如果加号小于余额,那么它就会重置Sum_Loss,我需要它不被清零,并被砍掉。
所以这就是现在的工作方式。
它检查一个已关闭的订单,如果已关闭的订单的利润小于零,那么这个利润将被添加到Sum_Loss中,以此类推,直到开放交易的利润超过(将超过)Sum_Loss,当达到时,交易被关闭,Sum_Loss被清零,循环重新开始。
我需要。
订单以负数收盘,其负数利润被加到Sum_Loss中,然后如果下一笔交易以正数利润收盘,Sum_Loss被减去从利润中得到的金额,这意味着下一笔开仓订单Sum_Loss已经是一个较小的金额,以此类推,直到订单利润高于Sum_Loss,然后Sum_Loss被清除,一个新的循环开始。
Sum_Loss = 0。
第一笔平仓单:利润(-50)< 0
Sum_Loss + profit (Sum_Loss + (-50))
Sum_Loss = -50。
第二笔平仓单:利润(+40)>0且Sum_Loss<0
Sum_Loss + profit (Sum_Loss + 40)
Sum_Loss = -10
也许Sum_Loss变量应该被指定为一个负变量? 总的来说,我很困惑。 我已经尝试了很多变体,但我没有得到正确的结果。我已经尝试了很多变种,但仍然没有得到正确的结果。我怎样才能在不考虑点差的情况下测试EA?这有可能吗?
谁有这样一只火鸡?
请帮助。
我在EA中设置了一个挂单的修改器,在日志中测试时,它给我一个错误 - 1。
即--"如果我传递未改变的值作为函数参数,将产生错误 1(ERR_NO_RSULT)"。
我在修改前打了个勾,但没有什么用。错误是什么?该EA正在测试中,但我如何才能筛选出数值未变的订单?
谁有这样的火鸡?
看看这个吧。
http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=45
请帮助。
我在EA中设置了一个挂单的修改器,在日志中测试时,它给我一个错误 - 1。
即--"如果我传递未改变的值作为函数参数,将产生错误 1(ERR_NO_RSULT)"。
我在修改前打了个勾,但没有什么用。错误是什么?该EA正在测试中,但我如何才能筛选出数值未变的订单?