新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1640 1...163316341635163616371638163916401641164216431644164516461647...1953 新评论 Tretyakov Rostyslav 2021.10.02 08:24 #16391 EVGENII SHELIPOV #:大家好!!!!。我正在为一个EA编写代码,用于从订单网格的平均价格中追踪止损组订单。日志中没有错误,但拖网也不工作。以下是代码,请指出错误所在。谢谢你! 拖网是在错误的地方! 它看起来应该是这样的 如果盈亏平衡价格+利润-TRAL!=TakeProfit,开始拖网 这些数据从何而来? //+----------------------------------------------------------------------------+ //| Трейлинг стоп групповых ордеров | //+----------------------------------------------------------------------------+ void TrailingGroupOrder() { price += OrderOpenPrice() * OrderLots(); order_lots += OrderLots() ; for(int i = OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 订单开放价格 返回所选订单的开盘价。 doubleOrderOpenPrice()。 请注意。 该订单必须使用OrderSelect() 函数进行预选。 Maksim Burov 2021.10.02 12:48 #16392 MakarFX #: 谢谢你)。 EVGENII SHELIPOV 2021.10.02 12:59 #16393 MakarFX #:那不是拖网所站的位置!它应该是这样的。如果盈亏平衡价格+利润-TRAL!=TakeProfit,则运行拖网。 下午好 Makar!!!! 据我所知,这就是有问题的那条线。在这种情况下,是买入订单。 if(Bid - NormalizeDouble(price / order_lots, Digits) > TrailingStopGroupOrder*Point || OrderStopLoss() == 0) 马卡尔,如果你能更详细地解释一下 EVGENII SHELIPOV 2021.10.02 13:06 #16394 MakarFX #:那不是拖网所站的位置!它应该是这样的。如果盈亏平衡价格+利润-TRAL!=TakeProfit,则运行拖网。这些数据从何而来? 你今天说的是谜语,马卡。 可能还有另一个问题,为什么我们在计算盈亏平衡价格时没有检查????? EVGENII SHELIPOV 2021.10.02 13:07 #16395 MakarFX #:那不是拖网所站的位置!它应该是这样的。如果盈亏平衡价格+利润-TRAL!=TakeProfit,则运行拖网。这些数据从何而来? 订单开放价格 返回所选订单的开盘价。 doubleOrderOpenPrice()。 请注意。 该订单必须使用OrderSelect() 函数进行预选。 是的,我想到了这一点,你已经写了 Tretyakov Rostyslav 2021.10.02 13:22 #16396 EVGENII SHELIPOV #:下午好 Makar!!!!就我的理解,这就是问题所在。在这种情况下,是买入订单。马卡如果你能更详细地解释 你有一组订单,你定义一个盈亏平衡点并创建一条线,这最好是作为一个单独的函数来完成!你可以把它作为一个单独的函数。 avg_price = NormalizeDouble(price / order_lots, Digits); { ObjectDelete(0, "AveragePriceLine"); ObjectCreate(0,"AveragePriceLine" ,OBJ_HLINE, 0, 0, avg_price); ObjectSet("AveragePriceLine",OBJPROP_COLOR, Magenta); } 然后你有你想得到的以点为单位的利润值,并从avg_price中加/减。 if (otype == OP_BUY) tp = NormalizeDouble (avg_price + TakeProfitGroupOrder*Point, Digits); if (otype == OP_SELL) tp = NormalizeDouble (avg_price - TakeProfitGroupOrder*Point, Digits); 再有一个单独的拖网功能 对于购买:如果出价>avg_price = OrderModify() 对于销售:如果 avg < avg_price = OrderModify() 不幸的是,在你的代码中,我看到了不符合逻辑的行动(主观上)。 Tretyakov Rostyslav 2021.10.02 13:33 #16397 EVGENII SHELIPOV #:这就是我所想的,你已经写了。 把功能分开,这样你就更容易浏览了。 下面是一个OnTick()的例子 //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(GetProfitFromStart()>CountProfit || GetProfitFromStart()<CountLoss*-1) { CloseOrder(); } sl = MathMax(Stoploss, MarketInfo(_Symbol, MODE_STOPLEVEL)) * Point(); SL = NormalizeDouble(sl*Point(),Digits); tp = MathMax(Takeprofit, MarketInfo(_Symbol, MODE_STOPLEVEL)) * Point(); TP = NormalizeDouble(tp*Point(),Digits); //--- if(CountOrders()==0&&ObjectGetInteger(0,"lab_Button",OBJPROP_STATE)) { if(TradeSignal()>=0) { SendOrder(TradeSignal()); } } //--- if (!IsTradeAllowed()) {DrawLABEL("lab_Торговля",0,0,0,clrRed,"Торговля запрещена"); return;} else {DrawLABEL("lab_Торговля",0,0,0,clrLime,"Торговля разрешена");} } //+------------------------------------------------------------------+ 正如你所看到的,这里只有函数调用 EVGENII SHELIPOV 2021.10.02 15:20 #16398 MakarFX #:将各项功能分开,使你更容易浏览。 下面是一个OnTick()的例子正如你所看到的,这里只有对函数的调用。 谢谢你,马卡,我会集中精力,这样想的 Tretyakov Rostyslav 2021.10.02 15:33 #16399 EVGENII SHELIPOV #:谢谢你,马卡尔。 我会把我的想法放在一起,朝着这个方向思考。(大声说) Анатолий Железняк 2021.10.02 15:57 #16400 问题:我怎样才能从EA的监护权中得到一个命令?也许已经有一些我不知道的截图或mt4功能。请给我指点迷津。我对学习mql 3、4、5等没有任何渴望和可能。 1...163316341635163616371638163916401641164216431644164516461647...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好!!!!。
我正在为一个EA编写代码,用于从订单网格的平均价格中追踪止损组订单。
日志中没有错误,但拖网也不工作。以下是代码,请指出错误所在。谢谢你!
拖网是在错误的地方!
它看起来应该是这样的
如果盈亏平衡价格+利润-TRAL!=TakeProfit,开始拖网
这些数据从何而来?
订单开放价格
返回所选订单的开盘价。
doubleOrderOpenPrice()。
请注意。
该订单必须使用OrderSelect() 函数进行预选。
谢谢你)。
那不是拖网所站的位置!
它应该是这样的。
如果盈亏平衡价格+利润-TRAL!=TakeProfit,则运行拖网。
下午好 Makar!!!!
据我所知,这就是有问题的那条线。在这种情况下,是买入订单。
马卡尔,如果你能更详细地解释一下
那不是拖网所站的位置!
它应该是这样的。
如果盈亏平衡价格+利润-TRAL!=TakeProfit,则运行拖网。
这些数据从何而来?
你今天说的是谜语,马卡。
可能还有另一个问题,为什么我们在计算盈亏平衡价格时没有检查?????
那不是拖网所站的位置!
它应该是这样的。
如果盈亏平衡价格+利润-TRAL!=TakeProfit,则运行拖网。
这些数据从何而来?
订单开放价格
返回所选订单的开盘价。
doubleOrderOpenPrice()。
请注意。
该订单必须使用OrderSelect() 函数进行预选。
是的,我想到了这一点,你已经写了
下午好 Makar!!!!
就我的理解,这就是问题所在。在这种情况下,是买入订单。
马卡如果你能更详细地解释
你有一组订单,你定义一个盈亏平衡点并创建一条线,这最好是作为一个单独的函数来完成!你可以把它作为一个单独的函数。
然后你有你想得到的以点为单位的利润值,并从avg_price中加/减。
再有一个单独的拖网功能
对于购买:如果出价>avg_price = OrderModify()
对于销售:如果 avg < avg_price = OrderModify()
不幸的是,在你的代码中,我看到了不符合逻辑的行动(主观上)。
这就是我所想的,你已经写了。
把功能分开,这样你就更容易浏览了。
下面是一个OnTick()的例子
正如你所看到的,这里只有函数调用
将各项功能分开,使你更容易浏览。
下面是一个OnTick()的例子
正如你所看到的,这里只有对函数的调用。
谢谢你,马卡,我会集中精力,这样想的
谢谢你,马卡尔。 我会把我的想法放在一起,朝着这个方向思考。