Индикаторы: showSwap - страница 3

 
Yuriy Yepifanov #:

смысл этого я не понял.
и тогда теряется смысл в параметре

string text

так как он вообще не используется.

На момент создания графического объекта, параметр присутствует, но не содержит строкового значения.

Типа инициализация "пустым".

Айди графика, название параметра "name", его свойство OBJPROP_TEXT присутствуют, просто букав в значении нет при его создании, так что теряться нечему.  )))

А в процессе его появления, LabelTextChange(...) втавит в параметр "name", вставит "text".

и зачем разделять на 2 файла  showSwap.mqh и showSwap.mql4 ?
Мне так нравиться, бардака меньше. )))

Особенно в больших проектах.

 
Yuriy Yepifanov #:


если написать более коротко


или

Своп SELL ордеров

Длинно-коротко, это чтобы выяснить какой смысл был вложен в отображаемые параметры.

Что бы выяснить, что именно они означают.


В " Своп SELL ордеров", я бы все-таки добавил "суммарный", потому, что в терминале уже отображается раздельно по ордерам.

Так, что как автору будет угодно.

Главное, что бы было понятно пользоватею, не кодящему, язык не знающему, что это. )))

 
Vitaly Muzichenko #:

вот правильно:

Это дорогая операция

а можете указать на источник информации ?

 

спасибо всем участникам за ценные замечания и идеи.


обновил сегодня версию
 

showSwap простой индикатор.

показывает накопленный  SWAP  открытых ордеров и информацию об актуальном SWAP на рынке

можно указать магик ордеров, если 0, то все ордера

а так же координаты панели индикатора на графике, цвет фона и текста

 

Я посмотрел код досконально, и возникло впечатление что его писали эдак в 2010 году, когда писать особо не умели, да и сильно не заморачивались с оптимизацией.

Особенно интересны эти моменты

---

это вообще вытянуто откуда-то со свалки

---

Почему это bool, вообще не понятно

---

Зачем сбрасывать ошибку при выгрузке программы

---

Ну и напоследок

Зачем на каждом тике дёргать дорогую функцию, если создание объектов можно вынести в OnInit()

--

Не, так писать в 2024 году для кодобазы, уж извините. Одно дело поправить чужой старый код, а другое - написать с нуля.

P.S. CodeBase создана для публикации кодов, чтобы на них учились, но в вашем случае: "как не нужно делать". Не знаю кто поставил одну звезду, но Я сделал-бы также.

 
Vitaly Muzichenko #:
Зачем на каждом тике дёргать дорогую функцию, если создание объектов можно вынести в OnInit()

это хорошо, что вы внимательно просмотрели код.

////// Зачем на каждом тике дёргать дорогую функцию, если создание объектов можно вынести в OnInit()

как раз создание объектов и есть в OnInit()

int OnInit()
{
   ResetLastError();

   initGui();


наверное все таки смотрели не очень внимательно.

в справочнике эти функции также bool

https://www.mql5.com/en/docs/constants/objectconstants/enum_object/obj_label

в других моментах вы написали, что вам не нравится, но не предложили другие варианты.

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Оператор new автоматически создает объект соответствующего размера, вызывает конструктор объекта и возвращает описатель созданного объекта . В...
 
Vitaly Muzichenko #:

Я посмотрел код досконально, и возникло впечатление что его писали эдак в 2010 году, когда писать особо не умели, да и сильно не заморачивались с оптимизацией.

Особенно интересны эти моменты

---

это вообще вытянуто откуда-то со свалки

---

Почему это bool, вообще не понятно

---

Зачем сбрасывать ошибку при выгрузке программы

---

Ну и напоследок

Зачем на каждом тике дёргать дорогую функцию, если создание объектов можно вынести в OnInit()

--

Не, так писать в 2024 году для кодобазы, уж извините. Одно дело поправить чужой старый код, а другое - написать с нуля.

P.S. CodeBase создана для публикации кодов, чтобы на них учились, но в вашем случае: "как не нужно делать". Не знаю кто поставил одну звезду, но Я сделал-бы также.

//// это вообще вытянуто откуда-то со свалки

а как должно быть ?

 

Vitaly Muzichenko #:

Виталий, а Вы черкние код через SymbolInfoDouble(...); и с преобразования в строку, через StringFormat(...),

+ DoubleToStr(MarketInfo(Symbol(),MODE_SWAPLONG),2));

Для шортов тоже можно, чтобы ровненько было.  )))

что бы  свалку освежить. )))

Кимовские функции , на четверке, по сей день, у многих "писателей", особенно начинающих, используются без задней мысли и без понимания процесса. )))

К слову, в первом посте, там не о рейтинге, а о состоянии кода, ну дальше по теме.

P.S. Я  с Вами абсолютно согласен, про качество выставляемого кода в CODEBASE, но и там не все так просто. )))  

Так, что ждем Ваш вариант для свалки.

Да и код, по "новому", за автора ветки никто писать не будет.

 
_SERG_ #:

Vitaly Muzichenko #:

Виталий, а Вы черкние код через SymbolInfoDouble(...); и с преобразования в строку, через StringFormat(...),

что бы  свалку освежить. )))

Кимовские функции , на четверке, по сей день, у многих "писателей", особенно начинающих, используются без задней мысли и без понимания процесса. )))

К слову, в первом посте, там не о рейтинге, а о состоянии кода, ну дальше по теме.

P.S. Я  с Вами абсолютно согласен, про качество выставляемого кода в CODEBASE, но и там не все так просто. )))  

Так, что ждем Ваш вариант для свалки.

Да и код, по "новому", за автора ветки никто писать не будет.

Радует, что вы в "теме" после моего сообщения :)

Причина обращения: