Автор#176

Просадка почти в два раза меньше :) у моих настроек. Но и прибыль немного меньше :(

Странно почему разница в непрерывном проигрыше и непрерывном выигрыше?

В идеале, два теста надо гнать с одинаковыми настройками!


Добавлено: 16-05-2012 00:10:14


Ладно как я понимаю работам дальше по плану :



Теперь по внесенным изменениям в мод 002 - предложения и уточнения.

1) по залогу открываемого ордера.
Сделанная вами доработка достаточна - первая задача исключить попытки выставления ордеров при "no money".
Согласен с тем, что в будущем обязательно при инициализации бота надо просчитывать всю запрошенную сетку (залоги+просадки+стопы) и выдавать на экран и в журнал цифру какой нужен минимальный депо.
Однако, при недостатке депо на всю пирамиду, просто блокировать торговлю, имхо, нельзя - надо ввести управляющую переменную разрешения/запрета торговли при недостатке денег на построение всей сетки.
AllowTradeLessMoney, например.
Торговать или нет при недостатке денег - это выбор/решение пользователя.
Но крайне желательно, чтобы на экран выводилась минимально необходимая сумма для построение заданной сетки - и, в случае, установленного пользователем запрета торговать, советник торговлю и не начинал.
Но это можно сделать и немного позже - тем более что контрольные цифры я сейчас и готовлю, может пригодятся при проверке.

---

2) Увеличение лота ордера при гэпе / проскальзывании.
Возможно, что мое первое предложение не оптимальное - или можно придумать более оптимальную формулу.
В принципе, при гэпе основных вариантов 3 - ничего не делать, увеличить лот или удлинить ТП.

Правда, лично я при торговле применяю более тонкий алгоритм - ТП ордера обычной лотности, открытого после гэпа, я устанавливаю на позицию пипса на 3 дальше, чем этот ордер должен был открыться без гэпа.
Если курс разворачивает и идет назад к началу пирамиды, старший ордер закрывается по ТП - а Хакет тут же выставляет точно такой же ордер почти там, где ордер и должен был быть открыт без гэпа.
При этом:
а) получаем профит на закрытии гэпа;
б) не получаем дополнительной просадки от увеличения ордера;
в) геометрия сетки практически полностью восстанавливается.

Посмотрите, вроде стоит реализовать этот алгоритм.
Если получится, то обратите внимание:
а) при гэпе задается ТП только последнего, далеко выставляемого ордера - ТП всех ранее открытых ордеров менять не надо;
б) разберитесь с ask/bid/спрэд - для селл/бай и разных счетов их надо учитывать, чтобы корректно выставить ТП ордера, выставляемого после гэпа;
в) гэпы часто бывают небольшими. Если можно старшему ордеру, выставить ТП хотя бы 5 пипс, выставляйте - если нет, то открывайте ордер обычного размера и перевыставляйте ТП всех ордеров пирамиды.

---

3) Флаг AllowExtraOrders разрешающий / запрещающий открывать ордера сверх заданного уровня пирамиды.

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

----

4) Флаги разрешающие открывать первую сделку в пирамиде: Allow1Buy и Allow1Sell.

Из вашего описания не понятно будет ли бот открывать 2-й и последующие ордера серии/пирамиды, если пользователь выставит первый ордер скриптом с маджиком бота.
Вообще-то именно так и надо.
Так у вас как реализовано: полный запрет работы по селл или бай направлению - или бот со 2-го ордера включится, если первый ордер пользователь выставит сам?

----

5) По индикаторам. Ваши соображения понятны и весомы.
Однако на других парах кто знает как себя индикаторы поведут.
В связи с этим просьба рассмотреть такие соображения:
а) все же сделать on|off переключатель использования индикаторов;
в) возможно, настройки индикаторов вынести во внешние переменные;
в) в индикаторах явно учитывать ТФ из внешних переменных (или прямо прописать), чтобы пользователи могли торговать ботом на графиках любых ТФ, в частности, используемых в их ТС. Не уверен, что это возможно - но очень желательно.

----------

Ну, и напоследок еще одно предложение.

Ввести логическую переменную Order2Booster
Order2Booster = true 2-й ордер пирамиды равен lots * booster
Order2Booster = false 2-й ордер пирамиды равен lots, первому ордеру без умножения на booster.

Второй ордер при ТП > шага не обязательно умножать на бустер, все равно профит будет.
Зато такая штучка позволит удлинять безопасную сетку на 1 колено.

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

Изменено 16 мая, 2012 пользователем KROOL1980

#177


Добавлено:
1. Проверка на нехватку денег для залога по открываемому ордеру.
Требуется, чтобы хватило денег на залог и на просадку величиной PipStarter (до следующего ордера пирамиды). Если денег не хватает, робот запишет одно сообщение в лог-файл и в чарте в комментариях добавит строку вида "LOW BALANCE! Needed: $$$$$.$$", где сказано какая сумма требуется для открытия следующего колена пирамиды. Мне кажется, что все же логичнее вообще не начинать пирамиду, если не хватает денег на полное число колен. Но пока проверяется только наличие денег на один открываемый ордер.


kiocera, по-моему ты неправильно считаешь залог. Т.е., ты считаешь залог на просадку величиной PipStarter только для открываемого ордера. А те ордера, которые уже висят - они съедят дополнительную маржу при просадке, так что деньги кончатся гораздо раньше цены открытия следующего колена пирамиды. Или я чего-то недосмотрел?
#178


kiocera, по-моему ты неправильно считаешь залог. Т.е., ты считаешь залог на просадку величиной PipStarter только для открываемого ордера. А те ордера, которые уже висят - они съедят дополнительную маржу при просадке, так что деньги кончатся гораздо раньше цены открытия следующего колена пирамиды. Или я чего-то недосмотрел?



Да, верно. Расчет с ошибкой. Просадку от уже открытых ордеров не учитываю. Будем исправлять.
#179
Kvarz, для сопоставимости результатов надо было задать одинаковый максимум выставляемых ордеров.
От 8 колена ордера очень объемные, всего 2-3 сделки на этих уровнях существенно влияют на итог.
Стоило в тесте 2.3 поставить 9 колен и тогда бы мы смогли увидеть за счет чего +50% прибыли - только за счет более густой сетки или еще и более крупные ордера выставлялись.

А так, конечно, цифры очень интересные...
На старом боте сделок 491, но новом 605 - это +23%, за счет сужения сетки и ордеров открывалось больше, и ТП чаще срабатывал.
На старом боте прибыль 3939, на новом 5929 - это +51%.
А это значит, что и колен в пирамидах было больше - потому что средний профит от одного ордера вырос на 23%.
Вот что значит более точно настроенная на рынок сетка!...

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

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

Изменено 16 мая, 2012 пользователем Старик

#180



kiocera, по-моему ты неправильно считаешь залог. Т.е., ты считаешь залог на просадку величиной PipStarter только для открываемого ордера. А те ордера, которые уже висят - они съедят дополнительную маржу при просадке, так что деньги кончатся гораздо раньше цены открытия следующего колена пирамиды. Или я чего-то недосмотрел?



Да, верно. Расчет с ошибкой. Просадку от уже открытых ордеров не учитываю. Будем исправлять.

На самом деле все еще немного хитрее. Всю маржу невозможно использовать. Минимальный уровень - это или уровень стоп-аута, или уровень останова по проценту от депозита в настройках сова. Поэтому требуемый уровень средств надо рассчитывать так: минимальный уровень + залог за новый ордер + просадка на одно колено от всех ордеров, включая новый.
#181


1) по залогу открываемого ордера.
Сделанная вами доработка достаточна - первая задача исключить попытки выставления ордеров при "no money".
Согласен с тем, что в будущем обязательно при инициализации бота надо просчитывать всю запрошенную сетку (залоги+просадки+стопы) и выдавать на экран и в журнал цифру какой нужен минимальный депо.
Однако, при недостатке депо на всю пирамиду, просто блокировать торговлю, имхо, нельзя - надо ввести управляющую переменную разрешения/запрета торговли при недостатке денег на построение всей сетки.
AllowTradeLessMoney, например.
Торговать или нет при недостатке денег - это выбор/решение пользователя.
Но крайне желательно, чтобы на экран выводилась минимально необходимая сумма для построение заданной сетки - и, в случае, установленного пользователем запрета торговать, советник торговлю и не начинал.
Но это можно сделать и немного позже - тем более что контрольные цифры я сейчас и готовлю, может пригодятся при проверке.



Насчет переменной согласен. Мне уже правильно указали, что я занижаю требования, так как не учитываю потери на уже открытых ордерах. Оценить сумму на открытие всей пирамиды просто. Вопрос в том, какой стоп брать? Залог за всю пирамиду вычисляется легко. А какой уровень брать за уровень стоплосс? Тот что указан в настройках бота или расстояние до наибольшего ордера пирамиды? Если из настроек бота, то там стоп около 240-250 пунктов. Немаленькая такая просадка набежит. А если до наибольшего ордера - получим заметно меньшую сумму.

Так что давайте решим совместно, какой вариант сделать.


2) Увеличение лота ордера при гэпе / проскальзывании.
Возможно, что мое первое предложение не оптимальное - или можно придумать более оптимальную формулу.
В принципе, при гэпе основных вариантов 3 - ничего не делать, увеличить лот или удлинить ТП.

Правда, лично я при торговле применяю более тонкий алгоритм - ТП ордера обычной лотности, открытого после гэпа, я устанавливаю на позицию пипса на 3 дальше, чем этот ордер должен был открыться без гэпа.
Если курс разворачивает и идет назад к началу пирамиды, старший ордер закрывается по ТП - а Хакет тут же выставляет точно такой же ордер почти там, где ордер и должен был быть открыт без гэпа.
При этом:
а) получаем профит на закрытии гэпа;
б) не получаем дополнительной просадки от увеличения ордера;
в) геометрия сетки практически полностью восстанавливается.

Посмотрите, вроде стоит реализовать этот алгоритм.
Если получится, то обратите внимание:
а) при гэпе задается ТП только последнего, далеко выставляемого ордера - ТП всех ранее открытых ордеров менять не надо;
б) разберитесь с ask/bid/спрэд - для селл/бай и разных счетов их надо учитывать, чтобы корректно выставить ТП ордера, выставляемого после гэпа;
в) гэпы часто бывают небольшими. Если можно старшему ордеру, выставить ТП хотя бы 5 пипс, выставляйте - если нет, то открывайте ордер обычного размера и перевыставляйте ТП всех ордеров пирамиды.



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

1-й - увеличиваем лот, 2-й ставим стандартный лот, но короткий ТП, чтобы восстановить геометрию при возврате.


3) Флаг AllowExtraOrders разрешающий / запрещающий открывать ордера сверх заданного уровня пирамиды.

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



Собственно устранять там нечего. При AllowExtraOrders = false лишние ордера не откроются. Правда результаты тестов в таком случае заметно менее прибыльны. Думаю надо сделать какой-то вариант хеджирования, когда пирамида уже выстроена полностью и мы продолжаем получать убыток. Если бы кто подсказал логику, я бы ее реализовал. Мне непонятно на каком расстоянии от старшего ордера открывать сделку в противоположном направлении, какой ставить объем и в какой момент закрыть.


4) Флаги разрешающие открывать первую сделку в пирамиде: Allow1Buy и Allow1Sell.

Из вашего описания не понятно будет ли бот открывать 2-й и последующие ордера серии/пирамиды, если пользователь выставит первый ордер скриптом с маджиком бота.
Вообще-то именно так и надо.
Так у вас как реализовано: полный запрет работы по селл или бай направлению - или бот со 2-го ордера включится, если первый ордер пользователь выставит сам?



Да, это флаги на запрет первого ордера. Если открыть его скриптом бот выстроит пирамиду.


5) По индикаторам. Ваши соображения понятны и весомы.
Однако на других парах кто знает как себя индикаторы поведут.
В связи с этим просьба рассмотреть такие соображения:
а) все же сделать on|off переключатель использования индикаторов;
в) возможно, настройки индикаторов вынести во внешние переменные;
в) в индикаторах явно учитывать ТФ из внешних переменных (или прямо прописать), чтобы пользователи могли торговать ботом на графиках любых ТФ, в частности, используемых в их ТС. Не уверен, что это возможно - но очень желательно.



Переключатель сделаю: UseIndicators = true / false. Параметры индикаторов вынесу во внешние переменные. Кроме шага параболика на результат остальные параметры почти не влияют.


Ну, и напоследок еще одно предложение.

Ввести логическую переменную Order2Booster
Order2Booster = true 2-й ордер пирамиды равен lots * booster
Order2Booster = false 2-й ордер пирамиды равен lots, первому ордеру без умножения на booster.

Второй ордер при ТП > шага не обязательно умножать на бустер, все равно профит будет.
Зато такая штучка позволит удлинять безопасную сетку на 1 колено.

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



Согласен, добавлю.
#182

кстати...
можно внести еще одну функциональность, которая может пригодится.
а именно - функцию корректного сворачивания. некая переменная типа StopBuyAfterTP или StopSellAfterTP, либо универсальную на обе стороны StopAfterTP (с автоматическим контролем - закрыл СЕЛЛ в профит значит больше СЕЛЛ не открывает, ждет чтоб закрыть БАЙ), которая запретит советнику открывать новые позиции при достижении ТП в эту сторону. Это позволит при необходимости сворачивания советника на счете (ну мало ли зачем, иногда надо )), но дав ему возможность закрыть уже отстроенные пирамиды или просто болтающиеся ордера в профит. Сейчас для этого придется его останавливать как есть, либо выжидать момент когда убыток станет минимальным.

#183


кстати...
можно внести еще одну функциональность, которая может пригодится.
а именно - функцию корректного сворачивания. некая переменная типа StopBuyAfterTP или StopSellAfterTP, либо универсальную на обе стороны StopAfterTP (с автоматическим контролем - закрыл СЕЛЛ в профит значит больше СЕЛЛ не открывает, ждет чтоб закрыть БАЙ), которая запретит советнику открывать новые позиции при достижении ТП в эту сторону. Это позволит при необходимости сворачивания советника на счете (ну мало ли зачем, иногда надо )), но дав ему возможность закрыть уже отстроенные пирамиды или просто болтающиеся ордера в профит. Сейчас для этого придется его останавливать как есть, либо выжидать момент когда убыток станет минимальным.


да, очень хорошая идея. в Энви такое есть, работает хорошо. причем там эта функция имеет больше настроек
#184
Nefesh, HighLander - уже сделано.

Правда, kiocera не понравились предложенные мной запретительные названия переменных и он применил более позитивные разрешительные, но суть и возможности управляющих переменных не поменялись.

Allow1Buy и Allow1Sell

Эти переменные разрешают автоматическое выставление 1-х бай или селл ордеров пирамид и по умолчанию = True.

Когда понадобится, присваиваете этим переменным значение Allow1Buy=false и/или Allow1Sell=false - и бот не будет выставлять 1-е ордера пирамид после их закрытия по ТП.
Когда закроются обе пирамиды, бота можно снять со счета.

Так же можно поступить при установке бота на новый график без ордеров.
Запрещаете боту открывать 1-е ордера, смотрите что на рынке, решаете в одну или обе стороны торговать - и разрешаете боту торговать в автомате или сами выставляете первый ордер скриптом (можно и отложки выставлять), а бот их будет сопровождать.

-----

К сожалению, при смене названий переменных потерялась связь с моим описанием назначения этих управляющих переменных.
Поэтому повторю что я писал об этих переменных в посте /laboratoriya-profitfx/24/sovetnik-haked-uluchshenie/2156/?do=findComment&comment=27559

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

---

Вроде я ничего не напутал с этими переменными после их переименования.

kiocera, глянул код - отлично пишете, снимаю шляпу!

Изменено 17 мая, 2012 пользователем Старик

#185


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


Цена часто возвращается хотя бы на половину гепа.


Переключатель сделаю: UseIndicators = true / false. Параметры индикаторов вынесу во внешние переменные. Кроме шага параболика на результат остальные параметры почти не влияют.


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

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


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


Всегда прибыльного выхода из хеджа быть не может, поэтому выход из него боту доверять нельзя. Мне кажется единственным небесполезным вариантом была бы такая реализация:
наоткрывали максимально разрешенное количество ордеров;
прошли еще настраиваемое число пунктов против прибыли;
захеджировались лотом равным размеру позы умноженным на настраиваемый коэффициент;
удалили ТП-СЛ с пирамиды;
все, пусть дальше человек сам думает, что с этим делать, раз он зачем то разрешил хеджирование!

Изменено 17 мая, 2012 пользователем 2nb

#186



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


Всегда прибыльного выхода из хеджа быть не может, поэтому выход из него боту доверять нельзя. Мне кажется единственным небесполезным вариантом была бы такая реализация:
наоткрывали максимально разрешенное количество ордеров;
прошли еще настраиваемое число пунктов против прибыли;
захеджировались лотом равным размеру позы умноженным на настраиваемый коэффициент;
удалили ТП-СЛ с пирамиды;
все, пусть дальше человек сам думает, что с этим делать, раз он зачем то разрешил хеджирование!

Поддерживаю данный вариант. Выходить из хеджа всё равно надо руками.
kiocera, а сложно будет реализовать тот функционал, о котором говорил я? (при величине пирамиды больше N (настраивоемое) ордеров выставлять ТП в безубыток). Очень хочется потестить, на сколько это уменьшит просадку. И да, эта функция естественно отключаемая.
#187



1) по залогу открываемого ордера.
Сделанная вами доработка достаточна - первая задача исключить попытки выставления ордеров при "no money".
Согласен с тем, что в будущем обязательно при инициализации бота надо просчитывать всю запрошенную сетку (залоги+просадки+стопы) и выдавать на экран и в журнал цифру какой нужен минимальный депо.
Однако, при недостатке депо на всю пирамиду, просто блокировать торговлю, имхо, нельзя - надо ввести управляющую переменную разрешения/запрета торговли при недостатке денег на построение всей сетки.
AllowTradeLessMoney, например.
Торговать или нет при недостатке денег - это выбор/решение пользователя.
Но крайне желательно, чтобы на экран выводилась минимально необходимая сумма для построение заданной сетки - и, в случае, установленного пользователем запрета торговать, советник торговлю и не начинал.
Но это можно сделать и немного позже - тем более что контрольные цифры я сейчас и готовлю, может пригодятся при проверке.



Насчет переменной согласен. Мне уже правильно указали, что я занижаю требования, так как не учитываю потери на уже открытых ордерах. Оценить сумму на открытие всей пирамиды просто. Вопрос в том, какой стоп брать? Залог за всю пирамиду вычисляется легко. А какой уровень брать за уровень стоплосс? Тот что указан в настройках бота или расстояние до наибольшего ордера пирамиды? Если из настроек бота, то там стоп около 240-250 пунктов. Немаленькая такая просадка набежит. А если до наибольшего ордера - получим заметно меньшую сумму.

Так что давайте решим совместно, какой вариант сделать.

Думаю, на данном этапе стоит остановиться на стопе из настроек бота - а позже, может, еще подумаем.

я вывел для себя формулу стопа вида iStopLoss = PipStarter*5 + 4 (возможно, от 2 до 5)
Почему - позже выложу пост.
На настройках Крола стоп у меня 164 пипса.

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

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



2) Увеличение лота ордера при гэпе / проскальзывании.
Возможно, что мое первое предложение не оптимальное - или можно придумать более оптимальную формулу.
В принципе, при гэпе основных вариантов 3 - ничего не делать, увеличить лот или удлинить ТП.

Правда, лично я при торговле применяю более тонкий алгоритм - ТП ордера обычной лотности, открытого после гэпа, я устанавливаю на позицию пипса на 3 дальше, чем этот ордер должен был открыться без гэпа.
Если курс разворачивает и идет назад к началу пирамиды, старший ордер закрывается по ТП - а Хакет тут же выставляет точно такой же ордер почти там, где ордер и должен был быть открыт без гэпа.
При этом:
а) получаем профит на закрытии гэпа;
б) не получаем дополнительной просадки от увеличения ордера;
в) геометрия сетки практически полностью восстанавливается.

Посмотрите, вроде стоит реализовать этот алгоритм.
Если получится, то обратите внимание:
а) при гэпе задается ТП только последнего, далеко выставляемого ордера - ТП всех ранее открытых ордеров менять не надо;
б) разберитесь с ask/bid/спрэд - для селл/бай и разных счетов их надо учитывать, чтобы корректно выставить ТП ордера, выставляемого после гэпа;
в) гэпы часто бывают небольшими. Если можно старшему ордеру, выставить ТП хотя бы 5 пипс, выставляйте - если нет, то открывайте ордер обычного размера и перевыставляйте ТП всех ордеров пирамиды.



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

1-й - увеличиваем лот, 2-й ставим стандартный лот, но короткий ТП, чтобы восстановить геометрию при возврате.

Как по мне, отлично - можно оба варианта оставить на выбор пользователя.

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



3) Флаг AllowExtraOrders разрешающий / запрещающий открывать ордера сверх заданного уровня пирамиды.

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



Собственно устранять там нечего. При AllowExtraOrders = false лишние ордера не откроются. Правда результаты тестов в таком случае заметно менее прибыльны. Думаю надо сделать какой-то вариант хеджирования, когда пирамида уже выстроена полностью и мы продолжаем получать убыток. Если бы кто подсказал логику, я бы ее реализовал. Мне непонятно на каком расстоянии от старшего ордера открывать сделку в противоположном направлении, какой ставить объем и в какой момент закрыть.



Всегда прибыльного выхода из хеджа быть не может, поэтому выход из него боту доверять нельзя.
Мне кажется единственным небесполезным вариантом была бы такая реализация:
наоткрывали максимально разрешенное количество ордеров;
прошли еще настраиваемое число пунктов против прибыли;
захеджировались лотом равным размеру позы умноженным на настраиваемый коэффициент;
удалили ТП-СЛ с пирамиды;
все, пусть дальше человек сам думает, что с этим делать, раз он зачем то разрешил хеджирование!


Предложение 2nb выглядит вполне разумно.
Но я вариант "ну, не справились!" с постановкой лока без ТП и СЛ и остановкой считаю необходимым, но уж совсем последним.
Стоит подумать можно ли в рамках этого подхода что-то еще попробовать сделать.

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

Да, при локировании одного направления стоит выключить Allow1Buy и Allow1Sell, но оставить стопы и ТП на втором направлении - в общем, оставить возможность штатно по ТП закрыть пирамиду второго направления, после чего бот остановится.

-----

Что касается все еще имеющихся индикаторов, то я так и не понял удалось их прямо "привязать" к часовому ТФ и можно ли теперь людям торговать ботом на любом ТФ, забыв об индикаторах?!
Это важный вопрос.

=====

По остальным вопросам мы с вами вроде все согласовали, взаимопонимание есть.

Полагаю, что следует этот минимальный обговоренный вариант бота с фиксированной сеткой (как есть, пока без трала), после доработки kiocera и тестирования нами:
- зафиксировать как первую стабильную версию,
- описать новые (и оставшиеся старые) переменные и
- выложить в топике эксплуатации Хакета как замену авторских версий 2.3/2.4.


Для начала надо на форуме кривого простого бота с фиксированной сеткой заменить на простого, но корректно работающего бота с фиксированной сеткой.

И только потом смотреть что еще можно сделать и до какого уровня вообще стоит мордовать декомпилированного простого бота
с фиксированной сеткой.

Изменено 17 мая, 2012 пользователем Старик

#188

Мне кажется сегодняшнее состояние Фунта как нельзя кстати подходит для тестирования стратегии, тк нынешний курс идет в разрез алгоритму работы Хакеда. Во вторник открыл демо с 100 баксов центами и лотом 0.06 (просто для эксперимента) и вот щас у меня уже минус половина депо, а Хакед упорно покупает. Лот уже дошел до 4.19 =))

#189



да, 2 лося - это не айс, но и не катастрофа! у меня такое уже было, все равно выйдет из просадки с прибылью! \M/ а вот кто рисковал и не соблюдал рекомендованного ММ.... x_x


У меня почемуто 5 лосей получилось

странно.... посмотри мониторинг на Роботесте, там больше 2-х подряд за 7 месяцев не было!
#190


Мне кажется сегодняшнее состояние Фунта как нельзя кстати подходит для тестирования стратегии, тк нынешний курс идет в разрез алгоритму работы Хакеда. Во вторник открыл демо с 100 баксов центами и лотом 0.06 (просто для эксперимента) и вот щас у меня уже минус половина депо, а Хакед упорно покупает. Лот уже дошел до 4.19 =))


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

0.06 лота на десятке депо сливные, по моим оценкам вряд ли можно более 0.04 в такие периоды торгов как сейчас.

Парни, считать лосей просьба в старый топик, где эксплуатация Хакеда.

Изменено 18 мая, 2012 пользователем Старик

Автор#191

Такие движняки по фунту заставляют задуматься о динамической сетке.

#192

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

#193

Динамическая сетка - это из другого анекдота. Абсолютно.

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

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

Ботов такого класса можно очень эффективно использовать не только (и не столько) для консервативной торговли, но и для экстремальной торговли - на спокойном рынке, небольшом депо, узкой сеткой и, может, на порядок завышенными ордерами.
Я уже писал - знакомый ботом с фиксированной сеткой за 25 дней поднял депо $3000 до $14000+.
Давайте, для начала, сделаем полнофункционального бота с фиксированной сеткой и потом попонимаем что и как с него можно поиметь.

Нормально переделанного Хакеда можно будет использовать в комбинации с Энвоем.
Там надо очень серьезно разбираться с набором пар и сэтами - нужен очень грамотный ММ.
В этом направлении есть крайне интересные наработки owaa.

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

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

А вот простого надежного и понятного бота с легко просчитываемой сеткой до сих пор еще нет - и его еще надо сделать.
Чем мы сейчас и занимаемся.

Изменено 19 мая, 2012 пользователем Старик

#194

Доброго времени суток всем. Ребят, замечание по поводу версии 4.002. Решил прогнать оптимизацию с января 2010 для мажор-пар(так как это фактически самая быстро-работающая версия) и заметил такую странность - при iStopLoss = 250, шаге 53, и максимуме ордеров = 15, он доходит до стоплоса - то есть открывает пятое колено и все - далее не закрывает по стоплосу ни чего а просто сидит в просадке. Имхо - это не есть гуд, когда и новые колена не открывает и старые в глубоком ауте держит. Было бы логичнее, если бы он сворачивал колена дошедшие до своего iStopLoss и открывал новые, иначе смысл вообще функции iStopLoss? Получается сейчас он использует эту функцию для ограничения открытия новых колен. Да можно сказать - "да отключи ты этот iStopLoss и всех делов" но ведь это без него он должен так работать - набрал максимум ордеров и дальше сидит в просадке, а при iStopLoss = true он по идее должен открывать ордера до бесконечности (до нуля на депо :d ), и именно эта функция при прогонах помогает определить хорошие сочетания шаг\профит. Может я конечно что то упустил читая все ветки Хакеда, и не заметил как данной функции дали новое значение? Или у меня комп уже глючит после 4 суток прогонов на 7 терминалах? Прилагаю оптимизацию AUDNZD с 4.01.2010 по май 2012 с максимум ордеров = 15, попробуйте поставить сет 4ого прогона и посмотреть как работает.


Добавлено: 20-05-2012 13:08:15

Кстати - домыслил :-) было бы не плохо если бы величину iStopLoss расчитывалась совой, тогда это был бы правильный iStopLoss. Это ведь вроде не сложно "iStopLoss=MaxOpenOrder x Pipstarter - Pipstarter" ? если я ничего не напутал :">

AUDNZD_2010-2012.rar24 скач.

Изменено 20 мая, 2012 пользователем tatar221

#195
tatar221, приветствую!



3) Флаг AllowExtraOrders разрешающий / запрещающий открывать ордера сверх заданного уровня пирамиды.

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



Собственно устранять там нечего. При AllowExtraOrders = false лишние ордера не откроются. Правда результаты тестов в таком случае заметно менее прибыльны.


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

1) заранее высчитанных и жестко контролируемых просадки/потерь.
При AllowExtraOrders = false будет выставлено не более чем MaxBuyOrders|MaxSellOrders ордеров.
В наихудшем случае запредельного (для данной сетки) безоткатного движения все MaxBuyOrders|MaxSellOrders ордера закроются по стопу, будет получен заранее высчитанный убыток - но бот продолжит работу на остатках депо и начнет восстанавливать потери.

2) торгуем на все депо, количество ордеров и просадки/потери не ограничиваем и явно разрешаем боту депо слить.
При AllowExtraOrders = true может быть выставлено более чем MaxBuyOrders|MaxSellOrders ордеров огромных объемов и, при достаточном безоткате, депо безоговорочно сливается без возможности восстановления.
Но, если повезет и курс развернется раньше слива депо, то появляется шанс выйти из безотката, возможно, даже в плюс.

Если код прописан правильно, то все так и должно работать.


заметил такую странность - при iStopLoss = 250, шаге 53, и максимуме ордеров = 15, он доходит до стоплоса - то есть открывает пятое колено и все - далее не закрывает по стоплосу ни чего а просто сидит в просадке. Имхо - это не есть гуд, когда и новые колена не открывает и старые в глубоком ауте держит. Было бы логичнее, если бы он сворачивал колена дошедшие до своего iStopLoss и открывал новые, иначе смысл вообще функции iStopLoss? Получается сейчас он использует эту функцию для ограничения открытия новых колен.


Честно говоря, не понял проблемы.
Стоп-лоссы установлены на всех ордерах? Или только на первых?
Или стоп-лосы у ВСЕХ ордеров есть, но в тестере не обрабатываются, ордера не закрываются?

Что касается открытия 6-го и последующего ордеров: что, курс безоткатно доходит до +265 пипс от первого ордера, бот должен открыть 6-й ордер - и не открывает?
Если так, то это ошибка в коде.

Только при максимуме ордеров 15 стоп к открытию 6-го ордера не имеет вообще никакого отношения - боту самим пользователем разрешено открыть еще 10 ордеров и стоп, есть он или нет, вообще никого не интересует и никого ничем не ограничивает.

tatar221, обдумайте мои вопросы и попробуйте более строго описать вашу проблему с ботом - если она вообще есть.
#196

Цитата: "Что касается открытия 6-го и последующего ордеров: что, курс безоткатно доходит до +265 пипс от первого ордера, бот должен открыть 6-й ордер - и не открывает?
Если так, то это ошибка в коде."
Именно так! То есть при разрешении открываться даже сверх 15 колен, он открывается только до указанного iStopLoss!


Добавлено: 20-05-2012 14:23:08


tatar221, приветствую!


Что касается открытия 6-го и последующего ордеров: что, курс безоткатно доходит до +265 пипс от первого ордера, бот должен открыть 6-й ордер - и не открывает?
Если так, то это ошибка в коде.




Насколько я понял, для того что бы работал AllowExtraOrders = true нужно в данной версии выставить iStopLoss = 0, тогда он должен работать, иначе он доходит коленями до указанного значения iStop и упершись в него дальше не открывает последующие ордера.

Изменено 20 мая, 2012 пользователем tatar221

#197

Более 250 пипс реального безотката на мажорах - редкость.
При шаге 53 дождаться открытия 6-го ордера непросто.

Есть конкретный пример - пара, настройки, дата начала формирования пирамиды?

Чтобы в режиме визуализации проверить эту ситуацию с не открытием 6-го ордера?

#198



Есть конкретный пример - пара, настройки, дата начала формирования пирамиды?

Чтобы в режиме визуализации проверить эту ситуацию с не открытием 6-го ордера?


Старик, если не трудно, возьми из оптимизационного файла по AUDNZD (который я выше выкладывал) 4ый сет и посмотри. Потому что не исключено что я ошибаюсь. Но только что прогнал с теми же пораметрами оптимизации но при AllowExtraOrders = false результат один и тот же. Сейчас поставил оптится с iStop = 0, посмотрю как будет. Просто все что я хочу добиться - чтоб он в тестере, при оптимизации, отрабатывал все варианты с указанным количеством MaxOrders, а пока выходит, что он доходит до указанной величины iStop и дальше не открывается а пересиживает. Извини Старик, если сумбурно. Надеюсь суть ты понял.

Добавлено: 20-05-2012 15:07:46

Пытаясь докопаться до истинного назначения функции iStopLoss в версии 4.002 додумался пока только что он ограничивает дальнейшее открытие ордеров, причем не важно 10 у вас колен или 15. Если безоткат больше значения iStop ордера просто перестают отрываться и сова уходит в режим пересиживания. Я правильно додумался?


Добавлено: 20-05-2012 15:20:34

Если я додумался правильно, то тогда возникает вопрос: зачем вообще оставлять параметр iStopLoss, если он не дает добраться до максимально разрешенного количества открытых ордеров?

Изменено 20 мая, 2012 пользователем tatar221

#199




Есть конкретный пример - пара, настройки, дата начала формирования пирамиды?

Чтобы в режиме визуализации проверить эту ситуацию с не открытием 6-го ордера?


Старик, если не трудно, возьми из оптимизационного файла по AUDNZD (который я выше выкладывал) 4ый сет и посмотри. Потому что не исключено что я ошибаюсь. Но только что прогнал с теми же пораметрами оптимизации но при AllowExtraOrders = false результат один и тот же. Сейчас поставил оптится с iStop = 0, посмотрю как будет. Просто все что я хочу добиться - чтоб он в тестере, при оптимизации, отрабатывал все варианты с указанным количеством MaxOrders, а пока выходит, что он доходит до указанной величины iStop и дальше не открывается а пересиживает. Извини Старик, если сумбурно. Надеюсь суть ты понял.

Добавлено: 20-05-2012 15:07:46

Пытаясь докопаться до истинного назначения функции iStopLoss в версии 4.002 додумался пока только что он ограничивает дальнейшее открытие ордеров, причем не важно 10 у вас колен или 15. Если безоткат больше значения iStop ордера просто перестают отрываться и сова уходит в режим пересиживания. Я правильно додумался?


Добавлено: 20-05-2012 15:20:34

Если я додумался правильно, то тогда возникает вопрос: зачем вообще оставлять параметр iStopLoss, если он не дает добраться до максимально разрешенного количества открытых ордеров?

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

extern double iStopLoss = 250; вот описание в тексте.

Это не функция, а внешняя переменная, значение которой задает пользователь.

Правда, она модифицируется по ходу исполнения программы, чего я стараюсь избегать, вводя дополнительные переменные Static.
Но используется iStopLoss только там, где и должна - при вычислении позиции стопа уже открытых ордеров.
Я только что проверил поиском в коде программы.

iStopLoss не влияет и даже опосредствованно не может влиять на открытие ордеров - тем более в пределах MaxBuyOrders|MaxSellOrders.

Забудь, это ты вообще не туда думаешь.

-----

Я подозреваю, что ты пытаешься получить 6-й ордер там, где его не может быть по причине отсутствия таких больших безоткатов.
А при шаге 53 пипс и еще большем ТП ордера по много суток можут торчать в рынке, пока курс будет бродить в "мертвом" коридоре шириной (шаг + ТП).
А у тебя этот коридор явно намного шире 100 пипс - курс там и неделю простоит легко при нынешних торгах.
#200

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

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

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