Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если это работает для вас - прекрасно. Я рад. Но я считаю, что любой индикатор должен быть максимально универсальным, а не подходить только для какой-то конкретной ситуации. Сделай один раз, но сделай это правильно, чтобы, если тебе нужно будет что-то изменить или ситуация изменится с точки зрения твоих позиций, он работал правильно.
В любом случае, всегда пожалуйста.
Это не сработает, если вы создадите объект, а затем попытаетесь создать его снова на следующем тике, это не сработает. . так что если первый ордер - Buy, а второй - Sell, текст не будет обновлен с Buy на Sell.
Он работает, но просто показывает последний ордер. Я не знаю, как изменить его для текущего ордера!
Я не знаю, хорошая это практика или нет, но я создаю метки в init() и ObjectSetText просто с помощью ".".
Я еще не придумал, как поместить метку с абсолютно пустым текстом. Если я пытаюсь, то появляется текст "Label".
Конечно, это нормально, если вы знаете, сколько этикеток вам понадобится.
Я думаю, что не должно быть слишком сложно удалять лишние метки и добавлять новые, когда это необходимо в основной части.
Вот код, который я использую в init() для создания меток
О. и в deinit()
Это работает, но показывает только последний заказ. Я не знаю, как изменить его для текущего заказа!
{ int counted_bars=IndicatorCounted(); int pos; string OrderTip = "OT"; string ottt; color LabelColor3; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() ) { if(OrderType()==OP_BUY) pos++; if(OrderType()==OP_SELL) pos++; } } if (OrderType()==OP_BUY) { ottt="Buy"; LabelColor3 = DodgerBlue; } if (OrderType()==OP_SELL){ ottt="Sell"; LabelColor3 = Red; } else ottt=""; ObjectCreate(OrderTip, OBJ_LABEL, 0 , 0, 0, 0); ObjectSet(OrderTip, OBJPROP_CORNER, 1); ObjectSet(OrderTip, OBJPROP_XDISTANCE, 10); ObjectSet(OrderTip, OBJPROP_YDISTANCE, 15); ObjectSetText(OrderTip, "Order Type: "+ottt, 8, "Tahoma",LabelColor3); }Я имел в виду весь код. ... но неважно... попробуйте эти изменения.
{ int counted_bars=IndicatorCounted(); int pos; string OrderTip = "OT"; string ottt = " "; color LabelColor3 = Black; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if(OrderSymbol()==Symbol() ) { if (OrderType() == OP_BUY) { ottt = "Buy"; LabelColor3 = DodgerBlue; } if (OrderType() == OP_SELL){ ottt = "Sell"; LabelColor3 = Red; } } } if (ObjectFind(OrderTip) < 0) ObjectCreate(OrderTip, OBJ_LABEL, 0 , 0, 0, 0); ObjectSet(OrderTip, OBJPROP_CORNER, 1); ObjectSet(OrderTip, OBJPROP_XDISTANCE, 10); ObjectSet(OrderTip, OBJPROP_YDISTANCE, 15); ObjectSetText(OrderTip, "Order Type: "+ottt, 8, "Tahoma",LabelColor3); }Пожалуйста, не публикуйте запросы, которые не имеют отношения к этой очень старой теме
Я перепостил ваш запрос
https://forum.mql4.com/72256