任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 122 1...115116117118119120121122123124125126127128129...1178 新评论 Paladin80 2013.09.05 07:54 #1211 skyjet: 你好!希望在这个函数中寻找错误。 这个想法是,未开盘的挂单应该在下单两天后被删除。 min=1440。 if (OrdersTotal()>0) { for (int i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()!=Symbol()) continue; if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) { if(TimeCurrent()-OrderOpenTime()>=min) { OrderDelete(OrderTicket()); return; } } } } } Mikhail Kozhemyako 2013.09.05 08:05 #1212 skyjet:你好!希望在这个函数中寻找错误。这个想法是,未开盘的挂单应该在下单两天后被删除。 min=1440。 你为什么要跟踪和删除待处理的订单?你应该设置它们的失效时间=TimeCurrent()+min*60+sec;它们将在min*60+sec之后被自行删除。 Paladin80 2013.09.05 08:09 #1213 Sepulca: 为什么需要监控和删除挂单?你需要设置datetime expiration=TimeCurrent()+min*60+sec;它们将在min*60+sec后自行删除。 也许,挂单 将根据一些算法关闭,因此,如果有另一个条件,例如2天,它将在1天内关闭。2天。 noobys 2013.09.05 08:23 #1214 Sepulca paladin80 谢谢!日期时间过期正是我们需要的 :) PapaYozh 2013.09.05 08:32 #1215 paladin80: OrderOpenTime()返回订单打开的时间。 对于一个挂单,该函数返回0。 Paladin80 2013.09.05 09:08 #1216 PapaYozh:OrderOpenTime()返回订单打开的时间。对于一个挂单,该函数返回0。 嗯,我迅速调整了代码,没有检查函数本身。没错,OrderOpenTime()显示的是经纪人开仓的时间,而不是经纪人接受挂单 的时间。也就是说,可能,最好是在订单中立即指定关闭的时间,或者在魔法号码中记录订单发送的时间(如果反正不用的话),然后将TimeCurrent( )与OrderMagicNumber( )进行比较。 satorifx 2013.09.05 18:41 #1217 下午好。帮助我处理自定义指标的问题。我正在解决确定与趋势线的距离问题。我需要在绘制 趋势线的时间框架上 准确获得趋势线的距离(不管在终端中打开的时间框架是什么)。趋势线的当前值可以通过函数ObjectGetValueByShift 得到。由于只能通过开盘时间进行计算,我写了一个小指标。我被 iCustom 函数有时间框架参数的事实所吸引,但我想知道在调用指标 时,这个参数被考虑多少。这里是指标。#property indicator_chart_window #property indicator_buffers 1 //-------------------------------------------------------------------- extern string TL_name = "TL_1"; //-------------------------------------------------------------------- double valueBuf[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexBuffer(0,valueBuf); SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1, White); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i; int counted_bars = IndicatorCounted(); //---- i = Bars - counted_bars - 1; // Индекс первого непосчитанного // Цикл по непосчитанным барам while(i>=0) { valueBuf[i] = NormalizeDouble(ObjectGetValueByShift(TL_name,i), Digits); i--; } //---- return(0); }该指标考虑的是趋势的当前值。 我调用指标本身。TL_price_now = iCustom(NULL,PERIOD_D1,"TL_value",TL_name,0,0);例如,这里PERIOD_D1 时间作为参数传递给指标,在此基础上绘制趋势图,并应计算其距离。 我简单地计算了与趋势的距离。 dist = NormalizeDouble(TL_price_now - Bid, Digits); 似乎是这样,但并非如此:当切换到其他时序(与D1不同)时,指标返回其他数值(对我切换到的时序来说是正确的)。 这里我们有一个问题:在调用iCustom 函数时,多大程度上会考虑到周期? 或者是我把指标弄乱了? Viktar Dzemikhau 2013.09.05 19:50 #1218 pako: t =OrdersTotal()。 为什么计算????? 所以我做的是通过引用来传递数值。这个逻辑很简单! Viktar Dzemikhau 2013.09.05 20:10 #1219 artmedia70: 在我的版本中,该功能更短...:) 是的,顺便说一句,这种实施方式更聪明。只有在开始时,才有更多的空间被附加功能所占据。结果是这样的。 void FindOrders(int& massive[]) { int oType; ArrayInitialize(massiveOfOrders, 0); for (int i=OrdersTotal() - 1; i>=0; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if (OrderSymbol() != Symbol()) continue; if (OrderMagicNumber() != i_magic) continue; oType = OrderType(); massiveOfOrders[oType] = massiveOfOrders[oType] + 1; } } int start() { int i, oTotal = 0, oPending = 0; FindOrders(massiveOfOrders); for (i=0; i<=7; i++) { if (i > 1 && i < 6) { oPending += massiveOfOrders[i]; } if (i < 6) { oTotal += massiveOfOrders[i]; } } pr ("FindOrders(): " + "oTotal = " + oTotal); pr ("FindOrders(): " + "oPending = " + oPending); 这不像是有什么需要优化的地方,不是吗? 我的意思是,这要方便得多,当开始的时候根本就没有什么。而一切都纯粹是由函数调用。而上次的结果是,开始时在主要功能上有很多各种各样的过度生长,以及额外功能的过度生长......。 [Deleted] 2013.09.06 04:48 #1220 日安! 请帮助并解释为什么专家顾问不能工作或交易? 1...115116117118119120121122123124125126127128129...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好!希望在这个函数中寻找错误。
这个想法是,未开盘的挂单应该在下单两天后被删除。
min=1440。
你好!希望在这个函数中寻找错误。
这个想法是,未开盘的挂单应该在下单两天后被删除。
min=1440。
你为什么要跟踪和删除待处理的订单?你应该设置它们的失效时间=TimeCurrent()+min*60+sec;它们将在min*60+sec之后被自行删除。
为什么需要监控和删除挂单?你需要设置datetime expiration=TimeCurrent()+min*60+sec;它们将在min*60+sec后自行删除。
paladin80:
OrderOpenTime()返回订单打开的时间。
对于一个挂单,该函数返回0。
OrderOpenTime()返回订单打开的时间。
对于一个挂单,该函数返回0。
下午好。帮助我处理自定义指标的问题。
我正在解决确定与趋势线的距离问题。我需要在绘制 趋势线的时间框架上 准确获得趋势线的距离(不管在终端中打开的时间框架是什么)。趋势线的当前值可以通过函数ObjectGetValueByShift 得到。由于只能通过开盘时间进行计算,我写了一个小指标。我被 iCustom 函数有时间框架参数的事实所吸引,但我想知道在调用指标 时,这个参数被考虑多少。
这里是指标。
该指标考虑的是趋势的当前值。
我调用指标本身。
例如,这里PERIOD_D1 时间作为参数传递给指标,在此基础上绘制趋势图,并应计算其距离。
我简单地计算了与趋势的距离。
似乎是这样,但并非如此:当切换到其他时序(与D1不同)时,指标返回其他数值(对我切换到的时序来说是正确的)。这里我们有一个问题:在调用iCustom 函数时,多大程度上会考虑到周期?
或者是我把指标弄乱了?
t =OrdersTotal()。
为什么计算?????
所以我做的是通过引用来传递数值。这个逻辑很简单!
在我的版本中,该功能更短...:)
是的,顺便说一句,这种实施方式更聪明。只有在开始时,才有更多的空间被附加功能所占据。结果是这样的。
这不像是有什么需要优化的地方,不是吗?
我的意思是,这要方便得多,当开始的时候根本就没有什么。而一切都纯粹是由函数调用。而上次的结果是,开始时在主要功能上有很多各种各样的过度生长,以及额外功能的过度生长......。
日安!
请帮助并解释为什么专家顾问不能工作或交易?