Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 4 из 13
Первая ... 3 4 5 ... Последняя ◄╝

Показаны сообщения: с 61 по 80 из 253

Тема: ООП для MQL4/MQL5 - это очень просто. Курс для начинающих.

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2018-01-14   22:44
    Лучший ответ #1
    Накопленные выплаты 98862 RUB

    Всем привет! Открываю тему по изучению объектно-ориентированного программирования с нуля. Будем использовать языки MQL4, MQL5, возможно, С++ в составе DLL. Будет желание, зацепим и C# с Matlab'ом Кратенько о себе. Программист с более чем 25-летним стажем, работал в крупных отечественных и зарубежных компаниях по разработке ПО и различной электроники. В мае 2010 г. понял, что наемная работа мешает мне развиваться в программировании на форексе, с тех пор работаю дома и вполне доволен. Активно использую в работе MQL4, MQL5, VS 2017 C++, C#, Matlab. Ну и всякое разное по мелочи. Краткий план курса Структуры От структур к классам Абстрактные классы, виртуальные функции Интерфейсы Что дальше? И вопрос к модераторам. Хотелось бы сделать меню, чтобы участники могли ориентироваться в разделах темы. Если я сделаю меню в начальных постах, как долго у меня будет доступ на редактирование поста с меню? Надо ли мне будет раз в несколько дней делать там изменения, чтобы пост не "заморозился"? Сможете ли вы в крайнем случае (например, я отсутствовал больше разрешенного срока) разморозить пост с меню? Или лучше продублировать меню на независимом ресурсе, например FB? Жду вашего ответа и начинаю сегодня.

    2018-01-16   03:47
    Лучший ответ #2
    Накопленные выплаты 98862 RUB

    Ну что, начнем осваивать классы. С вашего позволения я сделаю для начала небольшой лирический отступ. Среди новичков есть мнение, что классы - это очень сложно, что понять смысл ООП может только профессиональный программист и т.д. Заявляю с полной ответственностью - это полная ерунда. Как обычно, я всему учу на своем примере. Я по образованию вообще электронщик, программирование освоил самостоятельно. Тем не менее за душой куча проектов, как для России, так и по аутсортингу. Так что прочь сомнения, день-другой, и вы поймете, как работают классы! -------------- Итак, для учебных целей придумаем простенькую структуру struct SSimple1 { int ticket; double profit; }; Как нам преобразовать ее в класс? Элементарно, Ватсон! Заменяем слово struct на class class CSimple1 { int ticket; double profit; }; И пишем проверочный код. Да, друзья, чтобы чему-то научиться, надо писать код. Самому. Ручками. Читать мои посты недостаточно. Так что пиво в сторону, открывайте редактор MQL4 или 5 и пишем скрипт. void OnStart() { SSimple1 ss1; CSimple1 cs1; ss1.ticket = 123; cs1. // заметили, что после точки у вас не развернулся список из 2-х переменных? // попробуйте насильно вбить cs1.ticket = 123; // получите ошибку компиляции. Что делать, щеф?? Дело в том, что классы исторически произошли от структур, по крайней мере в Си-подобных языках. И если в структуре все ее члены, методы(функции) и поля(переменные) открыты внешнему миру, то в классах есть три уровня защиты, это уровни private, protected, public. Начнем с самого "доброго" уровня - с public Все, что находится в секции public, видно окружающему миру так же, как и все, что есть в структуре. Делаем эксперимент. class CSimple1 { public: // объявили секцию, где все будет доступно снаружи int ticket; double profit; }; И еще раз прогоняем OnStart. Обратите внимание, после печатанья точки cs1. у вас вдруг стал доступен список из 2-х переменных? Это компилер увидел секцию public и решил, что теперь вы имеете доступ к этим двум переменным. Далее разберемся с правами доступа поглубже и перейдем к наследованию. Потом забубеним что-то практическое, желательно мультиплатформенное, для мт4 и мт5 одновременно. ---------------------------------------- Друзья, Дамы и Господа. Я буду все больше давать практических заданий, очень рекомендую не просто читать эти посты, а делать их. Времени это будет занимать немного, но у вас наработается практика. Тупое чтение никогда ничего не дает. В этой жизни надо действовать, а не тупо читать!

    2018-07-19   20:34
    Лучший ответ #3
    Накопленные выплаты 27419 RUB

    полуавтомат хочу, и в тестере хочу погонять его, лень писать 2 версии (тестер/реал), надеюсь решить проблему имитации в тестере событий мыши полуавтомат хочу в виде панели, в которой можно чекбоксом выделить необходимый ордер и перевести этот ордер в отдельное сопровождение (доливки, трал, усреднение и пр.), а сам советник будет выставлять ордера по основному алгоритму - вот такая вот идея

    2018-01-15   00:53
    Лучший ответ #4
    Накопленные выплаты 98862 RUB

    У нас в процессе торговли может быть множество открытых и отложенных ордеров. Конечно, можно было бы тупо сделать каждый параметр динамическим массивом массивом, но представьте все неудобства такого подхода. При каждом увеличении количество ордеров сверх размера массива надо его менять для каждого параметра. И вопрос, что делать с дырами, которые получаются на месте закрытых ордеров? int ticket[], cmd[], slippage[], magic[]; double volumeSend[], volumeReal[], priceSend[], priceReal[], stoploss[], takeprofit[]; Гораздо проще и красивее упаковать все параметры в контейнер, который называется структурой. Для того, чтобы использовать структуру, надо сначала объявить ее тип. Это делается один раз и в дальнейшем мы можем создавать экземпляры этой структуры, или говоря по другому переменные типа объявленной структуры. struct SOrderParams // объявили имя типа. Теперь в программе помимо стандартных типов int, double и др. появился наш пользовательский тип структуры с именем SOrderParams { int ticket, cmd, slippage, magic; double volumeSend, volumeReal, priceSend, priceReal, stoploss, takeprofit; }; Допускается после объявления типа сразу же создавать переменные этой структуры struct SOrderParams // объявили имя типа. Теперь в программе помимо стандартных типов int, double и др. появился наш пользовательский тип структуры с именем SOrderParams { int ticket, cmd, slippage, magic; double volumeSend, volumeReal, priceSend, priceReal, stoploss, takeprofit; } order1, order2, orders;

    2018-01-15   13:22
    Лучший ответ #5
    Накопленные выплаты 98862 RUB

    Продолжим. Структуры, подобные SOrderParams, то есть имеющие в составе только целые и вещественные типы данных, называются простыми. Например, если в состав структуры входит строка или указатель на класс, она теряет невинность и простоту Простые типы структур можно присваивать, при этом данные будут копироваться. oparams_local2 = oparams_local3; Но тут есть важное замечание. Для компилятора идентичными структурами будут структуры одного типа. А тип определяется однозначно по имени типа, компилятор не анализирует, как там структура устроена внутри. Имя другое - все, значит и структура другая. Рассмотрим на примере. struct SOrderParams2 // та же структура, что и SOrderParams, но с другим именем типа - для компилятора она не идентична SOrderParams { int ticket, cmd, slippage, magic; double volumeSend, volumeReal, priceSend, priceReal, stoploss, takeprofit; } order2_1, order2_2, orders2; SOrderParams oparams_global; // глобальная переменная структуры, все поля обнулены void OnStart() { SOrderParams oparams_local1; // локальная переменная структуры, в полях в общем случае может быть мусор от предыдущих вызовов (именно в данном случае не будет, так как однопроходный скрипт) SOrderParams oparams_local2 = {0}; // обнулили все поля принудительно SOrderParams oparams_local3 = {123, ORDER_TYPE_SELL/* OP_SELL*/, 25, 456789, 0.5, 0.5, 1.25468, 1.25465, 1.25860, 1.25410}; // обнулили все поля принудительно Print(oparams_local2.priceReal, ", ", oparams_local2.stoploss, ", ", oparams_local3.magic, ", ", oparams_local3.stoploss); oparams_local2 = oparams_local3; // order2_1 = oparams_local2; // ошибка компиляции 'operator=' - illegal operation use Structures.mq5 30 13 } Структуры разных типов можно копировать только отдельно по полям // order2_1 = oparams_local2; // ошибка компиляции 'operator=' - illegal operation use Structures.mq5 30 13 // поэтому копируем по полям order2_1.cmd = oparams_local2.cmd; order2_1.magic = oparams_local2.magic; order2_1.priceReal = oparams_local2.priceReal; order2_1.priceSend = oparams_local2.priceSend; // и так далее

    2018-01-14   23:25
    Лучший ответ #6
    Накопленные выплаты 98862 RUB

    Курс будет рассчитан на людей, знакомых с программирование на MQL4/5, но не владеющих ООП. То есть я не буду объяснять, что такое циклы, функции и т.д. Смело задавайте вопросы в рамках темы, обязательно всем отвечу. Огромная просьба не скатываться во флейм и не устраивать священные войны а-ля "ООП vs процедурное программирование", именно из-за флейма я ушел с форума разработчиков Metatrader и пришел сюда. Надеюсь, тут народ подисциплинированнее, а модераторы построже В первых постах возможны ошибки с кодами оформления, т.к. нет особого опыта на этом движке, прошу указывать и поправлять. ------ Поехали! ------- Начну с того, что, вопреки ошибочному мнению, языки MQL4 и MQL5 практически одинаковы, поэтому все, что касается ООП, будет работать и там и там. Отличия касаются только API (application program interface - программный интерфейс приложений), это торговые функции, работа с таймсериями, индикаторами и т.д. Но сами языки идентичны. Основная цель структуры - упаковать набор разнородных данных в единый контейнер. Например, имеем набор переменных int ticket, cmd, slippage, magic; double volumeSend, volumeReal, priceSend, priceReal, stoploss, takeprofit; Как вы поняли, в них будут хранится параметры открытого ордера (код для MQL4), для MQL5 параметры будут немного другие. Поэтому я постараюсь писать кросс-платформенный код, как давно делаю в своих роботах. В дальнейшем мы будем разрабатывать класс по управлению сеткой виртуальных ордеров и надо будет как-то хранить параметры сетки и параметры уже открытых ордеров. Для этого будем использовать структуру. Продолжение через 30 минут. !!!!!!!!!!!!!!! почему MQL код не оформился? Подскажите плз, как правильно сделать

  2. Линк#1
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Всем привет!

    Открываю тему по изучению объектно-ориентированного программирования с нуля. Будем использовать языки MQL4, MQL5, возможно, С++ в составе DLL. Будет желание, зацепим и C# с Matlab'ом
    Кратенько о себе. Программист с более чем 25-летним стажем, работал в крупных отечественных и зарубежных компаниях по разработке ПО и различной электроники. В мае 2010 г. понял, что наемная работа мешает мне развиваться в программировании на форексе, с тех пор работаю дома и вполне доволен. Активно использую в работе MQL4, MQL5, VS 2017 C++, C#, Matlab. Ну и всякое разное по мелочи.

    Краткий план курса
    1. Структуры
    2. От структур к классам
    3. Абстрактные классы, виртуальные функции
    4. Интерфейсы
    5. Что дальше?

    И вопрос к модераторам. Хотелось бы сделать меню, чтобы участники могли ориентироваться в разделах темы. Если я сделаю меню в начальных постах, как долго у меня будет доступ на редактирование поста с меню? Надо ли мне будет раз в несколько дней делать там изменения, чтобы пост не "заморозился"? Сможете ли вы в крайнем случае (например, я отсутствовал больше разрешенного срока) разморозить пост с меню? Или лучше продублировать меню на независимом ресурсе, например FB?
    Жду вашего ответа и начинаю сегодня.

    Последний раз редактировалось Gold; 17.01.2018 в 11:23. Причина: Добавил ссылки для п.1 и п.2

  3. Линк#65
    Кандидат форумных наук
    Все пучком
     
    Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Аватар для Viktor1987
    Регистрация:
    12.10.2013
    Пол:
    Мужчина
    Сообщений:
    1,897
    Деньги за посты (Подробнее):
    29274 RUB
    Поставил лайков:
    755
    Получено лайков:  651
    в 459 сообщениях
    34%
    Цитата Сообщение от VDev Посмотреть сообщение
    Всех россиян запоздало поздравляю с Днем защитника отечества!
    Попытался внедрить Dictionary.mqh в свою сову и столкнулся с ошибкой компиляции!
    Цитата Сообщение от metaeditor
    'm_array' - structures containing objects are not allowed Dictionary.mqh 307 25
    в функции:
    Код:
    //+------------------------------------------------------------------+
    //| Переразмечает контейнер хранения данных.                         |
    //+------------------------------------------------------------------+
    void CDictionary::Resize(void)
      {
       int level=FindNextLevel();
       int n=level;
       CList *temp_array[];
       ArrayCopy(temp_array,m_array);
       ArrayFree(m_array);
       m_array_size=ArrayResize(m_array,n);
       int total=ArraySize(temp_array);
       KeyValuePair *kv=NULL;
       for(int i=0; i
    
    не пойму как исправить!?


  4. post_thanks Получено лайков: 2

    Незарегистрированный (2 пользователя)

  5. Линк#66
    Кандидат форумных наук
    Все пучком
     
    Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Аватар для Viktor1987
    Регистрация:
    12.10.2013
    Пол:
    Мужчина
    Сообщений:
    1,897
    Деньги за посты (Подробнее):
    29274 RUB
    Поставил лайков:
    755
    Получено лайков:  651
    в 459 сообщениях
    34%
    Цитата Сообщение от VDev Посмотреть сообщение
    Всем привет!
    Переписал функцию копирования массивов под конкретную задачу, но пока не уверен что она корректная!
    PHP код:
    //+------------------------------------------------------------------+
    //| Копирование массива списков |
    //+------------------------------------------------------------------+
    int CopyArray(CList* &dst_array[], CList* &src_array[], int dst_start=0, int src_start=0, int count=WHOLE_ARRAY)
    {
    ArrayResize(dst_array, ArrayRange(src_array, 0));
    int result = 0, total = ArrayRange(src_array, 0);
    //---
    if (count == WHOLE_ARRAY){
    count = total;}
    for (;
    dst_start < total && src_start < total && result < count; dst_start++, src_start++){
    dst_array[dst_start] = src_array[src_start];
    result++;}
    //---
    return result;
    }

    Последний раз редактировалось Viktor1987; 15.03.2018 в 05:44.

  6. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  7. Линк#67
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,545
    Деньги за посты (Подробнее):
    50889 RUB
    Поставил лайков:
    270
    Получено лайков:  582
    в 527 сообщениях
    38%
    Цитата Сообщение от Viktor1987 Посмотреть сообщение

    А как мультиплатформенный, мешает тебе связать эти ордера в логическую(ие) цепочку(и)?
    Или ты решил, что это, кто то за тебя сделает? А ты поюзешь и оценишь. Напрягись, не стесняйся.


  8. post_thanks Получено лайков: 3

    Незарегистрированный (3 пользователя)

  9. Линк#68
    Кандидат форумных наук
    HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация Аватар для HorseStep
    Регистрация:
    31.07.2015
    Пол:
    Мужчина
    Сообщений:
    1,876
    Деньги за посты (Подробнее):
    10991 RUB
    Поставил лайков:
    24
    Получено лайков:  415
    в 355 сообщениях
    22%
    Цитата Сообщение от VDev Посмотреть сообщение
    От вас тестирование, возможно, ценные идеи, с меня кодирование. Это так, ориентировочно, если кто захочет принять участие в разработке, скооперируемся. Может, какие-то вебинары проведем по скальпингу (я люблю именно скальпинг).

    О, Алексей, вебинар по скальпингу - это было бы интересно. Есть большое участие поучаствовать.

    Более 300 систем в советнике "Лига Торговых Систем" (графики результатов на последних страницах)
    Помоги оптимизировать одну из ТС советника (есть иллюстрированная инструкция) - и пользуйся лучшей из уже оптимизированных !

  10. post_thanks Получено лайков: 3

    Незарегистрированный (3 пользователя)

  11. Линк#69
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от Viktor1987 Посмотреть сообщение

    Это один из способов инициализации переменных класса при вызове конструктора, называется списки членов. Это есть в С++, вот тут ясно написано. Вообще MQL4/5 имеют много общего с С++, так сказать подчасть С++, но более безопасная из-за отсутствия прямого доступа к памяти. И убрана вся муть, которая используется дай бог в 0.1% случаев. Дедушка Бьерн еще в первом релизе такого навставлял в язык, что справочником человека убить можно, у меня дома лежит ))

    Конечно можно, дельная мысль.

    m_openprice вынесен в protected, а не в стабильные )) Не рекомендуется делать переменные public - это потенциально небезопасно. Лучше функцией менять.

    Давно не писал, немного разгребу свои завалы и продолжим после праздников.


  12. post_thanks Получено лайков: 2

    Viktor1987 (01.05.2018), Незарегистрированный (1 пользователь)

  13. Линк#70
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от HorseStep Посмотреть сообщение
    О, Алексей, вебинар по скальпингу - это было бы интересно. Есть большое участие поучаствовать.
    Сейчас дописываю скальпер, как допишу, проведем, чтобы воду на словах не лить ))


  14. post_thanks Получено лайков: 2

    Gold (01.05.2018), Viktor1987 (01.05.2018)

  15. Линк#71
    Кандидат форумных наук
    HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация Аватар для HorseStep
    Регистрация:
    31.07.2015
    Пол:
    Мужчина
    Сообщений:
    1,876
    Деньги за посты (Подробнее):
    10991 RUB
    Поставил лайков:
    24
    Получено лайков:  415
    в 355 сообщениях
    22%
    Цитата Сообщение от VDev Посмотреть сообщение
    Сейчас дописываю скальпер, как допишу, проведем, чтобы воду на словах не лить ))
    Давай-давай, дружище, посмотрим-посмотрим....

    Более 300 систем в советнике "Лига Торговых Систем" (графики результатов на последних страницах)
    Помоги оптимизировать одну из ТС советника (есть иллюстрированная инструкция) - и пользуйся лучшей из уже оптимизированных !

  16. Линк#72
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    А как мультиплатформенный, мешает тебе связать эти ордера в логическую(ие) цепочку(и)?
    Или ты решил, что это, кто то за тебя сделает? А ты поюзешь и оценишь. Напрягись, не стесняйся.
    Ну, я так понял, он просто хочет ввести флаг этого факта, чтобы цены не сравнивать. Или я мелко мыслю?


  17. post_thanks Получено лайков: 2

    Viktor1987 (01.05.2018), Незарегистрированный (1 пользователь)

  18. Линк#73
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от HorseStep Посмотреть сообщение
    Давай-давай, дружище, посмотрим-посмотрим....
    Скальпер рабочий, сам им торгую, но не на полном автомате, стыдно показывать недоделку.


  19. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  20. Линк#74
    Кандидат форумных наук
    HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация Аватар для HorseStep
    Регистрация:
    31.07.2015
    Пол:
    Мужчина
    Сообщений:
    1,876
    Деньги за посты (Подробнее):
    10991 RUB
    Поставил лайков:
    24
    Получено лайков:  415
    в 355 сообщениях
    22%
    Цитата Сообщение от VDev Посмотреть сообщение
    Скальпер рабочий, сам им торгую, но не на полном автомате, стыдно показывать недоделку.
    Да просто у меня - ни одного скальпера вобще никогда не выходило, даже в тестере (про реал уж не говорю).

    Лига ТС - в большинстве случаев все стратегии работают на Н1. А скальперы - этого я уразуметь ну никак не могу... Ну вот, послушаю...

    Более 300 систем в советнике "Лига Торговых Систем" (графики результатов на последних страницах)
    Помоги оптимизировать одну из ТС советника (есть иллюстрированная инструкция) - и пользуйся лучшей из уже оптимизированных !

  21. Линк#75
    Кандидат форумных наук
    Все пучком
     
    Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Viktor1987 хорошая репутация Аватар для Viktor1987
    Регистрация:
    12.10.2013
    Пол:
    Мужчина
    Сообщений:
    1,897
    Деньги за посты (Подробнее):
    29274 RUB
    Поставил лайков:
    755
    Получено лайков:  651
    в 459 сообщениях
    34%
    Цитата Сообщение от VDev Посмотреть сообщение
    Ну, я так понял, он просто хочет ввести флаг этого факта, чтобы цены не сравнивать. Или я мелко мыслю?
    Всё верно, но Вас так долго не было что я уже отказался от идеи, слишком сложно для меня (столкнулся с проблемой и не смог отладить), я упростил и сделал для себя класс от CList, убрав всё ненужное и добавив всё нужное, получилось что-то вроде терминала внутри советника, пишет в файл тикеты и даже при выключении терминала потом работает корректно и подхватывает нужные ордера! Но будет интересно понаблюдать за развитием темы!


  22. Линк#76
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от HorseStep Посмотреть сообщение
    Да просто у меня - ни одного скальпера вобще никогда не выходило, даже в тестере (про реал уж не говорю).

    Лига ТС - в большинстве случаев все стратегии работают на Н1. А скальперы - этого я уразуметь ну никак не могу... Ну вот, послушаю...
    Я раньше по работе занимался цифровой обработкой сигналов для всякой электроники, использую эти методы и в скальпере. Ему ТФ без разницы.

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

    Кстати, скоро выйдет моя статья на mql5.com по цифровым фильтрам, кину сылку.


  23. post_thanks Получено лайков: 1

    Viktor1987 (01.05.2018)

  24. Линк#77
    Кандидат форумных наук
    HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация Аватар для HorseStep
    Регистрация:
    31.07.2015
    Пол:
    Мужчина
    Сообщений:
    1,876
    Деньги за посты (Подробнее):
    10991 RUB
    Поставил лайков:
    24
    Получено лайков:  415
    в 355 сообщениях
    22%
    Цитата Сообщение от VDev Посмотреть сообщение
    Я раньше по работе занимался цифровой обработкой сигналов для всякой электроники, использую эти методы и в скальпере. Ему ТФ без разницы.
    Я помню.
    Не скажу, что я крут в цифрой обработке сигналов, но и полным профаном не являюсь.
    Посмотрим. Мож, чего и полезного добавлю.

    Более 300 систем в советнике "Лига Торговых Систем" (графики результатов на последних страницах)
    Помоги оптимизировать одну из ТС советника (есть иллюстрированная инструкция) - и пользуйся лучшей из уже оптимизированных !

  25. Линк#78
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от Viktor1987 Посмотреть сообщение
    Всё верно, но Вас так долго не было что я уже отказался от идеи, слишком сложно для меня (столкнулся с проблемой и не смог отладить), я упростил и сделал для себя класс от CList, убрав всё ненужное и добавив всё нужное, получилось что-то вроде терминала внутри советника, пишет в файл тикеты и даже при выключении терминала потом работает корректно и подхватывает нужные ордера! Но будет интересно понаблюдать за развитием темы!
    CList медленный, вот отрывок поиска указателя на элемент по индексу, идет тупой перебор в цикле

    PHP код:
    //+------------------------------------------------------------------+
    //| Get a pointer to the position of element in the list |
    //+------------------------------------------------------------------+
    CObject *CList::GetNodeAtIndex(int index)
    {
    //************* всякое разное

    //---
    if(revers)
    {
    //--- search from right to left
    for(;i>index;i--)
    {
    result=result.Prev();
    if(
    result==NULL)
    return(
    NULL);
    }
    }
    else
    {
    //--- search from left to right
    for(;i<index;i++)
    {
    result=result.Next();
    if(
    result==NULL)
    return(
    NULL);
    }
    }
    m_curr_idx=index;
    //--- result
    return(m_curr_node=result);
    }

    }


  26. post_thanks Получено лайков: 2

    LSA (01.05.2018), Незарегистрированный (1 пользователь)

  27. Линк#79
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,545
    Деньги за посты (Подробнее):
    50889 RUB
    Поставил лайков:
    270
    Получено лайков:  582
    в 527 сообщениях
    38%
    Цитата Сообщение от VDev Посмотреть сообщение
    Ну, я так понял, он просто хочет ввести флаг этого факта, чтобы цены не сравнивать. Или я мелко мыслю?
    Мультиплатформенность, понятное дело, тут не причём.
    Если код торгует, то что мешает сразу фиксировать выполненные кодом действия, в подготовленных структурах данных, на необходимое время, чем каждый тик потрошить историю, и петлять в поисках логически связанных ордеров?
    В данном контексте, частично закрытых.
    Но это на любителя.
    Естественно при таком подходе необходимы "пре" и "пост" процедуры, а также процедуры управления самими данными.
    И опять, это отдельная история.

    А с глубиной, это сугубо индивидуально.


  28. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  29. Линк#80
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Мультиплатформенность, понятное дело, тут не причём.
    Если код торгует, то что мешает сразу фиксировать выполненные кодом действия, в подготовленных структурах данных, на необходимое время, чем каждый тик потрошить историю, и петлять в поисках логически связанных ордеров?
    В данном контексте, частично закрытых.
    Но это на любителя.
    Естественно при таком подходе необходимы "пре" и "пост" процедуры, а также процедуры управления самими данными.
    И опять, это отдельная история.

    А с глубиной, это сугубо индивидуально.
    Тут все зависит от алгоритма стратегии, верно? Например, если ордера жестко закрываются по СЛ и ТП, их вообще не надо контролировать. Если стратегия умеет закрывать их частично, то самое простое использовать:
    PHP код:
    // Для МТ4 через OrderClose(...)

    // Для МТ5 лично я использую Стандартную библиотеку, см. \MQL5\Include\Trade\Trade.mqh, класс CTrade
    //+------------------------------------------------------------------+
    //| Partial close specified opened position (for hedging mode only) |
    //+------------------------------------------------------------------+
    bool CTrade::PositionClosePartial(const ulong ticket,const double volume,const ulong deviation)
    А ведь можно еще закрываться встречными, экономя на спреде
    Но тогда придется вести учет


  30. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  31. Линк#81
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,545
    Деньги за посты (Подробнее):
    50889 RUB
    Поставил лайков:
    270
    Получено лайков:  582
    в 527 сообщениях
    38%
    Цитата Сообщение от VDev Посмотреть сообщение

    ... если ордера жестко закрываются по СЛ и ТП, их вообще не надо контролировать.
    ИХМО: Пока ордер в рынке, его надо контролировать, как бы он не закрывался.

    Если стратегия умеет закрывать их частично
    Многие хотят, чтобы так было, но кодят такую стратегию единицы.
    Опять же, критерии использования этого механизма должны быть обоснованы, как и закрытие встречными.
    Они как минимум должны быть, и быть прибыльными.
    Закрыть часть позиции не проблема, обыграть комбинацию в коде стратегии сложнее, потому что всё надо делать самому.
    Наёмному кодеру, это долго объяснять.


  32. post_thanks Получено лайков: 2

    VDev (01.05.2018), Незарегистрированный (1 пользователь)

  33. Линк#82
    Знающий
    Очень рад
     
    VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь VDev авторитетный пользователь Аватар для VDev
    Регистрация:
    14.07.2010
    Пол:
    Мужчина
    Сообщений:
    3,253
    Деньги за посты (Подробнее):
    98862 RUB
    Поставил лайков:
    714
    Получено лайков:  2,661
    в 1,551 сообщениях
    82%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    ИХМО: Пока ордер в рынке, его надо контролировать, как бы он не закрывался.


    Многие хотят, чтобы так было, но кодят такую стратегию единицы.
    Опять же, критерии использования этого механизма должны быть обоснованы, как и закрытие встречными.
    Они как минимум должны быть, и быть прибыльными.
    Закрыть часть позиции не проблема, обыграть комбинацию в коде стратегии сложнее, потому что всё надо делать самому.
    Наёмному кодеру, это долго объяснять.
    Согласен полностью, но изначально был вопрос именно про технику.


  34. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  35. Линк#83
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,545
    Деньги за посты (Подробнее):
    50889 RUB
    Поставил лайков:
    270
    Получено лайков:  582
    в 527 сообщениях
    38%
    Цитата Сообщение от VDev Посмотреть сообщение
    Согласен полностью, но изначально был вопрос именно про технику.
    Ответ на этот вопрос, очевиден, но качество его решения, разное.


  36. <a href="https://www.instaforex.com/ru/forexcopy_system">Форекс портал</a>
  37. Линк#84
    Кандидат форумных наук
    HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация HorseStep хорошая репутация Аватар для HorseStep
    Регистрация:
    31.07.2015
    Пол:
    Мужчина
    Сообщений:
    1,876
    Деньги за посты (Подробнее):
    10991 RUB
    Поставил лайков:
    24
    Получено лайков:  415
    в 355 сообщениях
    22%
    Цитата Сообщение от VDev Посмотреть сообщение
    CList медленный, вот отрывок поиска указателя на элемент по индексу, идет тупой перебор в цикле
    Дык это же список !
    Иначе и быть не может.

    Для ускорения - нужен не список, а массив, возможно даже индексированный...

    Зачем же применять список там, где он нецелесообразен ?
    Список хорош для, скажем, организации очереди, когда тебе искать не надо, а нужно организовать буффер - добавляем элементы в хвост, берем с головы....

    Более 300 систем в советнике "Лига Торговых Систем" (графики результатов на последних страницах)
    Помоги оптимизировать одну из ТС советника (есть иллюстрированная инструкция) - и пользуйся лучшей из уже оптимизированных !

  38. post_thanks Получено лайков: 3

    MonyaMaker (02.05.2018), Незарегистрированный (2 пользователя)


Страница 4 из 13
Первая ... 3 4 5 ... Последняя ◄╝

Похожие темы

  1. MQL4 для начинающих
    от Nick'Otin в разделе MQL-программирование, АТС
    Replies: 2400
    Последнее сообщение: 18.12.2019, 21:16
  2. Программирование MQL4/MQL5, для начинающих, в вопросах и ответах.
    от Aleksandr Bereznyak в разделе MQL-программирование, АТС
    Replies: 55
    Последнее сообщение: 01.05.2019, 10:13
  3. Баги и ошибки в MQL4 и MQL5
    от Mihey85 в разделе MQL-программирование, АТС
    Replies: 2
    Последнее сообщение: 06.03.2016, 18:25
  4. Бесплатный курс для начинающих трейдеров
    от bogo в разделе Доска объявлений
    Replies: 31
    Последнее сообщение: 09.08.2013, 16:01
  5. mql4->mql5. ищу программиста
    от artemserebryakov в разделе Доска объявлений
    Replies: 0
    Последнее сообщение: 28.07.2011, 22:24