[open source] [Советник] "Generic A-TLP"📌

От Sergey5, 23 апреля, 2016 в Лаборатория ProfitFX

Автор#101
HTrader,
В базовой версии ГМТ оффсета нет и не будет. Вопрос закрыт.
Следующий пост про ГМТ оффсет будет приравнен к флуду.
#102

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

Время абсолютно, тесты и торги будут осуществляться в строго ограниченные часы/интервалы мировой торговой сессии/суток и идентифицированы часы торгов в сэтах должны быть так же точно, как и все остальные параметры бота.
То есть хочешь или не хочешь, будешь употреблять все слова или некоторые слова будут запрещены - но время торгов ботом в сэтах, выкладываемых на форуме, должно быть идентифицировано точно.
То есть типа "мой сэт подготовлен для торгов в течении 3-х часов в сутки, но не скажу и сами догадывайтесь каких" - это не вариант.
Причем однозначно не вариант: серверное время, например, Ф4ю и Робофорекс отличается на 1 час - и серверное время торгов ботом на любой паре в одном из этих ДЦ будет отличаться от времени торгов в другом ДЦ.
И при скачивании 99% котировок время пользователем может задаваться от балды, верно же?

Учитываю выраженную аллергию некоторой части форумчан на эталонное мировое время по Гринвичу, в бота можно не вводить выставление времени по Гринвичу, а оставить по времени сервера ДЦ.
Но тогда сэты должны сопровождаться каким-то пояснением какое ж всё таки абсолютное/мировое (или московское) время торгов ботом - в названии сэта или в его параметрах.

Наиболее разумным решением мне представляется введение в бота строковой внешней переменной типа комментария, текст в которую каждый пользователь сможет вписывать сам.
И вот в этом комментарии, перед сохранением сэта, стоит указывать валютную пару сэта, а также какой GMT был задан в 99% котировках, на которых готовился сэт - или название ДЦ теста сэта и его GMT, летний или зимний.

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

#103


Ну зачем нужна временная зона? Каждый знает, как работает его терминал по отношению к GMT. Зачем все усложнять? Не лучше ли работать по времени терминала а к сетам при необходимости добавлять gmt+.... Вроде бы прошли десятки страниц с вопросами по GMT?



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

Временная зона в настройках удобна тогда, когда работаешь с разными ДЦ, у которых разное время терминала. В этом случае для переноса сета из одного терминала в другой будет достаточно поменять сдвиг по времени, а не перебивать настройки времени в каждом сете. А настроек времени в сете 26! Так что проще - поменять одну цифру оффсета или изменить 26 параметров? При этом существенно увеличивается шанс ошибки и затрудняется контроль.

Это не считая того, о чем уже было сказано - унификации сетов. Например, Genrich, выкладывает сеты с Darwinex, у которого GMT+0, а вовсе не GMT+2. В итоге вместо десятков страниц обсуждения GMT, будет столько же страниц обсуждения времени в сетах.

Безусловно, топикстартер имеет браво устанавливать свои правила, в любом случае спасибо ему! Но прошу подумать и учесть альтернативное мнение.
Автор#104

Про ГМТоффсет.

Код открытый. Форум - свободный.
1. Свои эмоции выражайте в соответствующих разделах форума.
2. Берите опен соурс и создавайте свою ветку типа "Generric А-TLP + GMT".
3. Здесь - продуктивная работа по подбору пар и сетов для версии без ГМТоффсет.
В сетах будет указано, для какого ГМТ этот сет. Типа "хххххххххх.хххххх GMT+2".

spv,
можно один раз настроить нужное время и просто нажать в сете кнопку "сохранить".

#105
Sergey5, уважаемый коллега, эмоции здесь совершенно не при чем.
Если в сэте указано начала работы бота в 22 часа, то должно быть однозначно определено это время Москвы, Нью-Йорка или Токио.
Допустимы разные варианты как указать часовой пояс - но часовой пояс должен быть указан явно и безальтернативно.
Иначе параметры времени работы бота не определены.
#106


spv,
можно один раз настроить нужное время и просто нажать в сете кнопку "сохранить".



Спасибо, кэп! Хозяин - барин! ;) Можно и так, безусловно. И даже не раз. :)

BTW, обнаружилось расхождение в работе WSA 1.4 и A-TPL 9.0. WSA на всех (7) ДЦ сделку на продажу EURCHF закрыла вечером в пятницу (одновременно), а A-TPL - на открытии рынка в понедельник. Поскольку A-TPL стоит в одном терминале, говорить о закономерности пока нельзя. Три другие сделки совпали полностью.
Автор#107


Спойлер

BTW, обнаружилось расхождение в работе WSA 1.4 и A-TPL 9.0. WSA на всех (7) ДЦ сделку на продажу EURCHF закрыла вечером в пятницу (одновременно), а A-TPL - на открытии рынка в понедельник. Поскольку A-TPL стоит в одном терминале, говорить о закономерности пока нельзя. Три другие сделки совпали полностью.



Совпадение логики было определено по сетам, настроенным для USDCHF и GBPCAD.
Остальные сеты настроены не под Азию. А просто тестовые.

Изменено 1 августа, 2016 пользователем Sergey5

#108
Sergey5, если не трудно, прикрепите к первому посту существующие сеты в отдельном архиве и так же сет для оптимизации. сэнкс
Автор#109
mahahuha,
в архиве с версией 9.0 лежат пробные тестовые сеты.
В архиве всего 2 папки: ЕА и сеты.
Сета для оптимизации нет. Надо готовить.
#110

Хотел прооптимизировать по евродоллару и как-то отчаялся. Больше 2000 часов с 2010 по 2015 год по всем тикам. yur4ello, может есть возможность убрать из кода то, что тормозит оптимизацию и сделать версию чисто для оптимизации?

#111

Код советника конечно можно оптимизировать. При написании я добавлял дополнительные проверки, вывод в журнал и в файл различных сообщений, для того, чтобы можно было понимать, что происходит внутри, почему открылись, почему не открылись и т.д. Если на данном этапе надобность в этом отпала, все уберу и немного оптимизировать можно. Просьба к тем, кто тестирует с точностью 99%: попробуйте сравнить тесты с одинаковыми параметрами с точностью 99 и попробуйте в тестере задать таймфрейм М1 и тестирование по ценам открытия баров. Обоснование такое: советник принимает решения о входе в рынок или выходе из него по ценам открытия минутных свечей. Все что происходило внутри минутной свечи для него не важно. Возможно результаты будут достаточно схожи, и это должно ускорить тестирование. Это не относится к версии с CCI. Там значения CCI берутся с текущего таймфрейма.

Автор#112
yur4ello,
комменты совсем удалять не надо.
Они потребуются при реальной торговле.
Можно сделать флаг на их запись в файл и в вывод в журнал.
#113

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

#114

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

#115

Я тут попробовал сделать версию для оптимизации, итак:

Время тестирования за год на моем компьютере: (total time 0:02:12.023) 132 сек

Если убрать все Print, Comment, Запись в файл: (total time 0:01:58.530) выйгрыш 14 сек ~ 10%
так себе прирост.

Потом подумал, а зачем нам на каждом тике считать канал?
Канал нужен для:
[list type=decimal]

  • Открытия - только когда пришло время по планировщику

  • Закрытия - только когда открытые сделки вообще есть.



  • Добавил в начало OnTick() такой код:
    if(IsOptimization() || IsTesting()){
    if(!IsTime() && OrdersTotal()}

    и получил: (total time 0:01:29.155) выигрыш 43 сек ~ 32%

    Обе оптимизации вместе дают: (total time 0:01:17.392) выигрыш 55 сек ~ 41%

    Generic_A-TLP_v.9.0_opt.mq457 скач.

    #116
    Спойлер


    Я тут попробовал сделать версию для оптимизации, итак:

    Время тестирования за год на моем компьютере: (total time 0:02:12.023) 132 сек

    Если убрать все Print, Comment, Запись в файл: (total time 0:01:58.530) выйгрыш 14 сек ~ 10%
    так себе прирост.

    Потом подумал, а зачем нам на каждом тике считать канал?
    Канал нужен для:
    [list type=decimal]

  • Открытия - только когда пришло время по планировщику

  • Закрытия - только когда открытые сделки вообще есть.



  • Добавил в начало OnTick() такой код:
    if(IsOptimization() || IsTesting()){
    if(!IsTime() && OrdersTotal()}

    и получил: (total time 0:01:29.155) выигрыш 43 сек ~ 32%

    Обе оптимизации вместе дают: (total time 0:01:17.392) выигрыш 55 сек ~ 41%

    На самом деле там много чего не надо считать на каждом тике. Надо оптимизировать. И для работы в реальном времени много лишнего.

    Добавлено: 23-05-2016 11:58:45

    Вынес некоторые расчеты в OnInit(). В OnTick() код предложенный master_255. Два файла выкладываю. Как теперь озаглавить - не знаю. Один для оптимизации другой для торговли. Тоже побыстрее работать должен.

    Generic_A-TLP_DPSBE+%%TPv.10.0.mq495 скач.
    Generic_A-TLP_DPSBE+%%TPv.10.0_opt.mq481 скач.

    Изменено 23 мая, 2016 пользователем yur4ello

    #117

    С тестами дела обстоят следующим образом.
    Время тестирования по альпари (GMT+3), сет GBPCAD дефолтный. Результаты с 01.01.2014 по наст. время с фикс. лотом.

    Качество 99% (включена комиссия 5$ за лот по кругу)

    Спойлер



    Качество 90%
    Спойлер



    По ценам открытия на М1
    Спойлер



    Пробовал проводить оптимизацию на М1, при прогоне на М15 по всем тикам с качеством 90%получались ошеломительные результаты, но при тестировании 99% выходило что попало, возможно и из-за комиссии тоже.

    GBPCADgmt+3_99.rar57 скач.
    GBPCADgmt+3_90.rar45 скач.
    GBPCADgmt+3_по_ценам_открытия.rar47 скач.

    #118

    бегло потестил gbpusd.

    Азия 14 и DPS v3 и 10 Входят одинаково, выходят из сделок по разному на тесте.

    Спойлер


    https://www.mql5.com/ru/charts/5192589/gbpusd-m15-alpari-limited
    https://www.mql5.com/ru/charts/5192598/gbpusd-m15-alpari-limited



    Так же мне показалось, что на М1 по открытию баров и на М15 по всем тикам результат у ДПС хоть и похож, но немного разный. Сейчас я обнаружил, что то с архивом котировок - ошибки рассогласования графика, перезагрузить не получается, терминал глючит - возможно изза этого результат разный, но Азия 14 торгует абсолютно идентично как по ценам открытия на М1, так и по всем тикам М15. Так же разное коль-во сделок на истории у Азии и у ДПС3 и 10 между собой, разное матожидание.

    dps.zip41 скач.

    Изменено 24 мая, 2016 пользователем grabli

    Автор#119


    Да, просьба поправить 10-ю версию, и поставим её на роботест:)


    А вот и начальник Роботеста подтянулся :d
    Сначала надо сеты сделать.
    И ещё, на какого брока ставить хочешь?
    #122

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

    Generic A-TLP DPS[BE+%%TP]v.10.0 - GBPCADgmt+3_по ценам открытия.rar

    Просто спереди добавляется точное имя бота - и дальше через тире пишите что хотите как и сейчас.

    #123


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

    Generic A-TLP DPS[BE+%%TP]v.10.0 - GBPCADgmt+3_по ценам открытия.rar

    Просто спереди добавляется точное имя бота - и дальше через тире пишите что хотите как и сейчас.



    Как-то предыдущие версии в расчет не брал. Сет именно для Generic A-TLP DPS[BE+%%TP]v.10.0. А так если будут еще подходящие сеты - буду иметь ввиду. При тестировании параметры ставил наугад. Sergey5, если не трудно, посмотрите, насколько правильно установлены настройки (их возможные значения) оптимизируемых параметров. Сейчас оптимизирую AUDCAD. Может кто-нибудь попробует подобрать сеты на другие пары? Можно оптимизировать по ценам открытия на М1 и затем прогонять на всех тиках (лучше 99%).
    Автор#124

    В Азии встречные сделки можно делать. Там даже флаг на их запрет есть в настройках. Просто до этого редко доходит. Лучше сделать так и в дженерике.
    Ограничить поток СЛ на улетающей свечке можно паузой на хх часов после минусовой сделки в уу пп. Запрет на новые сделки сразу в оба направления. Если пошёл такой полёт, то ночнику там делать нечего. Минимальный СЛ у ночника типа "Азия" в районе 30 пп (1,00300). Можно сразу установить это значение.

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

    +++++++++++++++++++++++++++
    yur4ello,
    пожалуйста, убери из названия ЕА лишние буквоцифры.
    Просто "Generic A-TLP v11.1"

    #125

    Появилось время, почитал код. есть следующие замечания:
    - tick_volume > 1.0 - на реале работает не стабильно, тем более в мультивалютном режиме. может пропускать входы.
    - для ускорения тестов и вообще работы совы надо отказаться от
    - дублирования логов Print(q); fWriteDataToFile(q);
    - и желательно от опроса индикаторов и пересчёта ордеров на каждом тике
    - Take_Profit = MathMax ( Take_Profit, NormalizeDouble( stoplevel * Point / old_point,1 ) ); и подобные, может работать не так как задумывалось при переходе с double -> int предлагаю исправить на:
    Take_Profit = ( int )( MathMax ( Take_Profit, MathCeil( stoplevel * Point / old_point ) ) );

    Для публикации сообщений создайте учётную запись или авторизуйтесь

    Перейти к списку тем
    Форум · 2.0.20260627.0025