[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 465 1...458459460461462463464465466467468469470471472...652 新评论 asasusa 2011.12.29 06:29 #4641 所有的选择都是正常的,但错误很奇怪,我无法用测试器弄清楚。 它说我同时关闭了0.3手和卖出了0.7手。在测试器中,交易的一部分是这样完成的吗?我不知道这样的量从何而来;我在我的专家顾问中没有看到任何关于这样的量的信息。 for(Counter1=0;Counter1<OrdersTotal();Counter1++) { if(OrderSelect(Counter1,SELECT_BY_POS,MODE_TRADES) == false) break; if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) { if(OrderType() == OP_BUY) { BuyOpened = 1; if((Bid - OrderOpenPrice()) / Point >= TrailingLevel1 && (Bid - OrderOpenPrice()) / Point < TrailingLevel2) { // Перенести в безубыток } } if(OrderType() == OP_SELL) { TrailingPrice1 = OrderOpenPrice() - TrailingLevel1*Point; MyOrderStopLoss1 = NormalizeDouble(OrderStopLoss(),4); MyOrderStopLoss1 = OrderOpenPrice() - BreakEven*Point; SellOpened = 1; if((OrderOpenPrice() - Ask) / Point >= TrailingLevel1 && (OrderOpenPrice() - Ask) / Point < TrailingLevel2 && OrderStopLoss() != MyOrderStopLoss1) { ClosingLot = OrderLots() / 100 * ClosingPercent; ClosingLot = NormalizeDouble(ClosingLot,3); OrderClose(OrderTicket(),ClosingLot,Ask,Slippage,Yellow); OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() - BreakEven*Point,OrderTakeProfit(),OrderExpiration(),Black); } } } } ilunga 2011.12.29 06:45 #4642 sss2019: 所有的选择都是正常的,但错误很奇怪,我无法用测试器弄清楚。 它说我同时关闭了0.3手和卖出了0.7手。在测试器中,交易的一部分是这样完成的吗?另外,我不知道当交易的一部分被关闭,然后打开0.16、0.24、0.12时,这样的交易量从何而来;专家顾问没有这样的交易量。 是的,这就是部分关闭的显示方式--首先是全部关闭,然后是部分打开。 我有两个问题。 1)你怎么知道接下来不要关闭什么? 在下一次打勾时,这个函数的条件将再次得到满足 2)如果我没有弄错的话,部分关闭后,订单票会发生变化,即 OrderClose(OrderTicket(),ClosingLot,Ask,Slippage,Yellow); OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() - BreakEven*Point,OrderTakeProfit(),OrderExpiration(),Black); 第二行将没有变化 3) 我们不要忘记正常化......。 asasusa 2011.12.29 07:26 #4643 ilunga: 是的,这就是关闭部分的显示方式--首先是所有关闭部分,然后是打开部分 立即提出两个问题。 1)你怎么知道没有必要进一步关闭? 下一个刻度线的条件将再次满足该函数的要求。 2)如果我没有弄错的话,部分关闭后,订单票会发生变化,即 第二行将没有变化 3) 我们不要忘记正常化的问题... 这张票真的在变化吗?这一定是所有错误的原因。那么,为什么手动更改订单时,票据不发生变化?我需要确定的是,门票是否有变化。 asasusa 2011.12.29 07:32 #4644 真的在改变,非常感谢你 asasusa 2011.12.29 08:15 #4645 我听说,当你从一个货币对中获得一个价格以进一步处理它时,它应该被规范化,例如,从一个最低点获得的价格,它应该被规范化以设置为止损,这是真的吗? --- 2011.12.29 08:25 #4646 sss2019: 我听说,当你从一个货币对中获得一个价格时,你需要将其正常化,例如,你从一个低点获得一个价格,你需要将其正常化为一个止损,这是真的吗? 是的,但我们指的是在设置为Ordersend/OrderModify/...时的规范化。在这些功能之前,你可以用它来工作并执行操作 asasusa 2011.12.29 08:37 #4647 sergeev: 是的,但规范化是指在Ordersend/OrderModify/...中的替换时刻。在这些功能之前,你可以使用它并进行操作 它应该被规范化为多少位数?默认情况下,价格似乎在小数点后有4位,即使是五位数的价格值,至少Low[0]和High[0]总是在小数点后只有4位,我试着通过Alert或通过Print 来输出。 ilunga 2011.12.29 08:48 #4648 sss2019: 它应该被规范化为多少位数?默认情况下,价格似乎在小数点后有4位数字,即使是5位数的值,至少Low[0]和High[0]在小数点后总是只有4位数字,我试着通过Alert或Print来输出。 默认情况下,Digits 价格在小数点后有数字。 而警报和打印输出默认只有4个。使用字符串DoubleToStr( double value, int digits)获得更多信息。 asasusa 2011.12.29 09:07 #4649 然后帮助实施追踪止损,像这样。卖出订单 if((OrderOpenPrice() - Ask) / Point > Trailing) //Если прибыль в пунктах больше чем уровень трейлинг стопа { NewStopLoss = Ask + TrailingLevel2*Point; double NewStopLoss2 = 9999; if(NewStopLoss2 > NewStopLoss) { NewStopLoss2 = NewStopLoss; } OrderModify(OrderTicket(),OrderOpenPrice(),NewStopLoss2,OrderTakeProfit(),OrderExpiration(),Black); } 问题是,止损应该只向前滚动,但在我的订单中它也向后滚动。 ________________________________ 我的问题没有了,对不起。 ilunga 2011.12.29 09:12 #4650 sss2019: 然后帮助实施追踪止损,像这样。卖出订单 问题是,止损应该只向前移动,但我也让它向后移动。double NewStopLoss2 = 9999; if(NewStopLoss2 > NewStopLoss) { NewStopLoss2 = NewStopLoss; } 相当于 NewStopLoss2 = NewStopLoss; 1...458459460461462463464465466467468469470471472...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
所有的选择都是正常的,但错误很奇怪,我无法用测试器弄清楚。
它说我同时关闭了0.3手和卖出了0.7手。在测试器中,交易的一部分是这样完成的吗?我不知道这样的量从何而来;我在我的专家顾问中没有看到任何关于这样的量的信息。
所有的选择都是正常的,但错误很奇怪,我无法用测试器弄清楚。
它说我同时关闭了0.3手和卖出了0.7手。在测试器中,交易的一部分是这样完成的吗?另外,我不知道当交易的一部分被关闭,然后打开0.16、0.24、0.12时,这样的交易量从何而来;专家顾问没有这样的交易量。
是的,这就是部分关闭的显示方式--首先是全部关闭,然后是部分打开。
我有两个问题。
1)你怎么知道接下来不要关闭什么?
在下一次打勾时,这个函数的条件将再次得到满足
2)如果我没有弄错的话,部分关闭后,订单票会发生变化,即
第二行将没有变化
3) 我们不要忘记正常化......。
是的,这就是关闭部分的显示方式--首先是所有关闭部分,然后是打开部分
立即提出两个问题。
1)你怎么知道没有必要进一步关闭?
下一个刻度线的条件将再次满足该函数的要求。
2)如果我没有弄错的话,部分关闭后,订单票会发生变化,即
第二行将没有变化
3) 我们不要忘记正常化的问题...
这张票真的在变化吗?这一定是所有错误的原因。那么,为什么手动更改订单时,票据不发生变化?我需要确定的是,门票是否有变化。
真的在改变,非常感谢你
我听说,当你从一个货币对中获得一个价格时,你需要将其正常化,例如,你从一个低点获得一个价格,你需要将其正常化为一个止损,这是真的吗?
是的,但我们指的是在设置为Ordersend/OrderModify/...时的规范化。在这些功能之前,你可以用它来工作并执行操作
是的,但规范化是指在Ordersend/OrderModify/...中的替换时刻。在这些功能之前,你可以使用它并进行操作
它应该被规范化为多少位数?默认情况下,价格似乎在小数点后有4位,即使是五位数的价格值,至少Low[0]和High[0]总是在小数点后只有4位,我试着通过Alert或通过Print 来输出。
它应该被规范化为多少位数?默认情况下,价格似乎在小数点后有4位数字,即使是5位数的值,至少Low[0]和High[0]在小数点后总是只有4位数字,我试着通过Alert或Print来输出。
默认情况下,Digits 价格在小数点后有数字。
而警报和打印输出默认只有4个。使用字符串DoubleToStr( double value, int digits)获得更多信息。
然后帮助实施追踪止损,像这样。卖出订单
问题是,止损应该只向前滚动,但在我的订单中它也向后滚动。
________________________________
我的问题没有了,对不起。
然后帮助实施追踪止损,像这样。卖出订单
问题是,止损应该只向前移动,但我也让它向后移动。相当于