Сервис GitHub теперь поддерживает языки MQL5 и MQL4 - страница 3

 
Alexey Volchanskiy:

Сознайтесь, что проблема вовсе не в этом. Проблема в том, что вы боитесь, что коварные метаквоты спецом заманивают всех в бесплатное хранилище, чтобы потырить наши суперприбыльные советники :)))

Сознаюсь.)) Только у меня нет на МТ не то что суперприбыльных, а вообще никаких.)

Пытался опубликовать бесплатный в Маркете, так и тот не взяли, потому, что там были ограничения на работу со счетами. Сказали: не по правилам - неззя ограничения. А забесплатно без ограничений не отдам. 

 
Yuriy Asaulenko:

Сознаюсь.)) Только у меня нет на МТ не то что суперприбыльных, а вообще никаких.)

Пытался опубликовать бесплатный в Маркете, так и тот не взяли, потому, что там были ограничения на работу со счетами. Сказали: не по правилам - неззя ограничения. А забесплатно без ограничений не отдам. 

Вообще в SVN (хранилище на нем сделано) база шифруется, так что метаквотам придется попыхтеть, чтобы добраться до наших секретов )) А если в GitHub закинуть, тогда ваще мертвое дело )

С ограничениями в Маркет вообще-то можно, вот тут известный автор кладет в маркет демо-версии с ограничением по работе только на одном инструменте. И ничего, берут. Просто эти ограничения, как всегда на этой площадке, нигде не прописаны явно. Я пока знаю точно, есть запрет на dll и ограничения на работу по времени.

 
Alexey Volchanskiy:

С ограничениями в Маркет вообще-то можно, вот тут известный автор кладет в маркет демо-версии с ограничением по работе только на одном инструменте. И ничего, берут. Просто эти ограничения, как всегда на этой площадке, нигде не прописаны явно. Я пока знаю точно, есть запрет на dll и ограничения на работу по времени.

У меня ограничения были - не более 0.01 лота. Одинаковые на демо и реале, т.к в правилах явно записано, что нельзя ограничения на разные типы счетов. Однако в правилах по ограничениям есть волшебные слова -неззя то-то, се-то... и т.д. )) Трактуй как хошь.))
 
Alexey Volchanskiy:

Сознайтесь, что проблема вовсе не в этом. Проблема в том, что вы боитесь, что коварные метаквоты спецом заманивают всех в бесплатное хранилище, чтобы потырить наши суперприбыльные советники :)))

На самом деле есть и другая причина опасений - это надёжность предлагаемого софта.  Как мы все знаем, порой выпускаются сырые билды, которые запросто могут учудить что-нибудь неприятное.  Вон буквально недавно были какие-то баги с хранилищем, судя по сообщениям на форуме.  Так что резервные копии всё-равно делать придётся.

Ну и по поводу проектов. Если я правильно понял, используемые проектом файлы должны фактически находиться в папке проекта, т.е. мы не можем просто присоединить файл к проекту.  Значит невозможно использовать один и тот же код в разных проектах, придётся создавать копии файлов и потом дублировать все изменения в них. Это лишает гибкости.  А для одиночной работы становится вообще бессмысленным.

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

 
Alexey Navoykov:

На самом деле есть и другая причина опасений - это надёжность предлагаемого софта.  Как мы все знаем, порой выпускаются сырые билды, которые запросто могут учудить что-нибудь неприятное.  Вон буквально недавно были какие-то баги с хранилищем, судя по сообщениям на форуме.  Так что резервные копии всё-равно делать придётся.

Ну и по поводу проектов. Если я правильно понял, используемые проектом файлы должны фактически находиться в папке проекта, т.е. мы не можем просто присоединить файл к проекту.  Значит невозможно использовать один и тот же код в разных проектах, придётся создавать копии файлов и потом дублировать все изменения в них. Это лишает гибкости.  А для одиночной работы становится вообще бессмысленным.

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

Тут вы  не правы, наверное, не часто работаете с проектами MQL. Расскажу, как я организую свой типичный проект. 

  1. Создаю папку проекта в \MQL*\Projects, добавляю ее в хранилище
  2. В папке проекта, как правило, находится единственный файл .mq*, это основной код советника/индикатора/скрипта, где расположены функции OnTick и подобные.
  3. Есть папка \MQL*\Include\AvLib, где я храню свой набор классов и функций в файлах .mqh
  4. Так как я все делаю на ООП, основная разработка ведется на уровне классов в папке AvLib. Класс робота создается обычно статически в основном файле советника, а сам этот файл почти не меняется от проекта к проекту.
  5. При компиляции получаю выходной файл по пути типа \MQL5\Experts\Projects\ScalpHunter\ScalpHunter.ex5
То есть я вполне мог бы обойтись и без проектов, но мне так удобнее, т.к. в папке \MQL5\Experts туева хуча всякого разного, надо еще найти нужное. А в папке проекта я заодно храню ТЗ, свои пометки и все, что относится к проекту, например, рисунки .png.

Для всяких тестов, пробных вариантов использую подпапки \MQL5\Experts\Tests, чтобы не захламлять папку экспертов. 

Насчет нормальной организации проектов, как в VS - надеюсь, я при своей жизни все же успею это увидеть )) Лет 30 я всяко протяну, так что небольшие шансы есть )) 

 
Alexey Volchanskiy:

Тут вы  не правы, наверное, не часто работаете с проектами MQL. Расскажу, как я организую свой типичный проект. 

  1. Создаю папку проекта в \MQL*\Projects, добавляю ее в хранилище
  2. В папке проекта, как правило, находится единственный файл .mq*, это основной код советника/индикатора/скрипта, где расположены функции OnTick и подобные.
  3. Есть папка \MQL*\Include\AvLib, где я храню свой набор классов и функций в файлах .mqh
  4. Так как я все делаю на ООП, основная разработка ведется на уровне классов в папке AvLib. Класс робота создается обычно статически в основном файле советника, а сам этот файл почти не меняется от проекта к проекту.
  5. При компиляции получаю выходной файл по пути типа \MQL5\Experts\Projects\ScalpHunter\ScalpHunter.ex5
То есть я вполне мог бы обойтись и без проектов, но мне так удобнее, т.к. в папке \MQL5\Experts туева хуча всякого разного, надо еще найти нужное. А в папке проекта я заодно храню ТЗ, свои пометки и все, что относится к проекту, например, рисунки .png.

Для всяких тестов, пробных вариантов использую подпапки \MQL5\Experts\Tests, чтобы не захламлять папку экспертов. 

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

И тем более если работа многопользовательская, то все ваши исходники должны лежать в папке каждого проекта.  Вот это я и имел ввиду, говоря о потере гибкости.

 
Alexey Volchanskiy:

То есть я вполне мог бы обойтись и без проектов, но мне так удобнее, т.к. в папке \MQL5\Experts туева хуча всякого разного, надо еще найти нужное. А в папке проекта я заодно храню ТЗ, свои пометки и все, что относится к проекту, например, рисунки .png.

Забыл сказать, с использованием вышеописанного подхода становиться очень удобно работать с Хранилищем, достаточно синхронизировать всего две папки - Projects и Include\AvLib, редактор сам определит измененные файлы и запишет их в Хранилище. А в противном случае пришлось бы искать нужные файлы в Experts и т.д.

 
Alexey Volchanskiy:
Насчет нормальной организации проектов, как в VS - надеюсь, я при своей жизни все же успею это увидеть )) Лет 30 я всяко протяну, так что небольшие шансы есть )) 
Главное почаще дёргать разработчиков, а то сами они вряд ли когда догадаются.  Равно как и про доработку редактора (нормальная подсветка синтаксиса и т.д.).  Почему-то они всё это считают не приоритетным.  Хотя как по мне так наоборот - это важнейшее.  А вот всякие там мифические улучшения скорости работы (на которые они потратили прошлый год) не играют особой роли, если быстродействие и так уже приличное.
 

Поиском на гитхабе можно найти ну очень интересные решения.

https://github.com/femtotrader/rabbit4mt4

https://github.com/OpenTrading

 

 

 

MQL4/5 код, что увидел на гитхабе, значительно более качественный (видимо, пишут проф. программисты), чем в кодобазе. Рекомендую к ознакомлению.

Как пример