Препарируем скальпинг - страница 17

 
Igor Makanu:

ну тут то в чем вопрос, классы упрощают время разработки программного обеспечения - скажем так если на поток писать ПО (как на конвейере - по сути сборка софта)

но увы, чуда не бывает - чтобы использовать классы нужно время на их изучение

но в части стандартных классов из поставки МТ, ими можно пользоваться - есть справка, классы написаны в хорошем стиле программирования, и довольно просто читаются

Да не все уж очень можно использовать. Бывают моменты что проще написать свой класс, ну или как минимум скопировать стандартный и внести нужные изменения.

 
SEM:

Версия для MT5 будет?

Небольшая заготовка для MT5 (работает в тестере).

Открывает следующую сделку, если все предыдущие по символу и направлению в плюсе.

Для начала отлично работает... надо закончить, а то Лехи некогда... как то привязать уровни - может этот скрипт подойдет https://www.mql5.com/ru/code/20189 

ProfLine
ProfLine
  • www.mql5.com
Скрипт рассчитывает и выводит на график уровни безубытка отдельно для открытых позиций BUY и SELL. После изменений количества позиций требуется повторный запуск скрипта.
 
Petros Shatakhtsyan:

Я не говорю о стандартных классах MQL, они намного упрощают код. И чтобы их использовать совсем не надо знать ООП.

ну если Вы уже используете стандартные классы MQL, то до ООП Вас отделяет лишь один шаг

тут вопрос как обстоит, если имеет смысл писать класс, то пишем, нет - не пишем

в той же графике, без классов ну никак не получится, я застиг во время своего обучения еще TurboPascal и была на тот момент графическая библиотека для работы с текстовыми панелями, причем речи не шло об ООП - код окошек и меню был такой замудренный, что руки опускались что то делать из такой библиотеки, да и как ни крути все равно из той библиотеки получался NortonCommander

))))

ну и еще пример, вот MQL дает возможность создавать синтетические символы, можно все поля нового инструмента один раз заполнить из кода, а если нужно создать несколько инструментов? - тогда начнете придумывать массив структур или т.п.

ну или берем ищем поиском по форуму и находим готовое решение в виде класса class SYMBOL

https://www.mql5.com/ru/code/18855

берем и юзаем или берем наследуем и переписывает методы которые считаем что можем реализовать лучше

увы, живем в век в котором количество информации преобладает над возможностями ее изучения конкретным человеком, нужно уметь искать и пользоваться готовыми решениями

Symbol
Symbol
  • www.mql5.com
Библиотека содержит некоторый функционал, позволяющий разобраться на начальном этапе, как идет работа с кастомными символами, и предлагает некоторые готовые решения, могущие быть полезными. Пример При запуске бэктеста на кроссах тестер тянет за собой не только основной символ, но и вспомогательный, который позволяет конвертировать валюту...
 
Igor Makanu:

у Вас оптимистичный сценарий развития события, я же пессимист и вижу такой ход событий: после препарирования получаем увеличение кукиша аж в 20 раз! ))))

ну а по сабжу:

это то все ясно, скажем так эти вопросы возникают лишь у тех кто первый раз прочитал что такое ООП, если сейчас идет речь о базовых принципах ООП, то интересуют вопросы:

- как наследовать более одного родительского класса

- как унаследовать от CObject принципы связанных списков, как пример хочу научиться "скрещивать" CLabel с CObject , в результате хочу получить CLabel .Prev , CLabel .Next и аналогичные методы

На MQL никак, даже в виде интерфейсов. 

Нет там никаких принципов для наследования, есть функции-пустышки и все, все надо делать самому. Класс-то из нескольких строчек

class CObject
  {
private:
   CObject          *m_prev;               // previous item of list
   CObject          *m_next;               // next item of list

public:
                     CObject(void): m_prev(NULL),m_next(NULL)            {                 }
                    ~CObject(void)                                       {                 }
   //--- methods to access protected data
   CObject          *Prev(void)                                    const { return(m_prev); }
   void              Prev(CObject *node)                                 { m_prev=node;    }
   CObject          *Next(void)                                    const { return(m_next); }
   void              Next(CObject *node)                                 { m_next=node;    }
   //--- methods for working with files
   virtual bool      Save(const int file_handle)                         { return(true);   }
   virtual bool      Load(const int file_handle)                         { return(true);   }
   //--- method of identifying the object
   virtual int       Type(void)                                    const { return(0);      }
   //--- method of comparing the objects
   virtual int       Compare(const CObject *node,const int mode=0) const { return(0);      }
  };
 
Igor Makanu:

ну тут то в чем вопрос, классы упрощают время разработки программного обеспечения - скажем так если на поток писать ПО (как на конвейере - по сути сборка софта)

но увы, чуда не бывает - чтобы использовать классы нужно время на их изучение

но в части стандартных классов из поставки МТ, ими можно пользоваться - есть справка, классы написаны в хорошем стиле программирования, и довольно просто читаются

И многие очень эффективно написаны, например CHashMap рвет по скорости все аналоги, что публиковались тут в статьях и кодобазе. А я хеш-таблицы очень широко использую.

 
Сергей Криушин:

Для начала отлично работает... надо закончить, а то Лехи некогда... как то привязать уровни - может этот скрипт подойдет https://www.mql5.com/ru/code/20189 

Увы, Лехе надо и на хавчик зарабатывать )) Сделаем, но не мгновенно

 
Igor Makanu:

в той же графике, без классов ну никак не получится, я застиг во время своего обучения еще TurboPascal и была на тот момент графическая библиотека для работы с текстовыми панелями, причем речи не шло об ООП - код окошек и меню был такой замудренный, что руки опускались что то делать из такой библиотеки, да и как ни крути все равно из той библиотеки получался NortonCommander

Помнится, там какие-то зачатки ООП появились в TP 7

 
Alexey Volchanskiy:

Увы, Лехе надо и на хавчик зарабатывать )) Сделаем, но не мгновенно

Проставь счет веб мани в профиль...и накидаем с миру по нитке...голому рубаха...за труды и вдохновение твое... не только же для себя любимого корячишься на общее благо и понимание истины...

 
Сергей Криушин:

Проставь счет веб мани в профиль...и накидаем с миру по нитке...голому рубаха...за труды и вдохновение твое... не только же для себя любимого корячишься на общее благо и понимание истины...

Я, как человек глубоко циничный, в чудеса не верю ))) Но, в качестве социального эксперимента написал кошельки. Вдруг случиться чудо и в ВМ брякнет монетка, мое сердце растает и я, растрогавшись, пойду на эту монетку кормить бездомных котят )) Или подберу и вылечу уточку с перебитым крылом с соседнего озера. Но обещаю не пропить, не спустить на баб и не проиграть в карты! https://www.mql5.com/ru/users/vdev


Alexey Volchanskiy
Alexey Volchanskiy
  • www.mql5.com
Опубликовал пост ScalpHunter2 v1.38_EN.ex4 Немного измененная версия, из-за чемпионата не получилось много поработать, внизу смотрите ScalpHunter2 v1.38_EN.zip, работает до 2018.07.31, настройки те же... Добавил тему Шифрование программ? Тут коллега спрашивает, ломаются ли программы из Маркета и обычные, зашифрованные на Сервере MQ? Кто не в...
 
Обновил в Хранилище проект, в основном дополнил класс CM1PivotLevels. Проект лежит в Хранилище по адресу "MQL5\Shared Projects\PrepareScalping". Пока он не рабочий, скоро добью.
Причина обращения: