初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1283 1...127612771278127912801281128212831284128512861287128812891290...1503 新评论 Vladimir Karputov 2021.02.01 11:12 #12821 Youri Lazurenko: 如果没有完整的代码,我将无法帮助你。请附上完整的代码(使用 按钮附上)。 Youri Lazurenko 2021.02.01 11:27 #12822 如果在void OnTick()中,它看起来像这样。 if(currentTime >= OpenTrade && currentTime < CloseTrade) { if(SignalBuy1() || SignalBuy2()) { if(timeBarInside != iTime(NULL, 0, 1)) { OpenOrderBuy(); PositionModifiBuy(); CandleColor(ColorCandleBuy); timeBarInside = iTime(NULL, 0, 1); } } if(SignalSell1() || SignalSell2()) { if(timeBarInside != iTime(NULL, 0, 1)) { OpenOrderSell(); PositionModifiSell(); CandleColor(ColorCandleSell); timeBarInside = iTime(NULL, 0, 1); } } } 全代码是什么意思?整个EA?这是相当麻烦的,而且其余的功能与修改无关。我明白,我们可以在开仓时 立即设置SL和TP,但我想这样做,我已经在想为什么它不工作了。在mql4中,它像两根手指一样完成......而在这里,它是一个痛苦的过程。 Youri Lazurenko 2021.02.01 11:48 #12823 再回过头来画趋势线。如果你需要一个代码。 bool CreateLine(string name, datetime time1, double price1, datetime time2, double price2, color clr) { ObjectDelete(0, name); if(ObjectCreate(0, name, OBJ_TREND, 0, time1, price1, time2, price2)) { ObjectSetInteger(0, name, OBJPROP_COLOR, clr); ObjectSetInteger(0, name, OBJPROP_STYLE, TrendStyle); ObjectSetInteger(0, name, OBJPROP_WIDTH, TrendWidth); ChartRedraw(); Sleep(10); return(true); } else { Print("Ошибка в создании линии"); return (false); } } 附加的文件: 1.png 82 kb 2.png 36 kb Alexey Viktorov 2021.02.01 11:58 #12824 Youri Lazurenko:再回过头来画趋势线。如果你需要代码。 阅读文件!!!。 OBJ_TREND 注意事项 可以指定趋势线向右和/或向左延伸的模式(分别为OBJPROP_RAY_RIGHT和OBJPROP_RAY_LEFT属性)。 默认情况下,这些属性被设置为false。 所以我的问题是:为什么要删除该对象并再次创建它?只有在图表上没有发现这样的对象时才创建,这不是更容易吗?而且,即使有必要改变锚点坐标,也不需要删除该对象并重新创建它。 Vladimir Karputov 2021.02.01 12:08 #12825 Youri Lazurenko: 第三次也是最后一次:请附上完整的代码。 Youri Lazurenko 2021.02.01 12:24 #12826 Alexey Viktorov:阅读文件!!!。这些属性在默认情况下被设置为假。还有一个问题:为什么要删除一个对象并再次创建它?只有在图表上没有发现这样的对象时才创建,这不是更容易吗?而且,即使有必要改变锚点坐标,也不需要删除该对象并重新创建它。 谢谢,我现在就去看看。并感谢您的宝贵意见。我不是一个程序员,只是为了自己,我经常使用别人的作品。 Youri Lazurenko 2021.02.01 12:35 #12827 Vladimir Karputov:请第三次也是最后一次:附上完整的代码。 已经解决了这个问题。我通过Tisket修改,而不是Symbol。我不明白完整的代码有什么用,比如说,开仓 条件与修改有什么关系? 而现在看起来是这样的,也许有人会需要它。 void PositionModifiSell() { int i; ulong ticket; double sl = 0; double tp = 0; int total = PositionsTotal(); for(i = total-1; i >= 0; i--) { if(m_position.SelectByIndex(i)) { if(m_position.Symbol() == Symbol() && m_position.Magic() == Magic) { if(m_position.PositionType() == POSITION_TYPE_SELL) { if(m_position.StopLoss() == 0 && m_position.TakeProfit() == 0) { ticket = m_position.Ticket(); sl = NormalizeDouble(iHigh(NULL, 0, ExtrimUp()) + VS*_Point, _Digits); if(PriceCurrentDw1() - PriceDwHigh() < LastPriceOpenOrder() - (sp+PW)*_Point) { tp = NormalizeDouble(PriceCurrentDw1() - PriceDwHigh(), _Digits); } else tp = NormalizeDouble(bid - TP*_Point, _Digits); } if(!m_trade.PositionModify(ticket, sl, tp)) { Print("Метод PositionModify() потерпел поражение. Код возврата = ", m_trade.ResultRetcode(), ". Описание кода: ", m_trade.ResultRetcodeDescription()); } else { Print("Метод PositionModify() исполнен успешно. Код возврата = ", m_trade.ResultRetcode(), " (", m_trade.ResultRetcodeDescription(),")"); } } } } } } } Vladimir Karputov 2021.02.01 12:40 #12828 Youri Lazurenko: 研究帮助--按票选择位置和按符号选择位置之间有什么区别。它将派上用场,使你不至于犯错。 位置选择 bool PositionSelect( string symbol // имя инструмента ); 注意事项 在 "净额 "头寸核算(ACCOUNT_MARGIN_MODE_RETAIL_NETTING和ACCOUNT_MARGIN_MODE_EXCHANGE)下,每个符号 在任何时候都只能建立一个头寸,这是一个或多个交易 的结果。仓位不应与活跃的挂单 混淆,后者也显示在 "工具箱 "面板的 "交易 "标签中。 如果头寸是独立显示 的(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING),每个符号可以 同时打开几个头寸。在这种情况下,PositionSelect将选择最小的刻度线的位置。 Документация по MQL5: Торговые функции / PositionSelect www.mql5.com PositionSelect - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Youri Lazurenko 2021.02.01 12:58 #12829 Alexey Viktorov:阅读文件!!!。这些属性在默认情况下被设置为假。还有一个问题:为什么要删除一个对象并再次创建它?只有在图表上没有发现这样的对象时才创建,这不是更容易吗?而且,即使有必要改变锚点坐标,也不需要删除该对象并重新创建它。 再次感谢,现在的线就像一条线,很好看。但我需要ObjectDelete(0, name);否则一旦画好的线就不会重画。在mql4中也一样,只是忘了。 Vladimir Karputov 2021.02.01 13:03 #12830 Youri Lazurenko:再次感谢,现在的线就像一条线,很好看。只有ObjectDelete(0, name);;是需要的,否则一旦画出的线就不会重画。在mql4中也一样,我只是忘了。多么荒谬的想法。绘制的图形对象平稳地移动。每个对象的帮助中都有一个例子(对于水平线OBJ_HLINE)。 你也可以改变已经画好的对象的任何属性:颜色、风格、气味......。 Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE www.mql5.com OBJ_HLINE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 1...127612771278127912801281128212831284128512861287128812891290...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果没有完整的代码,我将无法帮助你。请附上完整的代码(使用 按钮附上)。
再回过头来画趋势线。如果你需要一个代码。
再回过头来画趋势线。如果你需要代码。
阅读文件!!!。
注意事项
可以指定趋势线向右和/或向左延伸的模式(分别为OBJPROP_RAY_RIGHT和OBJPROP_RAY_LEFT属性)。
默认情况下,这些属性被设置为false。
所以我的问题是:为什么要删除该对象并再次创建它?只有在图表上没有发现这样的对象时才创建,这不是更容易吗?而且,即使有必要改变锚点坐标,也不需要删除该对象并重新创建它。
第三次也是最后一次:请附上完整的代码。
阅读文件!!!。
这些属性在默认情况下被设置为假。
还有一个问题:为什么要删除一个对象并再次创建它?只有在图表上没有发现这样的对象时才创建,这不是更容易吗?而且,即使有必要改变锚点坐标,也不需要删除该对象并重新创建它。
谢谢,我现在就去看看。并感谢您的宝贵意见。我不是一个程序员,只是为了自己,我经常使用别人的作品。
请第三次也是最后一次:附上完整的代码。
已经解决了这个问题。我通过Tisket修改,而不是Symbol。我不明白完整的代码有什么用,比如说,开仓 条件与修改有什么关系?
而现在看起来是这样的,也许有人会需要它。
研究帮助--按票选择位置和按符号选择位置之间有什么区别。它将派上用场,使你不至于犯错。
位置选择
注意事项
阅读文件!!!。
这些属性在默认情况下被设置为假。
还有一个问题:为什么要删除一个对象并再次创建它?只有在图表上没有发现这样的对象时才创建,这不是更容易吗?而且,即使有必要改变锚点坐标,也不需要删除该对象并重新创建它。
再次感谢,现在的线就像一条线,很好看。但我需要ObjectDelete(0, name);否则一旦画好的线就不会重画。在mql4中也一样,只是忘了。
再次感谢,现在的线就像一条线,很好看。只有ObjectDelete(0, name);;是需要的,否则一旦画出的线就不会重画。在mql4中也一样,我只是忘了。
多么荒谬的想法。绘制的图形对象平稳地移动。每个对象的帮助中都有一个例子(对于水平线OBJ_HLINE)。
你也可以改变已经画好的对象的任何属性:颜色、风格、气味......。