Programmer 33 Author Share Posted December 23, 2013 Добрый день!А как предполагалось заново запускать советник? Убрать с графика/заново закинуть, или же просто изменить параметры советника после того, как он ушел в гибернацию. Кирилл Link to post Share on other sites
Ale111 2 Share Posted December 23, 2013 Добрый день!А как предполагалось заново запускать советник? Добрый! Судя по тому, что советник не удаляется с графика, а только прерывает свою работу, то должен запускать новую серию после завершения предыдущей. Этого не происходит. Алерт показывает Load successfull.Continuing work-загрузку файла, причем данные файла все старые, от предыдущей серии, в т.ч. по BuyStopPrice. Что-то не то. К тому же ещё надо проверять другой режим, когда сначала вкл-выкл терминал, а потом уже запуск новой серии, но рынок спит... Link to post Share on other sites
Programmer 33 Author Share Posted December 23, 2013 Добрый!Судя по тому, что советник не удаляется с графика, а только прерывает свою работу, то должен запускать новую серию после завершения предыдущей. Этого не происходит. Алерт показывает Load successfull.Continuing work-загрузку файла, причем данные файла все старые, от предыдущей серии, в т.ч. по BuyStopPrice. Что-то не то. К тому же ещё надо проверять другой режим, когда сначала вкл-выкл терминал, а потом уже запуск новой серии, но рынок спит... Приветствую, Немного не понял Ваш вопрос. Тем не менее, попробуйте новую версию v19.0q_i, где я упростил ручной перезапуск системы. Теперь когда Вы видите надпись: "System Has Been Switched Off" все, что необходимо сделать - это нажать на график правой кнопкой мыши, зайти в свойства эксперта, задать новый BuyStopPrice (и другие настройки при необходимости), и нажать "OK". После чего советник начнет новую серию. ASN1, я так понимаю, что это то, что Вы хотели. Кирилл Cheburashka v19.0q_i.rar Link to post Share on other sites
ASN1 1 Share Posted December 23, 2013 (edited) Убрать с графика/заново закинуть, или же просто изменить параметры советника после того, как он ушел в гибернацию. Кирилл Просто изменить параметры - не срабатывает, ничего не получается и при загрузке установочного файла: о готовности к вводу BuyStopPrice советник не сообщает. Ввод новой цены ничего не меняет, советник продолжает спать. Убрать с графика/заново закинуть - это наверняка будет работать, еще не проверял. Я так понимаю, что по каким то причинам прервать работу оказалось проще, чем полностью удалить с графика? Или есть еще какие-то преимущества именно прерывания? Пока писал, уже поступила новая информация... Edited December 23, 2013 by ASN1 Link to post Share on other sites
ASN1 1 Share Posted December 23, 2013 Приветствую, Немного не понял Ваш вопрос. Тем не менее, попробуйте новую версию v19.0q_i, где я упростил ручной перезапуск системы. Теперь когда Вы видите надпись: "System Has Been Switched Off" все, что необходимо сделать - это нажать на график правой кнопкой мыши, зайти в свойства эксперта, задать новый BuyStopPrice (и другие настройки при необходимости), и нажать "OK". После чего советник начнет новую серию. ASN1, я так понимаю, что это то, что Вы хотели. Кирилл Спасибо! Конечно так будет удобно, если так же надежно, как и удаление / заброс советника на график. Link to post Share on other sites
ASN1 1 Share Posted December 23, 2013 Добрый!Судя по тому, что советник не удаляется с графика, а только прерывает свою работу, то должен запускать новую серию после завершения предыдущей. Этого не происходит. Алерт показывает Load successfull.Continuing work-загрузку файла, причем данные файла все старые, от предыдущей серии, в т.ч. по BuyStopPrice. Что-то не то. К тому же ещё надо проверять другой режим, когда сначала вкл-выкл терминал, а потом уже запуск новой серии, но рынок спит... Для спящего рынка при тестировании целесообразно использовать узкий канал и маленький тейк. Я устанавливаю SL= 15, TP=5. BuyStopPrice выбираю так, чтобы цена была внутри канала. В какую-нибудь сторону, да на разных валютных парах (спред не более 3-х) обязательно срабатывает. А где сработало теперь магик подсказывает. Link to post Share on other sites
Ale111 2 Share Posted December 23, 2013 Для спящего рынка при тестировании целесообразно использовать узкий канал и маленький тейк. Я устанавливаю SL= 15, TP=5. BuyStopPrice выбираю так, чтобы цена была внутри канала. В какую-нибудь сторону, да на разных валютных парах (спред не более 3-х) обязательно срабатывает. А где сработало теперь магик подсказывает. Спасибо, но я так и делаю, Для теста на демо даже SL= 8, TP=3, BuyStopPrice ближе к Ask/Bid . Я попал на время дня, когда рынок почти уснул. Link to post Share on other sites
ASN1 1 Share Posted December 23, 2013 (edited) Приветствую, Немного не понял Ваш вопрос. Тем не менее, попробуйте новую версию v19.0q_i, где я упростил ручной перезапуск системы. Теперь когда Вы видите надпись: "System Has Been Switched Off" все, что необходимо сделать - это нажать на график правой кнопкой мыши, зайти в свойства эксперта, задать новый BuyStopPrice (и другие настройки при необходимости), и нажать "OK". После чего советник начнет новую серию. Дважды попытался так сделать, пока не получается, новая серия не начинается (задавал только новый BuyStopPrice) . После ввода новой цены появляется сообщение "Система готова к вводу новой цены...". Повторный ввод другой новой цены ничего не меняет, сообщение остается, новая серия не начинается. Edited December 23, 2013 by ASN1 Link to post Share on other sites
Ale111 2 Share Posted December 23, 2013 Приветствую, Немного не понял Ваш вопрос. Тем не менее, попробуйте новую версию v19.0q_i, где я упростил ручной перезапуск системы. Теперь когда Вы видите надпись: "System Has Been Switched Off" все, что необходимо сделать - это нажать на график правой кнопкой мыши, зайти в свойства эксперта, задать новый BuyStopPrice (и другие настройки при необходимости), и нажать "OK". После чего советник начнет новую серию. Дважды попытался так сделать, пока не получается, новая серия не начинается (задавал только новый BuyStopPrice) . После ввода новой цены появляется сообщение "Система готова к вводу новой цены...". Повторный ввод другой новой цены ничего не меняет, сообщение остается, новая серия не начинается. У меня аналогично, еще появляется строка алерта " Load successfull.Continuing work-загрузка файла, причем данные файла все старые. В предыдущей версии советника было тоже самое. Link to post Share on other sites
Ale111 2 Share Posted December 26, 2013 У меня аналогично, еще появляется строка алерта " Load successfull.Continuing work-загрузка файла, причем данные файла все старые. В предыдущей версии советника было тоже самое. Инфа для Кирилла. После этого, следуя логики теста, сегодня восстановил две строки кода в модуле restart в виде: BuyStopPrice = 0.0; //v19.0o_i //v19.0p_ii LOAD_DATA = False; Print("Cheburashka: LOAD_DATA set to False"); //v19.0o_i //v19.0p_ii В результате попытка открытия новой серии, по новой цене получилась. Конечно надо внимательно все перепроверить и с учетом вкл-выкл терминала в разных комбинациях. Но пока до Америки рынок очень вялый. Link to post Share on other sites
Ale111 2 Share Posted December 26, 2013 Инфа для Кирилла.После этого, следуя логики теста, сегодня восстановил две строки кода в модуле restart в виде: BuyStopPrice = 0.0; //v19.0o_i //v19.0p_ii LOAD_DATA = False; Print("Cheburashka: LOAD_DATA set to False"); //v19.0o_i //v19.0p_ii В результате попытка открытия новой серии, по новой цене получилась. Конечно надо внимательно все перепроверить и с учетом вкл-выкл терминала в разных комбинациях. Но пока до Америки рынок очень вялый. Добавлю. Хотя новая серия открылась и когда также достигла профита, советник почему то самоудалился. Это было один раз. Может функция deinit не вписалась в отведенные ей 2.5 секунды для этого рынка-не буду гадать (и это в принципе не критично!) Проверил также влияние режима вкл-выкл терминала как в случае открытой серии, так и после ее закрытия - советник продолжил работать и открывать следующую серию. Link to post Share on other sites
Programmer 33 Author Share Posted December 27, 2013 Инфа для Кирилла.После этого, следуя логики теста, сегодня восстановил две строки кода в модуле restart в виде: BuyStopPrice = 0.0; //v19.0o_i //v19.0p_ii LOAD_DATA = False; Print("Cheburashka: LOAD_DATA set to False"); //v19.0o_i //v19.0p_ii В результате попытка открытия новой серии, по новой цене получилась. Конечно надо внимательно все перепроверить и с учетом вкл-выкл терминала в разных комбинациях. Но пока до Америки рынок очень вялый. Спасибо за информацию, Ale111. Вас понял, в ближайшее время проверю. Кирилл Link to post Share on other sites
Sergey007 0 Share Posted December 27, 2013 Здравствуйте. Есть ли версия автомата, начинающего работать в определенное время? Если серия завершилась, снова начинает работать только в указанное время, спасибо. Link to post Share on other sites
ASN1 1 Share Posted December 31, 2013 Всех с Новым Годом! Чебурашке надежности, удачи и долголетия! Link to post Share on other sites
Programmer 33 Author Share Posted January 3, 2014 Здравствуйте. Есть ли версия автомата, начинающего работать в определенное время? Если серия завершилась, снова начинает работать только в указанное время, спасибо. Приветствую, К сожалению, такой версии у Чебурашки нет. Кирилл Link to post Share on other sites
Programmer 33 Author Share Posted January 3, 2014 (edited) Всех с Новым Годом! Чебурашке надежности, удачи и долголетия! Спасибо, ASN1 Присоединяюсь к поздравлениям - С Новым 2014 Годом! Уcпехов, удачи и попутного тренда. Кирилл Edited January 3, 2014 by Programmer Link to post Share on other sites
ASN1 1 Share Posted January 19, 2014 (edited) #3790 …Доработку "закрыть все" тоже можно сделать. Однако, Вы ведь понимаете, что в результате действий предполагаемого модуля вся серия будет моментально закрыта? Т.е. работа советника будет прервана до достижения прибыльного исхода и возможны существенные убытки. #3845 ….В случае же выключения советника и открытия новой серии получится две независимых серии (конечно, мысленно их можно объединить)….. Кроме того, приостановка работы (не выключение) позволит продолжить серию в другом месте или в другое время…. …находимся возле границы коридора, ожидается выход "сильной" новости, увеличивается вероятность проскальзывания…. Находимся в рынке середине серии, приближается ночь. Не хотим, чтобы продолжалась работа в ночное время. Приостанавливаем работу до утра. Для многих валютных пар достаточно высока вероятность продолжить работу в районе места приостановки (в противном случае продолжим работу в любом удобном месте)….. #3912 К сожалению, защиту от спонтанных движений цены во время новостей реализовать невозможно. Отложенный ордер уже находится в рынке, и он срабатывает по той цене, которая есть. О проскальзывании мы уже узнаем пост-фактум. Советую не торговать во время подобных движений, или же принимать во внимание подобные риски. Кирилл #3932 На текущий момент борьба с проскальзыванием, пожалуй, наиболее актуальная задача для улучшения работы советника. #3975 "В целом, я не советую торговать на новостях, особенно при быстрых движениях рынка". В этом мы единодушны, о чем я говорил ранее при обсуждении этого вопроса. Перед выходом новостей лучше не входить в рынок. …. Именно поэтому ранее и предлагалось не выключать советник, а приостанавливать его работу. #3987 …хотелось бы иметь возможность одноразового смещения канала в произвольный момент времени….. Перемещение одной из границ канала за локальный экстремум уменьшает вероятность наращивания числа шагов в серии. Предлагается общее простое(?) решение указанных выше проблем. Суть его заключается в ПЕРЕЗАПУСКЕ советника. В данном случае под этим термином будем понимать следующее. ПЕРЕЗАПУСК ЧЕ – закрытие/удаление пары ордеров (рыночного и отложенного), выключение (удаление) советника и повторная его установка (включение). При этом запоминаются значения зафиксированного убытка, текущего убытка/прибыли серии, лот рыночного ордера. Запомненные значения используются при повторном запуске советника. Значения зафиксированного убытка и текущего убытка/прибыли серии используется вместо начальных нулевых значений Rolling Loss и Accum Loss, а значение лота рыночного ордера устанавливается вместо значения первого лота исходной серии. Исходная последовательность лотов соответственно сдвигается. Если при повторной установке использовать настройки, отличные от исходных, то можно продолжить серию с другими характеристиками. Например, изменение BuyStopPrice переместит канал на новое место, увеличение/уменьшение SL расширит/сузит канал. Возможные варианты реализации (по возрастанию сложности) 1. Все что требуется, это в настройки советника дополнительно ввести параметры Rolling Loss и Accum Loss. По умолчанию устанавливаются нулевые значения. Процедура перезагрузки осуществляется вручную. Записываются на бумаге :neutral: необходимые значения, закрывается/удаляется рыночный и отложенный ордер, удаляется советник. Через любой промежуток времени советник загружается обычным образом, в настройках вводятся запомненные значения Rolling Loss, Accum Loss, а также значения сдвинутой последовательности лотов, в которой лот исходного рыночного ордера считается первым. 2. Дополнять настройки новыми параметрами не требуется, но создается кнопка ПЕРЕЗАПУСК. После нажатия этой заветной кнопочки вручную закрываются/удаляются ордера, выключается (удаляется) советник, а на графике остается кнопка ПЕРЕЗАПУСК (неактивная). Через любой промежуток времени советник вручную устанавливается повторно. После этого кнопка ПЕРЕЗАПУСК вновь становится активной. При перезапуске, наряду с магиком, автоматически запоминаются и затем автоматически устанавливаются значения зафиксированного убытка и текущего убытка/прибыли серии. Остальные необходимые параметры, в том числе и сдвинутая последовательность лотов, вводятся вручную в настройках при повторной установке советника. Существенный недостаток первого и второго вариантов – необходимость ввода всей новой последовательности лотов. Для ускорения этого процесса можно заранее создать необходимые установочные файлы. В каждом таком файле первый лот должен соответствовать второму, третьему и т.д. лотам исходной последовательности. 3. Отличается от варианта 2 только тем, что при перезапуске автоматически запоминаются и автоматически устанавливаются не только магик, значения зафиксированного убытка и текущего убытка/прибыли серии, но и последовательность лотов, в которой лот исходного рыночного ордера считается первым. 4. Из области мечтаний. После нажатия заветной кнопочки ПЕРЕЗАПУСК автоматически закрываются ордера, удаляется/выключается советник. Предлагается подтвердить или изменить настройки для повторного запуска и указать его время (я предпочел бы повторный запуск делать вручную, но часто просят включить такой параметр в настройки наряду с возможностью приостановки работы советника по времени, например, в пятницу вечером). Предлагаемая в настройках последовательность лотов уже модифицирована как указано выше. После нажатия ПЕРЕЗАПУСК (или автоматически в указанный момент времени ) повторно запускается советник с ранее подтвержденными настройками. Таким образом, простая (?) процедура запоминания и установки необходимых значений, не затрагивающая (?) основной алгоритм советника, позволит реализовать ряд полезных востребованных функций: Приостановка торговли с последующим продолжением серии; Страховка от проскальзывания в ожидании «быстрого» рынка; Изменение последовательности лотов незаконченной серии; Ручное скачкообразное смещение канала (скачущий Чебурашка); Ручное расширение/сужение канала. Возможно комбинирование функций, например, расширение канала с одновременным его смещением. Степень автоматизации выполнения указанных функций зависит от варианта реализации ПЕРЕЗАПУСКА ЧЕ. Хотел все это изложить позже, после завершения отладки последней версии. Но отладка буксует из-за нюансов процедуры выключения ("спячки", удаления) советника. Может быть при решении возникших трудностей будут учтены особенности процедуры выключения при ПЕРЕЗАПУСКЕ ЧЕ. Edited January 19, 2014 by ASN1 Link to post Share on other sites
Ale111 2 Share Posted January 20, 2014 Предлагается общее простое(?) решение указанных выше проблем. Суть его заключается в ПЕРЕЗАПУСКЕ советника. . Из моего поста №3706: "... Поэтому для снижения риска при достижении определенной просадки можно "заморозить" обычную работу советника до момента когда цена устойчиво покинет (с запасом) коридор флэта и можно открывать новые ордера в профит, на ином уровне." К сожалению эта идея тогда не удостоилась дальнейшего обсуждения. Сейчас Вы предметно развиваете эту тему, солидарен и благодарю! Link to post Share on other sites
ASN1 1 Share Posted January 20, 2014 Из моего поста №3706:"... Поэтому для снижения риска при достижении определенной просадки можно "заморозить" обычную работу советника до момента когда цена устойчиво покинет (с запасом) коридор флэта и можно открывать новые ордера в профит, на ином уровне." К сожалению эта идея тогда не удостоилась дальнейшего обсуждения. Сейчас Вы предметно развиваете эту тему, солидарен и благодарю! Спасибо за поддержку! Чем больше участников одобрят предложение, тем выше вероятность его реализации. Link to post Share on other sites
Programmer 33 Author Share Posted January 22, 2014 Предлагается общее простое(?) решение указанных выше проблем. Суть его заключается в ПЕРЕЗАПУСКЕ советника. ASN1, хочу Вас поблагодарить за подробное изложение предложенной модификации. Особенно, меня впечатлило четкое описание различных вариантов реализации в зависимости от сложности. Я все внимательно прочитал и в ближайщее время отвечу Вам, как мы поступим. Поскольку тема поднималась ранее, и Ale111 тоже Вас поддерживает, а самое главное - Вы очень грамотно все описали, возможно, данная идея стоит реализации. Кирилл Link to post Share on other sites
Programmer 33 Author Share Posted February 2, 2014 Приветствую, В новой версии исправлен следуюзий ньюанс: Инфа для Кирилла.После этого, следуя логики теста, сегодня восстановил две строки кода в модуле restart в виде: BuyStopPrice = 0.0; //v19.0o_i //v19.0p_ii LOAD_DATA = False; Print("Cheburashka: LOAD_DATA set to False"); //v19.0o_i //v19.0p_ii В результате попытка открытия новой серии, по новой цене получилась. А именно, при завершении серии (профит или нет) контрольные переменные выставляются в следующие состояния: BuyStopPrice = 0.0; //v19.0o_i //v19.0p_ii //v19.0r_i LOAD_DATA = False; Print("Cheburashka: LOAD_DATA set to False"); //v19.0o_i //v19.0p_ii //v19.0r_i BSP = BuyStopPrice; //needed restart flag flag = 1; //main restart flag WORK = true; //v19.0r_i Проверил на тестере - данная настройка приводит систему в состояние "Ready to input BuyStopPrice": Просьба проверить на демо - начнет ли советник новую серию после ввода новой цены BSP ? Предлагается общее простое(?) решение указанных выше проблем. Суть его заключается в ПЕРЕЗАПУСКЕ советника. Касательно перезапуска - встречная идея. Как насчет того, чтобы вместо того, чтобы перебивать лоты в настройки советника (при желании продолжить работу), вместо этого просто добавить параметр, который будет говорить, с какого номера лота начинать? В таком случае, лоты останутся все те же, что и при начальном запуске, просто советник начнет, например с 5-го лота в настройках. Останется только сохранить аккумулированный лосс в глобальную переменную, и оттуда подтягивать это значение при продолжении работы. К тому же, я бы хотел сначала быть уверенным, что все довольны версией v19.0r_i, прежде, чем мы пойдем далее. Более того, с выходом нового языка MQL4, который ожидается очень скоро, могут начать происходить сбои. Т.е. сначала необходимо будет соответствующим образом изменить код советника, прежде чем продолжать наработки. На данный момент, просьба посмотреть версию v19.0r_i и сообщить, если все в порядке. Кирилл Cheburashka v19.0r_i.rar Link to post Share on other sites
ASN1 1 Share Posted February 2, 2014 Добрый день! "Касательно перезапуска - встречная идея. Как насчет того, чтобы вместо того, чтобы перебивать лоты в настройки советника (при желании продолжить работу), вместо этого просто добавить параметр, который будет говорить, с какого номера лота начинать? В таком случае, лоты останутся все те же, что и при начальном запуске, просто советник начнет, например с 5-го лота в настройках. " По сути это удачная детализация варианта 3 относительно используемой последовательности лотов: "Вариант3. При перезапуске автоматически запоминаются и автоматически устанавливаются не только магик, значения зафиксированного убытка и текущего убытка/прибыли серии, но и последовательность лотов, в которой лот исходного рыночного ордера считается первым." Следует только приветствовать идею введения параметра, который будет указывать номер начального лота при перезапуске. В идеальном случае по умолчанию должен автоматически устанавливаться номер последнего закрытого рыночного ордера, а при необходимости он может быть изменен вручную. Кроме того, введение указанного параметра значительно облегчит реализацию одной из полезных функций, перечисленных ранее: "Изменение последовательности лотов незаконченной серии". Так же это может оказаться полезным и при первом включении советника, обеспечивая возможность выбора начального лота. "Останется только сохранить аккумулированный лосс в глобальную переменную, и оттуда подтягивать это значение при продолжении работы." Я правильно понимаю, что в данном случае "аккумулированный лосс" будет учитывать текущий убыток/прибыль на момент приостановки и в принципе может иметь и положительное значение? Link to post Share on other sites
Programmer 33 Author Share Posted February 2, 2014 Я правильно понимаю, что в данном случае "аккумулированный лосс" будет учитывать текущий убыток/прибыль на момент приостановки и в принципе может иметь и положительное значение? Да, это верно. Самое сложное, вероятнее всего, будет концептуально "склеить" серии. А именно, первая серия прерывается на незаконченном лоте N. Где начинать следующую - заново на лоте N или на лоте N+1 ?? Кирилл Link to post Share on other sites
ASN1 1 Share Posted February 3, 2014 (edited) Да, это верно.Самое сложное, вероятнее всего, будет концептуально "склеить" серии. А именно, первая серия прерывается на незаконченном лоте N. Где начинать следующую - заново на лоте N или на лоте N+1 ?? Кирилл Мне думается, что по умолчанию начинать следующую серию надо с лота N. Если возможный текущий убыток от сделки с лотом N воспринимается как "существенный" (непременно хочется его компенсировать последующей серией), то вручную можно установить лот N+1. Если имеется текущий убыток от сделки с лотом N, то его лучше считать "платой" за ПЕРЕЗАПУСК ЧЕ (не следует забывать, что будут ситуации с текущей прибылью и вместо "платы" получится "премия" :-?). В противном случае следующую серию начинать с лота N+1 и "платой" за это будет уменьшение числа шагов на единицу. Выбор останется за пользователем. Edited February 3, 2014 by ASN1 Link to post Share on other sites
ASN1 1 Share Posted February 3, 2014 Приветствую, Просьба проверить на демо - начнет ли советник новую серию после ввода новой цены BSP ? К тому же, я бы хотел сначала быть уверенным, что все довольны версией v19.0r_i, прежде, чем мы пойдем далее. Более того, с выходом нового языка MQL4, который ожидается очень скоро, могут начать происходить сбои. Т.е. сначала необходимо будет соответствующим образом изменить код советника, прежде чем продолжать наработки. На данный момент, просьба посмотреть версию v19.0r_i и сообщить, если все в порядке. Кирилл Добрый день! После ввода новой цены BSP советник начинает новую серию, работает нормально. Если же после достижения профита и предложения ввести цену, выключить-включить терминал, то несанкционированно устанавливаются два первых отложенных ордера в соответствии со старой ценой, остающейся в настройках. Link to post Share on other sites
Recommended Posts