[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 118 1...111112113114115116117118119120121122123124125...631 新评论 Sceptic Philozoff 2012.05.12 05:59 #1171 对不起,Alex12,但你看起来像个推土机(无意冒犯,这是个公认的术语)。你用不同的碎片做了一些东西,并以某种方式让它编译,但你并不了解代码的含义。 联系服务工作。 Artyom Trishkin 2012.05.12 07:17 #1172 alex12: 它产生了大量的错误 当使用Igor Kim的一些函数时,请确保你的代码中有他遗漏的函数,而编译器会告诉你。在他的分支中找到它们,并把它们写入你的代码中。 Роман 2012.05.12 08:57 #1173 chief2000:... OrderOpenTime()显示了开仓的时间,我的问题是,我如何知道STOP订单被设置的时间? MT4报告中有这个时间,但是否可以从代码中找出这个时间? 再一次。 在一个 "标准 "循环中查看你所有的止损单,并为你自己取消打印它们的OrderOpenTime()的值--这必须是它们(每个)被设置的时间。下面是一个市场订单的例子--调整一下,也就是说,或者完全删除这一行 如果((orderType != OP_BUY)&&(orderType != OP_SELL))继续。 或者用你感兴趣的止损单的数据来替换它... int orderCount = 0; // сбрасываем счетчик ордеров // ------------------------------------------------Считаем только наши ордера--------------------------- int orderType; for (orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS)) continue; // если ордер не выбран, то идем на следующий открытый if(OrderCloseTime()!=0) continue; // если тикет принадлежит закрытому ордеру, то берем следующий открытый if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != magic)) continue; orderType = OrderType(); if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue; ticket = OrderTicket( ); // Номер ордера orderLots = OrderLots(); // Lots orderProfit = OrderProfit() + OrderSwap(); // Profit Price = OrderOpenPrice(); // Цена открытия рыночного ордера SL = OrderStopLoss(); // Значение StopLoss ордера TP = OrderTakeProfit(); // Значение TakeProfit ордера Time = O rderOpenTime(); orderCount++; // считаем ордера (не больше i) } Oleg 2012.05.12 13:55 #1174 Roman.: 再一次。在一个 "标准 "循环中查看你所有的止损单,对你自己来说,取消打印它们的OrderOpenTime()的值--这必须是它们(每个)被设置的时间。下面是一个市场订单的例子--调整一下,也就是说,或者完全删除这一行 如果((orderType != OP_BUY)&&(orderType != OP_SELL))继续。 或者用你感兴趣的止损单的数据来代替它... 在这里,在这个阶段我遇到了一个难题--我需要打开STOP订单的时间来进行一些 "统计",我不希望这个过程一直运行,而只是在最后的某个步骤。由于这个原因,我们不需要搜索当前开放的订单(OrdersTotal()),而是在已经关闭的订单中搜索 => OrdersHistoryTotal()。 但对于已经平仓的STOP订单,OrderOpenTime()返回开仓 时间,而不是下单时间。 结果,这一切都归结为:是否有可能从OrdersHistoryTotal()的列表中检索到STOP订单的建立时间? Роман 2012.05.12 14:22 #1175 chief2000: 这时我遇到了一个难题--我需要STOP订单的开盘时间来进行一些 "统计",我不希望这个过程一直运行,而只是在某个最后阶段。由于这个原因,我们不需要搜索当时打开的订单(OrdersTotal()),而是在已经关闭的订单中搜索 => OrdersHistoryTotal()。 但对于已经平仓的STOP订单,OrderOpenTime()返回开仓时间,而不是下单时间。 结果,这一切都归结为:是否有可能从OrdersHistoryTotal()的列表中检索到STOP订单的建立时间? 是的...这个挑战...我不知道。看起来你不能 - 特别是在 "最后阶段"... 你必须不断监测这个过程,并保持跟踪--见前页的常见问题帖子。 Oleg 2012.05.12 14:49 #1176 Roman.:是的...这个挑战...我不知道。看起来你不能 - 特别是在 "最后阶段"... 你必须不断监测这个过程并保持跟踪--见上一页的常见问题帖子。 如果没有找到其他解决方案,我将使用OrdersTotal() 中的订单。 总之,谢谢你! Рустам 2012.05.12 14:59 #1177 在这种情况下,写到文件里比较容易,比较省事,而且可以按照你的需要来组织统计数据,而不是终端。 Oleg 2012.05.12 17:08 #1178 FAQ: 在这种情况下,写到文件里更容易,更省事,而且可以按照你的需要来组织统计数据,而不是终端。 谢谢你! Kilnart 2012.05.12 18:43 #1179 我想写一个 关于钳形图案的专家顾问。 我已经选择了 Low2=Low[iLowest(NULL,0,MODE_LOW,10,2)] High2=High[iHighest(NULL,0,MODE_HIGH,10,2)] if(Low[1]==Low2) bull_pincet=true; if(High[1]==High2) bear_pincet=true; while(true) { if(Total==0 && bull_pincet==true) { sl=Low[1]; if(sl<Step)sl=Step; tp=Ask+((Ask-sl)*k); OrderSend(Symb,OP_BUY,Lts,Ask,3,sl,tp); return; } if(Total==0 && bear_pincet==true) { sl=High[1]; if(sl<Step)sl=Step; tp=Bid-((sl-Bid)*k); OrderSend(Symb,OP_SELL,Lts,Bid,3,sl,tp); return; } break; } 不幸的是,我的条件是错误的,因为'sl'被设置为100.00000,'tp'显示错误。 我决定添加一个条件,考虑1个勾。 static datetime TimeSaveH1 = 0; int init() { TimeSaveH1 = iTime( Symbol(), Period(), 0); // берем открытия время текущего бара } int start() { if (TimeSaveH1!=iTime( Symbol(), Period(), 0)) { TimeSaveH1=iTime( Symbol(), Period(), 0); } Low2=Low[iLowest(NULL,0,MODE_LOW,10,2)] High2=High[iHighest(NULL,0,MODE_HIGH,10,2)] if(Low[1]==Low2 && TimeSaveH1===iTime( Symbol(), Period(), 0) bull_pincet=true; if(High[1]==High2 && TimeSaveH1===iTime( Symbol(), Period(), 0) bear_pincet=true; while(true) { if(Total==0 && bull_pincet==true) { sl=Low[1]; if(sl<Step)sl=Step; tp=Ask+((Ask-sl)*k); OrderSend(Symb,OP_BUY,Lts,Ask,3,sl,tp); return; } if(Total==0 && bear_pincet==true) { sl=High[1]; if(sl<Step)sl=Step; tp=Bid-((sl-Bid)*k); OrderSend(Symb,OP_SELL,Lts,Bid,3,sl,tp); return; } break; } } 结果是一样的。我怎样才能解决我的问题? Alekseu Fedotov 2012.05.12 19:05 #1180 kilnart: 我想写一个关于钳形图案的专家顾问。 我已经选择了 不幸的是,我的条件是错误的,因为'sl'被设置为100.00000,'tp'显示错误。 我决定增加一个条件,考虑1个刻度。 结果是一样的。 我怎样才能正确地解决我的问题? 你有一个变量Step=100?如果是这样,看看你在代码中进一步得到什么。 1...111112113114115116117118119120121122123124125...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对不起,Alex12,但你看起来像个推土机(无意冒犯,这是个公认的术语)。你用不同的碎片做了一些东西,并以某种方式让它编译,但你并不了解代码的含义。
联系服务工作。
它产生了大量的错误
...
OrderOpenTime()显示了开仓的时间,我的问题是,我如何知道STOP订单被设置的时间?
MT4报告中有这个时间,但是否可以从代码中找出这个时间?
再一次。
在一个 "标准 "循环中查看你所有的止损单,并为你自己取消打印它们的OrderOpenTime()的值--这必须是它们(每个)被设置的时间。下面是一个市场订单的例子--调整一下,也就是说,或者完全删除这一行
如果((orderType != OP_BUY)&&(orderType != OP_SELL))继续。
或者用你感兴趣的止损单的数据来替换它...
再一次。在一个 "标准 "循环中查看你所有的止损单,对你自己来说,取消打印它们的OrderOpenTime()的值--这必须是它们(每个)被设置的时间。下面是一个市场订单的例子--调整一下,也就是说,或者完全删除这一行
如果((orderType != OP_BUY)&&(orderType != OP_SELL))继续。
或者用你感兴趣的止损单的数据来代替它...
但对于已经平仓的STOP订单,OrderOpenTime()返回开仓 时间,而不是下单时间。
结果,这一切都归结为:是否有可能从OrdersHistoryTotal()的列表中检索到STOP订单的建立时间?
这时我遇到了一个难题--我需要STOP订单的开盘时间来进行一些 "统计",我不希望这个过程一直运行,而只是在某个最后阶段。由于这个原因,我们不需要搜索当时打开的订单(OrdersTotal()),而是在已经关闭的订单中搜索 => OrdersHistoryTotal()。
但对于已经平仓的STOP订单,OrderOpenTime()返回开仓时间,而不是下单时间。
结果,这一切都归结为:是否有可能从OrdersHistoryTotal()的列表中检索到STOP订单的建立时间?
是的...这个挑战...我不知道。看起来你不能 - 特别是在 "最后阶段"...
你必须不断监测这个过程,并保持跟踪--见前页的常见问题帖子。
是的...这个挑战...我不知道。看起来你不能 - 特别是在 "最后阶段"...
你必须不断监测这个过程并保持跟踪--见上一页的常见问题帖子。
总之,谢谢你!
在这种情况下,写到文件里更容易,更省事,而且可以按照你的需要来组织统计数据,而不是终端。
我想写一个 关于钳形图案的专家顾问。
我已经选择了
不幸的是,我的条件是错误的,因为'sl'被设置为100.00000,'tp'显示错误。
我决定添加一个条件,考虑1个勾。
结果是一样的。我怎样才能解决我的问题?
我想写一个关于钳形图案的专家顾问。
我已经选择了
不幸的是,我的条件是错误的,因为'sl'被设置为100.00000,'tp'显示错误。
我决定增加一个条件,考虑1个刻度。
结果是一样的。 我怎样才能正确地解决我的问题?
你有一个变量Step=100?如果是这样,看看你在代码中进一步得到什么。