На сейчас ботом активно обрабатывается только одна ситуация с недостаточностью денег на открытие ордера (no money): когда есть мартин гэп, включена обработка мартин гэпа увеличенным ордером Inc_lot - и если средств недостаточно на открытие увеличенного ордера, то бот попробует открыть ордер обычного размера (как при no_gap, т.е. без учета необходимости увеличить ордер для демпфирования импульса).
Реализовано с версии 1.25. :)
Что касается непосредственно вопроса никсера...
Можно добавить в выводимое в журнал сообщение сколько денег надо на залог для открытия неоткрытого ордера.
Наверно, можно посчитать сумму лотов (включая неоткрытый по no money) и также выдать в то же сообщение сколько денег надо на каждые 10пп просадки с учетом неоткрытого ордера.
Ну и на экран об этом стоит сообщать...
А с деньгами пусть человек дальше решает...
P.S. Кстати, пример обработки сегодняшних нонфармов отложками.
Из 10 ордеров сетки 4 отложки, которые совсем не грузят депо.
Сетка достаточно густая, дальше пойдет постепенное увеличение шага и уменьшение мульта с растягиванием сетки, если надо, и на 700+ пипсов.
Добавлено: 06-11-2015 21:32:14
Monroff очередная благодарность с занесением за найденный баг, проявлявшийся только при работе на 4-хзнаке!
Это моя вина, я должен был проверить работу бота на 4-хзнаке и намного раньше выявить некорректность в боте. :">
Но Monroff, неотвратимый как само возмездие, не оставил мне шанса схалтурить и сохранить в боте тщательно замаскированный баг.
В общем, очередная награда в виде всех плюсов заслуженно находит героя! :)
Исправлено: на 4-хзнаке и 5-тизнаках исправленная версия тестится - в части расчета и контроля по таймеру ТР сеток пока замечаний нет.
-----
СпойлерВчера на том же самом кенгуру в те же самые 3.30 МСК были ставка и заявление РБА.
Прилагаю скрины.
На audcad цена, секунд за 20 до новости, сначала упала на 87 (!!) 4-хзначных пипсов - закрыв сэлл сетку по серверному ТР за 9 секунд до новости с плюсовым проскальзыванием 14 пипсов (4-хзнак).
Всего через 11 (!!) секунд, поднявшись за 11 секунд почти на 130 (!!!) 4-хзначных пипсов, через 2 секунды после выхода новости цена закрыла старую бай сетку по серверному ТР с плюсовым проскальзыванием 6 пипсов (4-хзнак).
Если бы ТР был не серверный, а виртуальный, ДЦ/терминал почти наверняка не дали бы боту (даже при нашем умном алгоритме обработки проскальзываний) закрыть обе сетки по ТР и существовал абсолютно реальный риск закрытия части ордеров по ценам на 100+ 4-хзначных пипсов хуже, чем по ТР.
Вы точно осознанно хотите в это играться - в риски закрыть сетку или часть сетки на сотню пипсов хуже, чем по серверному ТР?!
Ну вообще возможны варианты, цена могла тиками задеть серверный ТП и откатить, тогда проскальзывание было бы отрицательным, вплоть до минуса от сетки.
Более того, я встречал ситуации, когда цена пробивала уровень серверного ТП сетки, цвет ТР в терминале менялся на желтый - но ордера сетки не закрывались и один раз висели так несколько минут.
Т.е. перегруженный сервер в течение секунд не смог закрыть ордера по ТР - а потом еще и загрустил на какое-то время.
Но это крайняя редкость - в абсолютном большинстве случаев достаточно касания ценой (одним тиком) серверного ТР сетки для закрытия сервером всех ордеров сетки.
За последние 50 дней тестов эксцессов при закрытии сетки по ТР на сервере не было.
Ну и после касания ценой уровня ТР сетки включается блок зачистки, который будет добивать сетку, пока все ордера точно будут закрыты.
В общем, я бы сказал так - риски не закрытия рыночных ордеров сетки или закрытия их по существенно худшей цене, при ТР на сервере, существуют, но ничтожно малы.
При виртуальном ТР риск закрытия по худшей цене намного выше. Мы это случайно достаточно обширно проверили и убедились, что да.
СпойлерА виртуальный-то ТР здесь вообще с какого бока?!
Какое он имеет отношение к "цена коснулась ТР, откатила, а потом переступила и пошла дальше ТР"?!
Вы не пытайтесь подменить неверно (недостаточно большой) выставленный пользователем ТР виртуальным ТР.
Виртуальный ТР должен делать то же, что и серверный - немедленно закрывать сетку, как только цена дойдет до заданного вами уровня.
Виртуальный ТР должен срабатывать абсолютно там же, где и серверный ТР - это ж вы его туда сами поставили настройками.
А то, что потом цена пошла дальше и вы "недобрали прибыли" - так это вопрос не к боту, не к виртуальности ТР, а исключительно к заданным вами в настройках размеру ТР.
Прошу прощения, я имел в виду не совсем "виртальный ТП", а скажем так: закрытие ордеров после пересечения ценой уровня ТП, скажем секунд через 5, но Вы правы, получится ерунда.
Ну почему, алгоритм понятный: виртуальный ТР сетки - и закрытие на 5-10 (задается) секунд после достижения ценой уровня ТР сетки.
Конечно, в случае импульса это может принести несколько дополнительных пипсов прибыли - а может и много.
Но это чистой воды лотерея: можете выиграть - можете проиграть.
Такой алгоритм реализовать, насколько понимаю, для QJ дело незначительного времени.
Но я бы сейчас от этого воздержался - есть намного более важные доработки и новые опции и лучше не распыляться.
Как альтернативу я бы предложил вам просто увеличить или уменьшить TakeProffit сэлл или бай сеток до/пропорционально уровней, которые считаете достижимыми на новостях.
Настройки в боте полностью раздельны - вы можете максимально точно задать как вам надо по фундаменту.
Ну и что, что новости по кенгуру или Китаю глубокой ночью: на ночь увеличьте TakeProffit пропорционально размера/уровней вероятного импульса, "выставьте" на графике ТР сетки в район уровня, куда может прискакать цена - и отдыхайте. :)
А утром задайте TakeProffit обычного размера.
Будет время - проверю онлайн корректность работы бота при уменьшении пользователем TakeProffit до значения, при котором новый ТР сетки окажется хуже, чем текущая цена.
Мы с QJ сегодня специально обсудили такой вариант и пришли к выводу, что если текущая цена окажется лучше обычного уровня ТР сетки, то после восстановления/ввода вами обычного TakeProffit, бот рестартует и немедленно закроет сеть по (текущей) лучшей цене - и штатно продолжит работу.
Имхо, это не просто нормальное - это даже красивое и вполне эффективное решение.
Открыто несколько центовых счетов, экспериментирую с настройками, подбираю постепенно параметры.
На одном терминале, был поменян счет и решено изменить режим запуска первого ордера.
Хотел попробовать открытие первого ордера после двух свечей М5 в противоход (чисто визуально во флете возможно будет лучше?).
На AUDCAD произошло одновременное открытие первых колен и на бай(в 21:11:54.299 времени лога), и на селл(21:11:59.400 времени лога). Логи приложил.
Если я правильно понимаю, селл был открыт правильно, а на бай условие не было соблюдено?
P.S. Пока писал, кажется догадался, нужно было как минимум перезагрузить терминал, как максимум перезагрузить терминал и в новой вкладке (по новой так сказать) открыть советник, загрузив нужный сет. Просто многие параметры сов позволяет менять, можно сказать "на лету"(Qj, Старик, балуете нас), вот и расслабился ). Удалять пост уж не стал..
Лог с нештатным открытием первого ордера сетки нами сохранен - и отдельное спасибо за эталонное название файла.
Пока у нас в тестах ни разу не было обнаружено случайного открытия первых ордеров и почему у вас так произошло, пока непонятно.
У меня есть легкое недоверие к кроссам - точнее, к достоверности выдаваемой терминалом информации по кроссам.
Понимаете, я в среднем 4-5 раз в день проверяю/пересчитываю почти всё в 7-8 демках - шаги сеток, мульты, оцениваю размеры ТР и соблюдения условий входа первых ордеров сеток. Все демки ряда пар имеют не повторяющиеся настройки и работают очень по разному.
То есть немало тысяч пересчетов ордеров и параметров сеток за 50 дней тестов мною сделаны, где-то 80%+ первых входов точно проверены. :)
Пока открытие ботом первого ордера от балды не подтверждается. Так что может у вас всё же терминал боту разок сбрехал - на кроссе.
Но на контроле - тем более в связке с реверсом.
-----
А вот что касается опции реверса...
Это да - хитрая штучка! :d
У этой опции (ReversSignalToOpen1Order=true) есть очевидные недостатки:
1) в выраженном безоткате не будет минимальных ордеров по ходу движения - теряется покрытие минимальной прибылью таких движений.
2) количество колен в сетках почти наверняка будет на 1-2 меньше - что влияет на прибыльность, так как прибыль в основном геометрически пропорциональна количеству колен в сетке (точнее, сумме лотов ордеров).
3) количество сеток тоже может быть меньше, причем ощутимо - потому что при входе реверсом первый ордер намного чаще в одиночку закрывается в прибыль, не породив сетку.
4) количество сеток тоже может быть меньше, причем ощутимо - особенно если применяются фильтры CandlesToOpen1Order_MinPips и/или CandlesToOpen1Order_MaxPips (плюс CandlesToOpen1Order_OpenClose с 1.26)
Но есть у этой опции и очевидные существенные плюсы в вопросе снижения рисков торгов мартином::
1) при правильных подстройках бот почти никогда не купит на хае и не продаст на лое. (Хотя этого можно добиться и по иному.)
2) во флэте торги на отбой исполняются очень хорошо, причем, вероятно, в ночь бот будет часто уходить без ордеров или с минимальными.
3) оптимальное (по рынку) снижение количества сеток и колен в сетках очевидные факторы повышения безопасности торгов мартин ботом.
В общем, при включенном реверсе сигнала безиндикаторного входа торги отличаются не то чтобы радикально, но существенно.
Включенный реверс может потребовать существенно отличающиеся сэты и даже ММ и допускает особые разновидности как консервативных, так и экстремальных торгов.
Я пока присматриваюсь к входу по реверсу на 3-2-х свечах м5 с возможным включением фильтров CandlesToOpen1Order_MinPips=10+ и/или CandlesToOpen1Order_MaxPips=40+.
Обширненькая такая тема этот реверс...
