Выбрать символ в настройках - страница 4

 
Alexey Viktorov:

... "А кому оно надо???"

...Тут достаточно людей которые могут и мультики рисовать на графике терминала.

Точно!  Есть очевидные торговые вещи, а есть излишества.

Тут люди жалуются, что терминал не знает ошибок возвращаемых Московской биржей! (и много лет жалуются...)

Также есть явная торговая необходимость иметь перечень активных пар (хотя бы из окна обзора рынка) но этого нет.

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

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

Это вообще как!?

Зачем мне мультики в терминале... (или хоть потенциальная возможностьмультиков) когда нет очевидных торговых вещей!

Метаквоты не обижайтесь, но с расстановкой акцентов что-то не то... это факт такой.. Это я пишу, по опыту применения mql5. Если от mql4 было ощущение, что к си образному языку прикрутили торговые функции, то в mql 5 и язык и торговые функции утонули в дебрях внутритерминальной логики. Скоро будет как программерство с помощью api на windows...

А надо, имхо, быть ближе к жизни. А жизнь, это потребности трейдерства. Это например отличная возможность в один клик открыть сделку в терминале! Это здорово. 

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

Зачем мне знать, как там ордер превращается постепенно в позицию. Это не трейдерский вопрос, это внутритерминальный вопрос! Вы ведь не даёте команду сосудам на микросжатия после каждого удара сердца. И не даёте команду кишечнику как ему работать. В mql все подобные внутритерминальные вопросы вывалены на програмеров. И на это потрачено много усилий. А очевидных вещей нет.

А хотите ещё забавный факт? Если сделать правильно все обработки, часть из которых уже описана в статьях, то в таком торговом роботе, вы попросту не найдёте сам торговый алгоритм... Это ведь серьёзно! Это диспропорция какая-то. То есть пока, mql5 это игрушка созднанная програмерами для програмеров... С впечатляющими возможностями программирования ради программирования.

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

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

Ладно, эта тема была какая то не завершенная.

Итак, мне нужно было сделать, чтобы в тестере подбиралась ещё и пара, помимо прочих значений.

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

И вот итоговый вариант - может кому-то пригодится... Который я написал и он работает.

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

2- Пары из файла, вставляем в enum. В объявлении переменных эксперта пишем:

enum Enum_Symbol {AUDJPY,AUDUSD,CHFJPY,EURAUD,EURCAD,EURCHF,EURGBP,EURJPY,EURRUR,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPUSD,USDCAD,USDCHF,USDJPY,USDRUR};
input Enum_Symbol       SIMBOL_1          = AUDUSD;   // Выбор пары для ...
input Enum_Symbol       SIMBOL_2          = AUDJPY;   // Выбор пары для ...

...

Всё, тестер сможет перебирать символы из списка.

Также удобно выбирать пару из выпадающего списка в настройках. Стоит учесть, что для оптимизации, нужно установить весь список сразу в программу до первой компиляции. т.к. потом,  добавленные позже символы можно и не увидеть в конечных настройках оптимизации... Это такой "нюанс". Если кто из метаквот прочтёт это - можете поправить эту ошибку... бдительные модераторы точно прочтут...

Ещё надо добавить кое что в ОнИнит:

int OnInit()
{
...
//--- подключаем символы для тестера 
for(int i=0;i<SymbolsTotal(false);i++)
   {
   string name = SymbolName(i,false);
   SymbolSelect(name,false);
   Print (" i = ", i,"     name = ", name);   
   }
...
}

В самой программе, получение выбранного символа в стринг переменную выглядит так:

string SymbolCur = SymbolName(DoubleToString(SIMBOL_1,0),false);


Естественно, есть нюансы, я привожу реализацию под свои цели...

Из ручных операций, только однократное (для каждого брокера) сохранение текстового файла и расстановка запятушек в нём, перед копированием в енум.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов...
 
Зачем мне знать, как там ордер превращается постепенно в позицию. Это не трейдерский вопрос, это внутритерминальный вопрос!
Это не трейдерский вопрос, а программный. Хотите быть чисто трейдером, не лезьте в программирование а пишите ТЗ для профессионалов. Большинство проблем на которые вы жаловались в постах выше - имеют простое решение.
 
Aleksey Mavrin:

Вот нескажите!

Если вы программер и пришли сюда подзаработать программерством - то бесспорно!

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

Я вот и заявку выложил во фриланс и сам пишу... Одно другому не мешает!

Ой)) А что тут будет, если я озвучу результаты фриланса)))) Но Тссс Такие вещи нельзя вслух говорить))

А метаквоты - в целом молодцы конечно. Хочешь сам пиши. Хочешь - закажи! Все довольны и программеры и трейдеры)) Так и надо, они своей деятельностью дают возможности всем...

За путёвую историю им ОГРОМНОЕ спасибо! Это с лихвой, перекрывает все остальные косяки. Но и их неплохо-бы допилить.

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

Но им виднее))

 
Михаил:

Действительно что обсуждать если для перебора символов вы их предварительно сохраняете в файл и оттуда копируете в код перед компиляцией.

И еще на основании подобных действий говорите о "недостатках " терминала.

Ничего личного, просто вы как программист очень слабы, желаю расти и развиваться. Добра!

 
Aleksey Mavrin:

Действительно что обсуждать если для перебора символов вы их предварительно сохраняете в файл и оттуда копируете в код перед компиляцией.

И еще на основании подобных действий говорите о "недостатках " терминала.

Ничего личного, просто вы как программист очень слабы, желаю расти и развиваться. Добра!

Вы не поняли! Я не программист, ни по работе ни по образованию!

Это не мешает мне написать всё, что мне нужно под микроконтроллеры или под андроид, или на mql4 mql5. Я даже в 16 кодах и на ассемблере писал... Вы писали?)) в кодах? В настоящих, 16 ричных кодах? Это не высокоуровневый язык, там надо знать как проц устроен и работает...

Местное название листинга кодом это усмешка... 

Мне не нужны ухищрения, прямо оптимальный код. Но в моём коде логика обычно сложнее, чем в коде других и он более эффективен. Хотя, с профи программерами мне конечно не соревноваться)) Но это их хлеб, а для меня второстепенное хобби. Даже не основное... Я могу сварить сварочником тонкую железку и не прожечь, могу программу написать много на чём... несложную электронику разработать и собрать... Это всё не моя работа! )) Тоесть, мне не интересно вписываться в бессмысленные правила языка, мне результат нужен. И если к нему приходится идти петлями, то это плохо. В мкл4 было проще. И объективных  причин для усложнения я не вижу.

Что до темы этой темы) Предложите лучшее решение.

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

А также, чтобы тестер мог перебирать пары - это основное!.

Варианты спецов из кодобазы не предлагать)) Моё решение верх изящества по сравнению с решениями из кодобазы...

Критиковать просто!

Вы сказали, что моя реализация плоха! Предложите лучшую. Я вам спасибо скажу!

Поскольку когда-то всё равно вернусь к мультивалютке... возможно.

Ну или напишите: "Лучше придумать не могу - извините!"

 И да- я не беру заказы на написание программ, не объедаю программеров))
Как заказать торгового робота на MQL5 и MQL4
Как заказать торгового робота на MQL5 и MQL4
  • www.mql5.com
Главным преимуществом торговых терминалов MetaTrader является возможность создания автоматических торговых систем, способных совершать торговые операции без вмешательства трейдера, что позволяет исключить влияние психологии на результаты торговли. Для этого нужно сформулировать торговую стратегию и реализовать ее в виде программы на языке MQL...
 
Михаил:

Вы не поняли! Я не программист, ни по работе ни по образованию!

Это не мешает мне написать всё, что мне нужно под микроконтроллеры или под андроид, или на mql4 mql5. Я даже в 16 кодах и на ассемблере писал... Вы писали?)) в кодах? В настоящих, 16 ричных кодах? Это не высокоуровневый язык, там надо знать как проц устроен и работает...

Местное название листинга кодом это усмешка... 

Мне не нужны ухищрения, прямо оптимальный код. Но в моём коде логика обычно сложнее, чем в коде других и он более эффективен. Хотя, с профи программерами мне конечно не соревноваться)) Но это их хлеб, а для меня второстепенное хобби. Даже не основное... Я могу сварить сварочником тонкую железку и не прожечь, могу программу написать много на чём... несложную электронику разработать и собрать... Это всё не моя работа! )) Тоесть, мне не интересно вписываться в бессмысленные правила языка, мне результат нужен. И если к нему приходится идти петлями, то это плохо. В мкл4 было проще. И объективных  причин для усложнения я не вижу.

Что до темы этой темы) Предложите лучшее решение.

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

А также, чтобы тестер мог перебирать пары - это основное!.

Варианты спецов из кодобазы не предлагать)) Моё решение верх изящества по сравнению с решениями из кодобазы...

Критиковать просто!

Вы сказали, что моя реализация плоха! Предложите лучшую. Я вам спасибо скажу!

Поскольку когда-то всё равно вернусь к мультивалютке... возможно.

Ну или напишите: "Лучше придумать не могу - извините!"

 И да- я не беру заказы на написание программ, не объедаю программеров))

Я тоже также не программист. если интересно в студенчестве тоже баловался с ассемблером, но всерьез писал только на С,С++, с SQL на Postgre. и то это было чисто в рамках дипломки, но проект более-менее серьезный, САПР-система как никак)

Я рад что вы разносторонний человек) Знаете библы на С и других языках  гораздо сложнее запутаннее чем MQL5, он гораздо проще имхо. Про ваш уровень я высказался знаете - бегло в ваших постах упоминались вопросы, решение которых просто, но вы ругали терминал и MQL, т.е. вместо того чтобы узнать как сделать и развиваться вы ругаете труд других, пусть даже не без изьянов, но рабочий такой труд. Такой подход мне чужд и непонятен. Но возможно это было только впечатление и я ошибся.

Что касается темы - нюансы уже забыл, и лень читать и вникать. вкратце - если при оптимизации надо сделать перебор всех символов - то в OnInit по номеру, входящий параметр только номер символа, двух, трёх, сколько используется в сове.

Если руками выбрать конкретные символы для автоматизации - то ваше решение плохо, т.к. при смене брокера с другими символами нужно менять код. Проще тогда руками вбить два символа. Если лень вбивать символы - то номер их в обзоре рынка.

 
Aleksey Mavrin:

Если лень вбивать символы - то номер их в обзоре рынка.

Их нет в тестерном Обзоре рынка до их прямого запроса по имени.


Михаил:

Вы сказали, что моя реализация плоха! Предложите лучшую. Я вам спасибо скажу!

Комбинация из всех известных валют в enum + суффикс в виде стрингового параметра?

 
Aleksey Mavrin:

Что касается темы - нюансы уже забыл, и лень читать и вникать.

Хорош собеседник)) И вы меня осуждаете))

Ваш способ... цифры это далеко не пары. Это неудобно. И сгодится, если пар несколько, а если надо на всех парах погонять?!  А вы, кстати, уверены, что вам это не нужно? 

Да, можно узнать сколько в окне имеется пар и отбрасывать лишние значения, поставляемые тестером... Но это уже прогоны выброшенные в трубу, то есть меньше полезных вариантов оптимизации.

Плюс - в процессе оптимизации, вы не знаете на какой паре идёт процесс. Вам нужно открывать окошко и считать, считать и считать! Вы не замаетесь?

В моём случае - только копипаст, один раз для брокера и всё...

Вы меня критикуете?!

Или один раз копипаст и свободная, комфортная и наглядная работа в дальнейшем, или постоянно нассчитывать номера в окне обзора рынка... Это  трудоголизм какой-то, на ровном месте )))

Aleksey Mavrin
Aleksey Mavrin
  • www.mql5.com
Добавил тему Оптимизация. Граничные Условия Параметров Решаю задачку о автоматизации проверки стратегий, это типа как тут в соседней ветке описывалось, но по другому. Проблема :Разные стратегии имеют разный набор по кол-ву и типам оптимизируемых параметров. Решение:Нормировать все параметры к диапазону Добавил тему Вечерние размышления о...
 
Andrey Khatimlianskii:

Комбинация из всех известных валют в enum + суффикс в виде стрингового параметра?

Да, тоже вариант, более наглядный, чем у Алексея. Но наборы разные у брокеров. Будут наверное неиспользуемые комбинации, которые снизят эффективность тестера...

Да и валюты все надо найти и забить, это сложнее одноразового копипаста. Мне лично)) Я думал про этот вариант.

Может кто ещё какой вариант знает))

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