Как Вы учили язык MQL4/5? - страница 13

 
Maxim Dmitrievsky #:
И посмотрим у кого там что головного мозга.

Ой, не говорите, что вы обиделись. В той фразе нет ничего обидного/оскорбительного, она немного шуточная, не более того.

Maxim Dmitrievsky #:
Раз уж речь зашла о питоне, давайте я напишу сложный алгоритм в 500 строк, а вы напишете его в 20000 строк. Просто для того, чтобы проверить идею :)

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

В принципе, главное - не вдаваться в крайности. Высокоуровневый фетиш - плохо, велосипеды в неуместных местах - тоже плохо. Правда где-то посредине.

[Удален]  
Vladislav Boyko #:

Ой, не говорите, что вы обиделись. В той фразе нет ничего обидного/оскорбительного, она немного шуточная, не более того.

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

В принципе, главное - не вдаваться в крайности. Высокоуровневый фетиш - плохо, велосипеды в неуместных местах - тоже плохо. Правда где-то посредине.

Ну так я и говорю, что было бы неплохо упростить там, где напрашивается. На питоне пишу только из-за того, что до старости бы писал это на mql. Чисто практический смысл. 
 
fxsaber #:

Сомневаюсь, что в этом причина. Т.к. любой из трех вариантов ниже рабочий.

Да, вы наверное правы. Я один раз заглянул в библиотеку, увидел там  OP_BUY и OP_SELL и дальше смотреть не стал :)

 
Vitaly Murlenko #:

Интересная у вас тут беседа получилась. Прям в тему моих вопросов про классы. Странно, что не подняли вопросы про то, как при использовании вот этой инструкции

указать МагикНумбер при открытии позиции?

Немного ранее писали, в классе есть сеттер   mTrade.SetExpertMagicNumber(128);  , можете магик менять для каждой позиции. Даже не позиции, а для каждой сделки ставить свой магик.

Входить с одним магиком, выходить с другим)))

 
Эх флудеры :) Ну хоть бы написали по теме и дальше флудили...
 
Aleksey Vyazmikin #:
Эх флудеры :) Ну хоть бы написали по теме и дальше флудили...

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

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

Постоянный рефакторинг. Рефакторинг - мое второе имя. Неприличное количество времени на переписывание работающего кода просто потому, что вижу, что сам код можно сделать лучше. В рантайме после такого рефакторинга зачастую никакой разници не наблюдалось, просто код становился более правильным с моей точки зрения. Собственный код двухмесячной давности - дикое легаси (годами), так как каждые пару месяцев мой код сильно эволюционировал.

Для изучения ООП хватило чтения здешней документации. Мне не нужно было объяснять, для чего нужна та или иная ооп-шная возможность потому, что я слишком долго крутил-вертел и выворачивал наизнанку свой процедурный код, пытаясь его улучшить.

Трейдинг я давно бросил, программирование оставил.

 
Vladislav Boyko #:
Для изучения ООП хватило чтения здешней документации. Мне не нужно было объяснять, для чего нужна та или иная ооп-шная возможность потому, что я слишком долго крутил-вертел и выворачивал наизнанку свой процедурный код, пытаясь его улучшить.

Но я не пытался сожрать все ООП за один раз. Я брал немного и шел улучшать (переписывать) код. Через время возвращался в документацию за очередной небольшой оопшной возможностью.


Однажды я случайно посмотрел 15минутное видео по макросам в C++. Просто от нечего делать. Ну и срань же - подумал и забыл об этом.

Через пару недель мне приснились макросы. Проснувшись, я пошел и намазал код текущего на тот момент проекта параметрическими макросами и с того момента не могу перестать их использовать. Сильно расстроился, когда узнал, что в C# нет нормальных макросов.

 
fxsaber #:

Сомневаюсь, что в этом причина. Т.к. любой из трех вариантов ниже рабочий.

Это потому, что все эти перечисления имеют целочисленное значение 0.

Я однажды спросил нормально ли сделать вот так

// отправим все позиции по типу на модификацию
            posModify((ENUM_POSITION_TYPE)trans.deal_type);

Мне сказали, что это грязный хак и если MQ чего-то поменяют, будет катастрофа… Но не сказали на сколько вероятно какое-то изменение в этом случае…

 
Vitaly Murlenko #:

Интересная у вас тут беседа получилась. Прям в тему моих вопросов про классы. Странно, что не подняли вопросы про то, как при использовании вот этой инструкции

указать МагикНумбер при открытии позиции?

Вы просто невнимательны

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как Вы учили язык MQL4/5?

Alexey Viktorov, 2024.12.03 13:02

Вариантов установить несколько магиков много. Самый простой вписывать нужный магик в нужный момент. Если пользуетесь СБ и классом CTrade то перед каждым открытием позиции, открытием ордера, перед закрытием позиции или удаления ордера… Так же перед изменением позиции или ордера поставьте SetExpertMagicNumber(magic). И достаточно сложный для слабо понимающих ООП вариант, это несколько объектов и в каждом из них свой магик. Этот вариант не только для использования CTrade но и для своих библиотек.


НО!!! Если магик один на все позиции советника, то достаточно «загнать» туда магик только один раз в OnInit()

trade.SetExpertMagicNumber(magic);
[Удален]  
Alexey Viktorov #:

Вы просто невнимательны


НО!!! Если магик один на все позиции советника, то достаточно «загнать» туда магик только один раз в OnInit()

Новичок бы никогда не догадался 
Кого там сет, что на что влияет на каком уровне..