帮我在酒吧的末端关闭秩序! - 页 2 1234 新评论 Proximus 2013.10.26 22:51 #11 嗯,这样就好了? /////////////////OrderSelect() and other stuff if( OrderType() == OP_BUY ){ if( /* blablabla condition && */ Time[0]>OrderOpenTime() ){ OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,TAKEPROFITPIPS,CLR_NONE); RefreshRates(); }} 事实上,我把时间[1]改成了时间[0],因为时间[1]又跳过了一个小节,所以时间[0]实际上代表了开盘[0]。如果有人知道比这更好/更流畅的方法,请告诉我吧 Tjipke de Vries 2013.10.26 22:59 #12 Proximus:嗯,这样就好了?事实上,我把时间[1]改成了时间[0],因为时间[1]又跳过了一个小节,所以时间[0]实际上是代表开盘[0]。如果有人知道比这更好/更流畅的方法,请告诉我 RefreshRates(); OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,Slippage,CLR_NONE); 并检查 订单关闭是否成功 Proximus 2013.10.26 23:49 #13 deVries:并检查是否关闭订单成功 如果没有成功,那么当start()函数 重复时,它将再次测试orderclose()之前的if(),由于条件仍然是真实的,它将尝试再次关闭它。我不能在start()的同一个循环中尝试关闭它2次,必须等待另一个 tick,不是吗? Simon Gniadkowski 2013.10.27 08:17 #14 Proximus: 如果没有成功,那么当start()函数重复时,它将再次测试orderclose()之前的if(),由于条件仍然为真,它将尝试再次关闭它。我不能在start()的同一个循环中尝试关闭它2次,必须等待另一个tick,不是吗? 你难道不想知道它失败了吗?如果它失败了,为什么它失败了? Simon Gniadkowski 2013.10.27 08:26 #15 Proximus: 嗯,这样就好了? 事实上,我把时间[1]改成了时间[0],因为时间[1]又跳过了一个小节,所以时间[0]实际上代表了开盘[0]。如果有人知道比这更好/更流畅的方法,请告诉我吧 不,这将总是关闭,无论刻度线是否是下一个条形的刻度线,对于开仓后的任何条形,以及该条形中的任何时间,时间[0]总是大于OrderOpenTime()。 如果你想在接近收盘时平仓,那么你必须确定当前的跳动点是否是新条形的第一个跳动点 ... ...那么你还必须确保你的平仓是有效的,因为你只有一次机会,每条形。 Tjipke de Vries 2013.10.27 08:32 #16 Proximus: 如果没有成功,那么当start()函数重复时,它将再次测试orderclose()之前的if(),由于条件仍然为真,它将再次尝试关闭它。我不能在start()的同一个循环中尝试关闭它2次,必须等待另一个tick,不是吗? 你开始的时候,它必须关闭最后一格的交易。 我们试图让你明白,不可能知道最后一个勾股何时到来。 现在,如果收盘失败也没关系,我们在接下来的时间里再试一次,再试一次,再试一次。 你还错过了我建议的其他变化吗? 在订单关闭后刷新时间有什么意义呢? 你知道为什么是滑点而不是TAKEPROFITPIPS 吗? 这取决于错误返回,你可以尝试在同一个循环中关闭它2次 如果tradecontext太忙,而且你在循环中还有更多的交易要关闭,那么他们很有可能也会失败。 Proximus 2013.10.27 23:42 #17 RaptorUK: 不,这将总是关闭,无论该点位是否是下一个条形的点位,对于开仓后的任何条形和该条形中的任何时间,时间[0]总是大于OrderOpenTime()。 如果你想在接近收盘时平仓,那么你必须确定当前的跳动点是否是新条形的第一个跳动点 ... ...那么你还必须确保你的平仓是有效的,因为你只有一次机会,每条形。 start()不是在每个tick之后重复自己吗?我错了吗? 总之,可以这样想象。 OrderOpenTime() = 12:12:01 (12 H 12 MIN 1 SEC) 订单被打开,OrderClose()函数包在主代码中OrderSend()函数包之后,因此,在打开订单后,我的OrderClose()包将测试是否满足关闭订单的条件,让我们说它满足,现在是关闭订单的时候。 时间[0]是这个条形图的开盘价,所以根据通常的逻辑,它必须小于订单打开的时间,因为订单不能在同一个条形图打开之前打开。 因此,通过各种手段: if(Time[0]>OrderOpenTime()) 将返回真值,所以订单关闭将被触发。如果它不能关闭它,由于任何原因,如滑移或如此,没有问题,start()重复自己 在下一次重复时,时间[0]将100%大于订单的开仓时间,因为它是合乎逻辑的,所以如果第一次平仓失败,其他的OrderClose()将在之后的每一次重复start()时发生,由于我认为start()在每一个tick 上重复,那么我不认为有更好的方法来快速关闭订单,我希望我解释清楚:) Proximus 2013.10.27 23:45 #18 deVries: 你开始的时候,它必须要关闭最后一格的交易。 我们试图让你明白,不可能知道最后一个勾股何时到来。 现在,如果收盘失败也没关系,我们在接下来的时间里再试一次,再试一次。 你还错过了我建议的其他变化吗? 在订单关闭后刷新时间有什么意义呢? 你知道为什么是滑点而不是TAKEPROFITPIPS 吗? 这取决于错误返回,你可以尝试在同一个循环中关闭它2次 如果tradecontext太忙,而且你在循环中还有更多的交易要关闭,那么他们很有可能也会失败。 我使用TAKEPROFITPIPS是因为这是我的TAKEPROFIT变量,因为我允许最大滑点与我的TP水平一样多,因为它的逻辑是,如果你用OrderClose()关闭订单,你的滑点不应该多于你的TP,因为如果你这样做,TAKEPROFIT将代替你关闭它,比OrderClose()更有效。 Simon Gniadkowski 2013.10.28 08:13 #19 Proximus:start()不是在每个tick之后重复自己吗?我说错了吗?是的,start()在每个tick上都被调用,除非它还在执行 . . .希望 我解释清楚了。 总之,想象一下这样的情况。OrderOpenTime() = 12:12:01 (12 H 12 MIN 1 SEC)订单被打开,OrderClose()函数包在主代码的OrderSend()之后,因此,在打开订单后,我的OrderClose()包将测试是否满足关闭订单的条件,让我们说现在是关闭订单的时候。时间[0]是这个条形图的开盘价,所以根据通常的逻辑,它必须小于订单打开的时间,因为订单不能在同一条形图打开之前打开。所以通过各种手段:如果它不能关闭它,由于任何原因,如滑点或其他原因,没有问题,start()会重复进行。在下一次重复时,时间[0]将100%大于订单的开仓时间,因为它是合乎逻辑的,所以如果第一次平仓失败,其他的OrderClose()将在之后的每一次重复start()时发生,由于我认为start()在每一个tick上重复,那么我不认为有更好的方法来快速关闭订单,我希望我解释得清楚:) 是的,但这不是你在本主题的第一篇帖子中所要求的......现在你说的是可以将平仓延迟到周期,然后再延迟到周期,等等。如果你想在接近条形结束时平仓,那么你必须在下一个条形的第一个点进行平仓,而且你必须检查 平仓是否失败,并以正确的方式重试,这样你才能成功平仓。 Ian Venner 2013.10.28 15:20 #20 一个条形图的收盘价 不重复出现在下一个条形图上是很罕见的,不一定是它的开盘价......。 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗯,这样就好了?
事实上,我把时间[1]改成了时间[0],因为时间[1]又跳过了一个小节,所以时间[0]实际上代表了开盘[0]。如果有人知道比这更好/更流畅的方法,请告诉我吧
嗯,这样就好了?
事实上,我把时间[1]改成了时间[0],因为时间[1]又跳过了一个小节,所以时间[0]实际上是代表开盘[0]。如果有人知道比这更好/更流畅的方法,请告诉我
RefreshRates(); OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,Slippage,CLR_NONE);并检查 订单关闭是否成功
并检查是否关闭订单成功
如果没有成功,那么当start()函数重复时,它将再次测试orderclose()之前的if(),由于条件仍然为真,它将尝试再次关闭它。我不能在start()的同一个循环中尝试关闭它2次,必须等待另一个tick,不是吗?
嗯,这样就好了?
事实上,我把时间[1]改成了时间[0],因为时间[1]又跳过了一个小节,所以时间[0]实际上代表了开盘[0]。如果有人知道比这更好/更流畅的方法,请告诉我吧
如果你想在接近收盘时平仓,那么你必须确定当前的跳动点是否是新条形的第一个跳动点 ... ...那么你还必须确保你的平仓是有效的,因为你只有一次机会,每条形。
如果没有成功,那么当start()函数重复时,它将再次测试orderclose()之前的if(),由于条件仍然为真,它将再次尝试关闭它。我不能在start()的同一个循环中尝试关闭它2次,必须等待另一个tick,不是吗?
你开始的时候,它必须关闭最后一格的交易。
我们试图让你明白,不可能知道最后一个勾股何时到来。
现在,如果收盘失败也没关系,我们在接下来的时间里再试一次,再试一次,再试一次。
你还错过了我建议的其他变化吗?
在订单关闭后刷新时间有什么意义呢?
你知道为什么是滑点而不是TAKEPROFITPIPS 吗?
这取决于错误返回,你可以尝试在同一个循环中关闭它2次
如果tradecontext太忙,而且你在循环中还有更多的交易要关闭,那么他们很有可能也会失败。
不,这将总是关闭,无论该点位是否是下一个条形的点位,对于开仓后的任何条形和该条形中的任何时间,时间[0]总是大于OrderOpenTime()。
如果你想在接近收盘时平仓,那么你必须确定当前的跳动点是否是新条形的第一个跳动点 ... ...那么你还必须确保你的平仓是有效的,因为你只有一次机会,每条形。
start()不是在每个tick之后重复自己吗?我错了吗?
总之,可以这样想象。
OrderOpenTime() = 12:12:01 (12 H 12 MIN 1 SEC)
订单被打开,OrderClose()函数包在主代码中OrderSend()函数包之后,因此,在打开订单后,我的OrderClose()包将测试是否满足关闭订单的条件,让我们说它满足,现在是关闭订单的时候。
时间[0]是这个条形图的开盘价,所以根据通常的逻辑,它必须小于订单打开的时间,因为订单不能在同一个条形图打开之前打开。
因此,通过各种手段:
将返回真值,所以订单关闭将被触发。如果它不能关闭它,由于任何原因,如滑移或如此,没有问题,start()重复自己
在下一次重复时,时间[0]将100%大于订单的开仓时间,因为它是合乎逻辑的,所以如果第一次平仓失败,其他的OrderClose()将在之后的每一次重复start()时发生,由于我认为start()在每一个tick 上重复,那么我不认为有更好的方法来快速关闭订单,我希望我解释清楚:)
你开始的时候,它必须要关闭最后一格的交易。
我们试图让你明白,不可能知道最后一个勾股何时到来。
现在,如果收盘失败也没关系,我们在接下来的时间里再试一次,再试一次。
你还错过了我建议的其他变化吗?
在订单关闭后刷新时间有什么意义呢?
你知道为什么是滑点而不是TAKEPROFITPIPS 吗?
这取决于错误返回,你可以尝试在同一个循环中关闭它2次
如果tradecontext太忙,而且你在循环中还有更多的交易要关闭,那么他们很有可能也会失败。
start()不是在每个tick之后重复自己吗?我说错了吗?
是的,start()在每个tick上都被调用,除非它还在执行 . . .
总之,想象一下这样的情况。
OrderOpenTime() = 12:12:01 (12 H 12 MIN 1 SEC)
订单被打开,OrderClose()函数包在主代码的OrderSend()之后,因此,在打开订单后,我的OrderClose()包将测试是否满足关闭订单的条件,让我们说现在是关闭订单的时候。
时间[0]是这个条形图的开盘价,所以根据通常的逻辑,它必须小于订单打开的时间,因为订单不能在同一条形图打开之前打开。
所以通过各种手段:
如果它不能关闭它,由于任何原因,如滑点或其他原因,没有问题,start()会重复进行。
在下一次重复时,时间[0]将100%大于订单的开仓时间,因为它是合乎逻辑的,所以如果第一次平仓失败,其他的OrderClose()将在之后的每一次重复start()时发生,由于我认为start()在每一个tick上重复,那么我不认为有更好的方法来快速关闭订单,我希望我解释得清楚:)
一个条形图的收盘价 不重复出现在下一个条形图上是很罕见的,不一定是它的开盘价......。