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

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

#1827

Обнаружилась ошибка 4051 в самой новой версии советника 11.93, повторялась на нескольких парах Брокер пепперстоун, есн счет:

Спойлер

2016.11.07 01:39:42.086 Generic A-TLP 11.93 GBPCHF,M15: OnTick() Error 4051: Error №: 4051 - invalid function parameter value
2016.11.07 01:39:42.086 Generic A-TLP 11.93 GBPCHF,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: 20 pips
2016.11.07 01:39:28.128 Generic A-TLP 11.93 GBPCHF,M15: 0:39 | OrderCloseX: SELL price / cmd / slip / delay = 1.21517 / 1.21517 / 0.0 point / 282 ms, WorkTime = 0 ms
2016.11.07 01:39:28.128 Generic A-TLP 11.93 GBPCHF,M15: close #25269718 sell 0.01 GBPCHF at 1.21717 sl: 1.22417 tp: 1.20317 at price 1.21517
2016.11.07 01:39:27.843 Generic A-TLP 11.93 GBPCHF,M15: 0:39 | SELL: order #25269718 Filter output №3. MA rises and a floating profit more 20.0 points.
2016.11.07 01:14:12.300 Generic A-TLP 11.93 USDCHF,M15: modify #25270563 sell 0.01 USDCHF at 0.97487 sl: 0.98187 tp: 0.96787 ok
2016.11.07 01:14:12.094 Generic A-TLP 11.93 USDCHF,M15: 0:14 | OpenTrade: SELL price / cmd / slip / delay = 0.97487 / 0.97487 / 0.0 point / 250 ms, channel price / bid = 0.97121 / 0.97487, WorkTime = 0 ms
2016.11.07 01:14:12.094 Generic A-TLP 11.93 USDCHF,M15: open #25270563 sell 0.01 USDCHF at 0.97487 ok
2016.11.07 01:13:32.243 Generic A-TLP 11.93 USDCHF,M15: OnTick() Error 4051: Error №: 4051 - invalid function parameter value
2016.11.07 01:13:32.197 Generic A-TLP 11.93 USDCHF,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: 12 pips
2016.11.07 01:13:32.194 Generic A-TLP 11.93 USDCHF,M15: 0:13 | OrderCloseX: SELL price / cmd / slip / delay = 0.97504 / 0.9751 / -0.6 point / 219 ms, WorkTime = 0 ms
2016.11.07 01:13:32.194 Generic A-TLP 11.93 USDCHF,M15: close #25269767 sell 0.01 USDCHF at 0.97621 sl: 0.98321 tp: 0.96921 at price 0.97504
2016.11.07 01:13:31.971 Generic A-TLP 11.93 USDCHF,M15: 0:13 | SELL: order #25269767 Filter output №3. MA rises and a floating profit more 10.0 points.
2016.11.07 01:10:02.918 Generic A-TLP 11.93 EURGBP,M15: OnTick() Error 4051: Error №: 4051 - invalid function parameter value
2016.11.07 01:10:02.918 Generic A-TLP 11.93 EURGBP,M15: GetLastProfit, LastBuyProfit: 11 pips, LastSellProfit: 0 pips
2016.11.07 01:10:02.090 Generic A-TLP v.9.03 GBPUSD,M15: open #25270145 buy 0.01 GBPUSD at 1.24707 ok
2016.11.07 01:10:02.090 Generic A-TLP 11.93 GBPCAD,M15: OnTick() Error 4051: Error №: 4051 - invalid function parameter value
2016.11.07 01:10:02.090 Generic A-TLP 11.93 GBPCAD,M15: GetLastProfit, LastBuyProfit: 25 pips, LastSellProfit: 0 pips
2016.11.07 01:10:02.090 Generic A-TLP 11.93 GBPCAD,M15: 0:10 | OrderCloseX: BUY price / cmd / slip / delay = 1.66624 / 1.66624 / 0.0 point / 360 ms, WorkTime = 0 ms
2016.11.07 01:10:02.090 Generic A-TLP 11.93 GBPCAD,M15: close #25269518 buy 0.01 GBPCAD at 1.66374 sl: 1.65374 tp: 1.67474 at price 1.66624
2016.11.07 01:10:02.059 Generic A-TLP 11.93 EURGBP,M15: 0:10 | OrderCloseX: BUY price / cmd / slip / delay = 0.8893799999999999 / 0.8893799999999999 / 0.0 point / 329 ms, WorkTime = 0 ms
2016.11.07 01:10:02.059 Generic A-TLP 11.93 EURGBP,M15: close #25269198 buy 0.01 EURGBP at 0.88832 sl: 0.88482 tp: 0.90832 at price 0.88938


На тикмилле та же ошибка:
Спойлер

2016.11.07 02:00:52.962 Generic A-TLP 11.93 USDCHF,M15: OnTick() Error 4051: Error №: 4051 - invalid function parameter value
2016.11.07 02:00:52.962 Generic A-TLP 11.93 USDCHF,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: 8 pips
2016.11.07 02:00:52.962 Generic A-TLP 11.93 USDCHF,M15: 1:0 | OrderCloseX: SELL price / cmd / slip / delay = 0.9744699999999999 / 0.97424 / 2.3 point / 516 ms, WorkTime = 0 ms
2016.11.07 02:00:52.962 Generic A-TLP 11.93 USDCHF,M15: close #65760299 sell 0.02 USDCHF at 0.97525 sl: 0.98225 tp: 0.96825 at price 0.97447
2016.11.07 02:00:52.444 Generic A-TLP 11.93 USDCHF,M15: 1:0 | SELL: order #65760299 Filter output №3. MA rises and a floating profit more 10.0 points.


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

Вместо

на всех предыдущих версиях советника...

Изменено 7 ноября, 2016 пользователем FERRARI2009

#1828

Еще идея: а не думали прикрутить кнопочку Disable? Чтобы в ожидании новостей можно было одним кликом запретить торговлю совы. А то через F7 лазить и отключать на всех терминалах по куче пар утомляет.
Это и 11, и 12 версий касается.
Я в 11 прикрутил такую фичу на кнопку Hide, когда панель скрыта - торговли нет. Очень удобно.

#1829



...
Но ботов скачали 6000+ раз!!
Ты представляешь себе торгуемые суммы и цену вопроса?!
...



Как грится: кто не рискует, тот не пьёт. То ли с радости игристое, то ли с горя горькую.

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

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


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



А может просто кто-то забыл чего ради всё начиналось? То ради чего всё начиналось, уже давно достигнуто. Отец ветки спокойно насладился приятным моментом завершенного дела и покинул ветвь.

То что тут сейчас происходит/продолжается - может закончиться не скоро/никогда. Это тебе любой прогер скажет.


Уже не первый ваш пост о том что ветка "осиротела", да Sergey5 ушел, нужен тот кто должен вести топ.
Но зачем подавлять дух тех кто делает что-то? ) Нужно было вовремя сделать отдельную ветку в свое время, но инициаторов не оказалось. Вы пишете очень интересные вещи(в плане двусторонней оптимизации бай и на селл, но этим пока даже не пахнет) в плане разработки бота, народ делает то что может, жаль с оптимизацией хромаем, но если был бы топикмастер дело конечно пошло бы в гору так как это началось здесь /laboratoriya-profitfx/24/open-source-sovetnik-quotgeneric-a-tlpquot-v13xx/15029/?do=findComment&comment=318905 про оптимизацию, есть же коллеги которые предлагают свои мощности, просто необходимо направить, и для последних версий это уже давно необходимо. Жаль что пока это не так как хотелось бы(, была мысль создать новую ветку по 11 версии создать группы оптимизации и теста, но - время - к сожалению успеваю читать ветку только по ночам и не каждый день, слежу с начала образования ветки.
Большое спасибо и респект Старику за моральное поддержание, жаль что народ особо не понимает, что он пишет и что хочет донести исходя из его жизненного опыта(старших нужно и необходимо слушать)
Начатое действительно должно быть до конца доведено, но здесь никто никого не заставляет, все делается кто чем может и хочет.
Скорее всего я не в тему, но сказать надо.

Добавлено: 07-11-2016 02:33:52

Для 11 и 12 версий

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

Как вариант, чтобы включались локирующие позиций до закрытия рынка.

Изменено 7 ноября, 2016 пользователем maga156

#1830

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

Изменено 7 ноября, 2016 пользователем machine

#1831

Мне тут пришла идея, как всегда поздно, но: Почему бы не выпускать коллективных ботов под лицензией GNU GPL ? Чтобы все, кто использует разработки в своих разработках не имели права закрывать код и настройки? :)



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

Как вариант, чтобы включались локирующие позиций до закрытия рынка.


А почему просто не содавать сеты отключив торговлю в пятницу? Все равно, если просто прикрывать позиции в пятницу то половина из них закроется в -, половина в + и не факт что будет какой то профит от этого.
#1832

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

#1833


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


Мне кажется это из за гепа резкое изменение на много пп цены. Имхо!!!
#1834

Перехлест это обычное явление на всех сетах с отрицательной Exit_Distance


В версии 11.93 (773-я строка) будет правильно fRectLabelCreate(0,"info_panel",0,0,49,160,375,Col_info);


Спасибо поправлю.

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

Изменено 7 ноября, 2016 пользователем master_255

#1835


Спойлер


У нас же лаборатория, а не "ну что, грааль готов?".
Вроде никто и не подписывался на передачу программного продукта тысячам пользователей.



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

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

Если уж на то пошло, этот проект не они начинали, а подключались по ходу дела. Не кажется ли тебе, что ВЕСТИ проект задача ОТЦА, а не прогера? А проект давно ужо сиротинушка - батько его бросил.

Дык, что отчима ищите (нового куратора) и на программистов не гоните, а то и этих растеряете.

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


Да, у нас лаборатория.
Да, у нас работают бесплатно и в личное время - и совершенно добровольно. Безвозмездно!
Да, у нас нет формальных обязательств перед пользователями - да и заказчика нет.
Да, у нас нет сроков.
Да, развивая и дорабатывая код, очевидно лучше начинать зарабатывать больше как можно раньше, это понятно всем - так что упираться и работать выгодно!
но официальных сроков и каких-то обязательств в проектах нет.
Да, из любого проекта можно уйти - или не сделать чего-то явно/заведомо необходимого.
У нас на форуме целое кладбище проектов, разработчики которых куда-то свалили - только по ТС Победа минимум 3 крупных недоведенных бота. Разработчики брались, долго делали - но недоводили и бросали.
Любой форум целое кладбище недоделанных ботов/проектов и не реализованных надежд людей.

Да, при разработке ботов 1-2 ведущих программиста имеют чрезвычайное значение и играют чрезвычайную роль.
Так же, как при разработке ТС работа 1-2 сильных трейдеров решают будет система прибыльной или уйдет в архив.
При разработке любого нового работа всего 1-2 человек решает быть новому или не быть.
Успех или неуспех создания нового всегда зависит от 1-2 сильных людей.
Это реальность.

Но это улица с 2-хстооронним движением - пусть и в разное время.
Пользователи помогают быстрее найти баги или несуразности, предлагают те или иные опции.
В последнем релизе нашего с Qj бота 4 из 5 доработок предложили пользователи. Им надо - мы сделали.
Пользователи нарабатывают новые сэты, за свой счет тестируют брокеров.
В итоге бесплатно работавшие программисты тоже не будут в накладе - пользователи помогают улучшить личную торговлю и заработать больше, чем что-то делая только для себя.
Сначала бесплатно упираются программисты, потом, рискуя своими деньгами, упираются пользователи - но, в итоге, больше зарабатывают все.
Это симбиоз. Это - нормально.
Спойлер

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

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

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

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

Парни, давайте завязывать с разговорами о чрезвычайной душевной ранимости, слабом здоровье и, поэтому, неприкасаемости программистов...
Что типа выпустить полноценный релиз нанесет программисту несовместимые с жизнью душевные травмы...
Не нанесет.
Я, в свои 62 года, только в этом году вмести с Qj выпустил 10+ релизов напичканного опциями под завязку бота.
Все километры букв, все описания параметров и опций, модели и примеры подготовил и написал лично я.
И ни разу не умер.

Это просто работа: сам берешься - и надлежаще делаешь.
Не требуя, чтобы кофе пользователи подавали в постель.



Те пользователи, что рискуя своими деньгами помогают улучшить бота, отыскивают баги и т.д. и т.п. уже все в курсе реального назначение параметров и формализация описания им не особо и нужна. Ну а далее все по Себастьяну...
#1836

master_255 Скажи пожалуйста версию 11.93 можно на реале оставить или пока убрать а то у людей выше пишут какие то ошибки появились???

#1837



Спойлер




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

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


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


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

Чего они портят?
Понятно же из практики, что эти сделки закрываются в основном в понедельник /interaktivnaya-torgovlya/9/obsuzhdenie-sovetnika-generic-a-tlp/14475/?do=findComment&comment=318245
Любой анализер показывает результат по времени открытия сделок.
А закрытие в пятницу даст конечно какой то плюс, но он будет существенно меньше.
Че велосипед то изобретать? Все уже изучено до нас...


Я все-таки настаиваю, что оптимизировать необходимо с закрытием позиций в пятницу на закрытии рынка. В реальной торговле можете оставлять позиции если стальные яйца, можете торговать со среды на четверг если нет новостей, но при оптимизации гэпы портят тесты очень сильно. Например, идет тест - средние профиты 5-12 старых пунктов, средние убытки - 2-5 пунктов. И тут вдруг гэп - минус 80 старых пунктов. В режиме оптимизации мы отбракуем этот проход, т.к. просадка будет большой хотя в будущем такого гэпа может больше не быть очень долго, а сам проход без этого гэпа был бы вполне конкурентоспособным. То же самое с плюсовыми гэпами - они бывают по 120 старых пунктов и этот проход сразу оказывается в лидерах из-за одной такой сделки, хотя не факт что такая удачная сделка в будущем еще случиться и далеко не факт что в реале этот гэп также удачно отработает как в тестере.

Поддерживаю. Именно для оптимизации такая функция закрытия позиций в пятницу будет полезна.
#1838
nikus444, вы с 11.86 перешли? Они были и в предыдущих версиях, просто с версии 11.89.1 добавлен вывод всех возможных ошибок в конце тика, а до этого они игнорировались.

Это не критичные ошибки, на моих счетах они вообще не возникли.

А оставлять или нет на реале в неделю выборов в США решать только вам.

Ну и журнал советника просматривайте.
#1839


nikus444, вы с 11.86 перешли? Они были и в предыдущих версиях, просто с версии 11.89.1 добавлен вывод всех возможных ошибок в конце тика, а до этого они игнорировались.

Это не критичные ошибки, на моих счетах они вообще не возникли.

А оставлять или нет на реале в неделю выборов в США решать только вам.

Ну и журнал советника просматривайте.


да с 11.86 перешел на 11.92.2 и 11.93. просто люди отписываются в соседней ветке что другие версии на тикмиле открывали сделки на гепах а у меня 11.86 не на одном счете на тикмиле реале не открыла.
#1840


...
Но зачем подавлять дух тех кто делает что-то? )
...



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


...
но - время - к сожалению успеваю читать ветку только по ночам и не каждый день...
...



И так большинство. Значит, тоже в Отчимы не годишься. Будем искать дальше.

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

Изменено 7 ноября, 2016 пользователем SebastianPerreira

#1841
nikus444, я надеюсь что в соседней ветке скоро будут отписываться более информативно, c 11.93 теперь в журнале есть цена границы канала и цена bid по которой было пробитие канала. По этим данным легко проверить у себя, были такие же условия, или цена даже не дошла до канала, а если дошла то какой фильтр запретил вход.


#1842


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


master_255 я как понимаю сеты на 11.93 можно использовать от 11.86???
#1843

В соседней ветке вообще ,полный аут там человек написавший супер ботов и возглавляющий несколько мест
в топ 20 мкл5 :)),граальщик одним словом ,не видитесь на соседнюю ветку ,здесь своя и здесь нет таких талантов
тем более если вам в личке будут втирать про какие то топы ,хотя в 20е не адекватных программеров мкл5
я думаю у него все 20 мест

Это так лирика

А по существу послушайте Старика ,хотя бы чуть чуть


master_255 хотелось бы попросить вас ,первым делом обратить внимание на функцию открытия ордеров ,а конкретно на цикл и что в нём происходит

к чему это приводит можно глянуть здесь /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=316017 и брокер здесь не причём ,думаю не дай бог произойдет ,какая либо задержка связи либо ещё какой сбой на стороне любимого брокера ,и все тысячи пользователей получат
сюрприз и потом будет поздно что надо было послушать Старика ,и начать хотя бы работу над ошибками


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

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

Думаю изложил свою мысль без загадки ребусов :-ss

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

#1844
pegaskrs, напиши свою версию бота каким ты считаешь он должен быть и выложи. Покажи всем, что и как. А то пока только ребусы и сёр от тебя. Сам себя самым вумным считаешь, ну и нам докажи, чего уж, мы согласимся если так.
#1845

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



#1846
pegaskrs, я посмотрел её после вашего сообщения в ветке 13-й версии. Единственное что заметил if(ticket > 0), где тикет это номер тикета возвращаемый функцией OrderSend, по мануалу написано что при ошибке значение "-1", и в редких ситуациях когда тикет будет равен "0", откроется второй ордер.

Сегодня исправлю.

По поводу цикла, если OrderSend не вернул ошибку из него(цикла, а вернее всей функции) производиться выход return'ом.
Может я что то упускаю и вы смоделируете нам ситуацию когда OrderSend вернет тикет а return будет пропущен?
#1847

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


Добавлено: 07-11-2016 12:47:19

Спойлер

for(int count = 0; count price = cmd==OP_BUY ? Ask : Bid;
uint start=GetTickCount();
int ticket = OrderSend(_Symbol, cmd, lots, price, slippage, 0, 0, Comm, MagicNumber, 0, col_type);

if(ticket > 0){
uint time=GetTickCount()-start;
bool exit_loop = false;
int retry = 10;
int cnt1 = 0;

while(!exit_loop && cnt1 exit_loop = OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
if(exit_loop){
double Slp = NormalizeDouble((cmd==OP_BUY ? OrderOpenPrice() - price : price - OrderOpenPrice())/old_point,1);
Print(Hour(),":",Minute()," | ",__FUNCTION__,": ",type," price / cmd / slip / delay = ",OrderOpenPrice()," / ",price," / ",DoubleToString(Slp,1)," point / ",time," ms, channel price / bid = ",NormalizeDouble(cmd==OP_BUY ? channel_lower - Entry_Break * old_point : channel_upper + Entry_Break * old_point,_Digits)," / ",signalbid,", WorkTime = ",WorkTime," ms");
BrokerStatWrite(ticket,"open","ea",Slp,time,WorkTime);
}else
Sleep(1000);
cnt1++;
}
if(!exit_loop) Print(Hour(),":",Minute()," | ",__FUNCTION__," ",fMyErDesc());

return(true);
}else{
Print(Hour(),":",Minute()," | ",__FUNCTION__,": ",type," not open by price: ",price,", ",fMyErDesc());

Sleep(1000);
RefreshRates();
}
}



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

хотелось бы увидеть примерно так только не использовать while
Спойлер


int SendOrderTest (int Type,double PriceOpen, double Lots, double TP, double SL, int Smagic, string Cmnt){
color ColorSend=0;
int Ticket=0, Err=0;
PriceOpen = NormalizeDouble( PriceOpen, Digits);
if(Type==OP_BUY){ColorSend = clrBlue;SL = 0; }//NormalizeDouble( PriceOpen - StopLoss*FPoint, Digits);
if(Type==OP_SELL){ColorSend = clrRed;SL = 0; }//NormalizeDouble( PriceOpen + StopLoss*FPoint, Digits);
while(!IsStopped()){
if (!IsTesting()&&!IsOptimization()){ //Если мы не в режиме тестирования
if(!IsExpertEnabled()){Error = 133;if (Debug!=0){Print (__FUNCTION__,ErrorDescription(Error));}return(-1);}
if(!IsConnected()){Error = 6;if (Debug!=0){Print(__FUNCTION__,ErrorDescription(Error));} return(-1);}
if(IsTradeContextBusy()){if (Debug!=0){Print(__FUNCTION__," Trade flow is busy !");Print(__FUNCTION__,StringConcatenate(" Expect ",PauseTrade," seconds"));}
Sleep(PauseTrade*1000);
continue;}
}
string NameOP=GetNameOP(Type);

if(IsTradeAllowed()){
//Print("Lots: ="+LotRound(Lots));
if(!Spreades()&&!IsTesting()&&!IsOptimization()) {if (Debug>1){Print(__FUNCTION__,StringConcatenate(" Spred Filter StopOpen ",NameOP," Spred ",Spread/fpoint));}return(-1) ;}
if(!Leverages()&&!IsTesting()&&!IsOptimization()){if (Debug>1){Print(__FUNCTION__,StringConcatenate(" Leverage Filter StopOpen ",NameOP," Leverage ",Leverage));}return(-1) ;}
if(!StatusNewOrders( Type,Lots)){return(-1) ;}
if (Debug==2) Print(__FUNCTION__,StringConcatenate(" Order: ",NameOP," / "," Price=",PriceOpen," / ","Lot=",Lots," / ","Slip=",Slip," pip"," / ",Cmnt));
RefreshRates();
if(Type==OP_BUY) PriceOpen = NormalizeDouble( Ask , Digits);
if(Type==OP_SELL)PriceOpen = NormalizeDouble( Bid, Digits);
Ticket = OrderSend(Symbol(), Type, Lots, PriceOpen, (int)Slip, 0, TP, Cmnt, Smagic, 0, ColorSend);
if(Ticket Err = GetLastError();
if(Err == 4 || Err == 129 || Err == 130 || Err == 135 || Err == 137 || Err == 138 || Err == 146 || Err == 136 )
{if (!IsTesting()&&!IsOptimization()){
if (Debug!=0){Print(__FUNCTION__,StringConcatenate(" Error(OrderSend - ",Err,"): ",ErrorDescription(Err), ")"));
Print(__FUNCTION__,StringConcatenate(" Expect ",PauseTrade," seconds"));}
Sleep (PauseTrade*1000);
continue; }
}else{ if (Debug!=0)Print(__FUNCTION__,StringConcatenate(" Critical error(OrderSend - ",Err,"): ",ErrorDescription(Err), ")")); break;}
}
break;
} else {if (Debug!=0)Print (__FUNCTION__,ErrorDescription(133));break; }
}

if(Ticket > 0){if(Debug==2) Print(__FUNCTION__,StringConcatenate(" The order has been sent successfully. Ticket = ",Ticket));}
return(Ticket);
}




В картинках у меня не сохранилось так как ,генерика ставил на демо месяца два назад ,и несколько раз были подарки ,и не такие как от форекс4ю ,а такие про которые мы с вами говорим ,когда не дождались ответа сервера отправили несколько запросов а потом спустя 30-40 секунд появились ордера

Добавлено: 07-11-2016 13:00:52

представьте что нам не вернули тикет сейчас а вернут позже ,через пару секунд после нашей паузы

Изменено 7 ноября, 2016 пользователем pegaskrs

#1848

То есть нужно добавить проверку типа ошибки, понял.

Не думал что OrderSend может вернуть ошибку при на самом деле открытии сделки, но сейчас пересмотрев журнал Strigh, когда был перегружен vps и открылась куча ордеров, понял что 128 (ERR_TRADE_TIMEOUT) в принципе означает что сделка могла быть открыта.

#1849


То есть нужно добавить проверку типа ошибки, понял.

Не думал что OrderSend может вернуть ошибку при на самом деле открытии сделки, но сейчас пересмотрев журнал Strigh, когда был перегружен vps и открылась куча ордеров, понял что 128 (ERR_TRADE_TIMEOUT) в принципе означает что сделка могла быть открыта.


Hi, master, do we need to change setfile - for the GMT+3 => GMT+2 change?
Thanks !
#1850
Цитата

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


Он точно сигнал подавал - Generic A-TLP 11.93 GBPCHF,M15: 0:39 | SELL: order #25269718 Filter output №3. MA rises and a floating profit more 20.0 points. и еще так несколько сделок закрыл, остальные я вручную закрывал. Все сделки он закрывал без трала и без стопа. Сигнал по фильтру - сделка закрыта, на графике он даже МА нарисовал, но сделку на графике не обозначил где закрыл и ошибка 4051, постоянно вываливающаяся именно в этой версии сова напрягает.. и так по всем парам которые он закрывал и на 2 брокерах, на которых стоял. И это появилось именно в версии 11.93. Тестировал все ваши версии вплоть до 11.92 - такого, чтоб робот на графике не показывал, где он закрывает сделку, нигде не наблюдалось..

Изменено 7 ноября, 2016 пользователем FERRARI2009

#1851

Версия 11.94

[list type=decimal]

  • Установлены типы ошибок при которых разрешено повторять запрос на открытие, а именно:
    ERR_INVALID_PRICE
    ERR_PRICE_CHANGED
    ERR_REQUOTE
    ERR_OFF_QUOTES
    ERR_TRADE_CONTEXT_BUSY
    при любой другой ошибке будет выход из цикла.

    Есть еще сомения по поводу:
    ERR_SERVER_BUSY
    ERR_BROKER_BUSY
    (повторять / не повторять) после них попытку открытия? В мануалах нет конкретного описания что после какой ошибки происходит, тут только опыт нужен, я эти ошибки в реальности не встречал.


  • Поправлена высота инфо панели


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


  • Добавлены доп. проверки в некоторые функции, чтобы локализовать ошибки обнаруженные FERRARI2009, или исключить их.

  • Generic_A-TLP_11.94.mq4221 скач.

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

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