#126

Думаю было бы уместно добавить функцию выбора направления торговли BUY или SELL. Тот же Kortes писал, что имея опыт работы с мартинами более 10 лет, работает только в одном направлении. Хотя можно Only Long/Short, но думаю своя переменная не помешала бы.


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


Есть скрипт написанный В. Хлыстовым называется OpenOrderMarketExecution, открывает ордер вручную с любым magic'ом и после чего советник должен его принять за свой. Но у меня, как я не пытался, Хакед не подхватывал эти ордера.

Изменено 12 мая, 2012 пользователем oceay

#127

Block1Sell, Block1Buy и прочие - это какой-то хардкор реально. Для блокировки полностью направления достаточно советнику задать перед помещением на график будет ли использоваться лонг и шорт или нет. Я считаю что надо добавить код проверки хитрых ситуаций в духе разрешена ли торговля вообще, есть ли деньги, можно ли шортить или только лонг и т.д. Именно переделать обработку текущего состояния свободной маржи, ордеров, не путать позиции свои с чужими, реагировать на вывод средств при открытых позициях и т.п.
Итог моей мысли - привести код в адекватное состояние. Чтобы появилась новая стабильная версия. После чего начинать менять логику. Кому понравится стабильная - будет использовать, остальные бы работали над модификацией дальше

#128


Думаю было бы уместно добавить функцию выбора направления торговли BUY или SELL. Тот же Kortes писал, что имея опыт работы с мартинами более 10 лет, работает только в одном направлении. Хотя можно Only Long/Short, но думаю своя переменная не помешала бы.


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


Есть скрипт написанный В. Хлыстовым называется OpenOrderMarketExecution, открывает ордер вручную с любым magic'ом и после чего советник должен его принять за свой. Но у меня, как я не старался, Хакед не подхватывал эти ордера.

Открытие ордера скриптом - наверно не самый удобный способ. Тем не менее, другой способ, приходящий на ум, ещё менее удобен - держать одновременно включёнными и BlockAllSell, BlockAllBuy и выключить требуемый при желании открыть позицию.

З.Ы. Простейший способ реализации BlockAllSell, BlockAllBuy - запихать в соответствующие if'ы функции OpenSell и OpenBuy целиком (перед глазами исходника нет, пишу названия функций по памяти). Но так всё-таки это не совсем правильно с точки зрения логики кода. Функция не должна вызываться. Возможно, данная корректировка потребует чуть больше времени, чем я подумал сначала.
Автор#129


Итог моей мысли - привести код в адекватное состояние. Чтобы появилась новая стабильная версия. После чего начинать менять логику. Кому понравится стабильная - будет использовать, остальные бы работали над модификацией дальше



Полностью согласен!
Сначала избавить оригинал от недоделок и выкинуть всё лишнее!
#130



Итог моей мысли - привести код в адекватное состояние. Чтобы появилась новая стабильная версия. После чего начинать менять логику. Кому понравится стабильная - будет использовать, остальные бы работали над модификацией дальше



Полностью согласен!
Сначала избавить оригинал от недоделок и выкинуть всё лишнее!

Предлагаю определиться с тем, что мы точно выкидываем. Мне видятся ненужными трендинг (в том виде, в котором он сейчас) и хеджирование (опять же, которое сейчас). Ещё я бы выкинул параметры StopLossPct и TakeProfitPct (и всё что с ними связано). И ещё можно выбросить параметр SupportECN, оставив только тот код, что относится к SupportECN = true.
#131
Цитата

BlockAllSell, BlockAllBuy


А это зачем? )) Смысл перекодевать с советник то, что и так есть в МТ4? А вот на счет на счет адекватной проверки свободной маржи и других ситуаций что выше перечислил nixxer вместо ДОС атаки сервера как это есть сейчас было нужно ))
Автор#132


Предлагаю определиться с тем, что мы точно выкидываем. Мне видятся ненужными трендинг (в том виде, в котором он сейчас) и хеджирование (опять же, которое сейчас). Ещё я бы выкинул параметры StopLossPct и TakeProfitPct (и всё что с ними связано). И ещё можно выбросить параметр SupportECN, оставив только тот код, что относится к SupportECN = true.



Полностью согласен!
#133

Стоит тогда его делать сразу чтоб работал с МТ4 и с MT5 (рано или поздно все равно переберемся на эту платформу).

#134


Стоит тогда его делать сразу чтоб работал с МТ4 и с MT5 (рано или поздно все равно переберемся на эту платформу).



помоему стоит сначала отладить какую-то одну платформу, чем тянуть сразу обе, тем более что принудительный переход на МТ5 произойдет явно не завтра..
Автор#135


Стоит тогда его делать сразу чтоб работал с МТ4 и с MT5 (рано или поздно все равно переберемся на эту платформу).



Насколько я понял на МТ5 запрет локирования. :(
_http://fxmail.ru/soft/metatrader5/
Цитата

Терминал MetaTrader 5 (MT5) теперь имеет кардинальные отличия по сравнению с MT4, d таких понятиях как позиция, сделка и ордер. Здесь у каждого торгуемого инструмента может быть только одна позиция. Теперь ордер - это приказ на исполнение торговой операции, в результате которой образуется сделка. Позиция же - это сумма позиций, открытых по конкретному инструменту.

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

#136


Стоит тогда его делать сразу чтоб работал с МТ4 и с MT5 (рано или поздно все равно переберемся на эту платформу).


Про проблему с мт5 я писал ранее. Будет не возможно выставить ордера на sell и на buy одновременно. Над алгоритмом надо много думать, что бы перенести на мт5.
#137

тема за обсуждение хакеда, ну забудьте же наконец об MT5

#138

В посте от 6 мая /laboratoriya-profitfx/24/sovetnik-haked-uluchshenie/2156/?do=findComment&comment=26984 я перечислил 7 пунктов что желательно убрать или изменить в базовой версии Хакеда.
Из перечисленного в том посте, после обсуждения, я согласен с тем, что трендинг надо убрать как неприемлемо плохо исполненный.
Но вообще-то мои предложения неделю назад интереса почти не вызвали.
Ладно, кратко подведем итоги здесь.

Итак:
1) хеджинг убираем.
2) трейдинг убираем.
3) индикаторы убираем.
4) ECNSupport убираем - переход на обработку всех ордеров как для ECN счетов.
5) трал профитных ордеров (предложение Ahope) добавляем - только нормально делаем, чтобы все работало.
6) ситуация "no money" - первичное и минимально достаточное решение через программное блокирование режимами BlockAllSell и BlockAllBuy продолжения выставления селл или бай ордеров - с автоматическим восстановлением 2-вунаправленной торговли после штатного закрытия пирамиды, чего нельзя сделать через режимы "only long" и "only short" в терминале.
Более полное решение по контролю свободных средств, имхо, имеет смысл обсуждать после того, как я допишу и выложу пост по теме оптимальных стопов/просадок/депо.
7) коррекция объемов ордеров при проскальзываниях, гэпах, обрывах связи - надо делать, простую формулу я написал.

В дополнение к вышеперечисленному и по ходу обсуждения добавлю:
8) PauseNewTrades и StoppedOutPause я бы выкинул нахрен - ни грамма логики и экономики я в этом не вижу.
Пирамида закроется в момент, который никто не знает и не может знать - после чего добавляется какая-то пауза и торги возобновляются в момент, который никто никак не может заранее вычислить.
Это что, авторы дают боту время похоронить и помянуть недавно помершую пирамиду?
Так это поминки за счет владельца бота - потому что бот какое-то время тупо не торгует.
Использовать PauseNewTrades и StoppedOutPause, задав огромную паузу, для вывода бота со счета можно - но это единственное, на что способны эти параметны.
А вот предложенные мной Block1Sell и Block1Buy работают комплексно, в 4-х ситуациях - в том числе и для управляемого вывода бота со счета.

9) По StopLossPct и TakeProfitPct сейчас мнения нет.
Но если это контроль просадки в %% с принудительным закрытием пирамиды (вроде так озвучивалось?), то при работе на взрослых депо это должно быть.
Позже разберусь что это за хрень.

-----

Теперь по прозвучавшим предложениям/замечаниям.

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


Думаю было бы уместно добавить функцию выбора направления торговли BUY или SELL.
.........
Есть скрипт написанный В. Хлыстовым называется OpenOrderMarketExecution, открывает ордер вручную с любым magic'ом и после чего советник должен его принять за свой. Но у меня, как я не пытался, Хакед не подхватывал эти ордера.


Оба вопроса решаются Block1Sell и Block1Buy.
При этом Хакед точно будет видеть им же выставленный 1-й ордер серии.


Цитата

BlockAllSell, BlockAllBuy


А это зачем? )) Смысл перекодевать с советник то, что и так есть в МТ4?

Про переключатель лонг/шорт я знаю - только он ручной и жесткий, руками надо и включать, и выключать.
Вопрос так кто же торгует и принимает решения - бот или вы?
Если знаете как более просто программно, из советника, в том числе в автомате, разрешать/запрещать торговлю лонг или шорт - предлагайте.
Предложенные BlockAllSell и BlockAllBuy гибче и управляемы - как человеком, так и ботом, в том числе когда вы отсутствуете и вообще круглосуточно.
Например, если недостаточно денег или введенные пользователем настройки конфликтны, BlockAllSell и BlockAllBuy позволяют блокировать торговлю, пока настройки или деньги не будут приведены в порядок.
Это можно сделать в автомате, из бота.
Можно ли управлять из бота "шорт онли" или "лонг онли", я не знаю.

Про МТ5 пока можно забыть - 2-хсторонний Хакед только для МТ4.
Мартины в МТ5 применимы с ограничениями, однонаправленные и еще и с приветливыми алгоритмами, насколько понимаю.


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


В целом согласен.
Только я считаю, что подготовку даже публичного форумного бота надо разбить на 2 этапа.
Сначала мы делаем и тщательно тестируем просто нормальную вертушку с минимумом предложенного мною дополнительного сервиса и тралом отдельных профитных ордеров как опции.
Это чтобы быстро заменить текущую ублюдочную версию на вменяемую и дать крепким людям бота для сопровождения ручной торговли.
На втором же этапе, подумав и посчитав, можно будет добавить максимальный контроль окружающей среды и ММ - ну и что-то исправить или добавить по итогам массовой проверки первой базовой версии.
За 2-3 итерации базового бота, надеюсь, соберем.
#139



Стоит тогда его делать сразу чтоб работал с МТ4 и с MT5 (рано или поздно все равно переберемся на эту платформу).



Насколько я понял на МТ5 запрет локирования. :(
_http://fxmail.ru/soft/metatrader5/



Я тоже так понял. Для этого надо два терминала один работает в одну сторону buy другой sell. Просто сразу учесть этот факт.
Мне так кажется
#140




Стоит тогда его делать сразу чтоб работал с МТ4 и с MT5 (рано или поздно все равно переберемся на эту платформу).



Насколько я понял на МТ5 запрет локирования. :(
_http://fxmail.ru/soft/metatrader5/


Я тоже так понял. Для этого надо два терминала один работает в одну сторону buy другой sell. Просто сразу учесть этот факт.
Мне так кажется

Это тоже учтено.
Предлагаемые мной переменные Block1Sell и Block1Buy разрешают/запрещают торговлю по каждому направлению отдельно.

Только для МТ5 бота придется полностью перерабатывать - там существенно другой язык программирования.
Правда, есть вроде перекодировщик, но я про него отзывов не слышал.

Забудь пока про МТ5 полностью - надо еще на МТ4 по человечески заработок наладить.

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

#141



1 Трал прибыли
ОН нужен, это однозначно но как его реализовать и как он должен работать?


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

Да фиг его знает, тот трал отдельных ордеров...
Но проверить бы надо, в тестах некоторые цифры достаточно интересные.

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

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

#143

Вот базовая версия ForexHacked. Полностью повторяет алгоритм оригинального ForexHacked 2.4.
Отличается тем, что выкинуты трендинг, хеджирование, паузы.
Добавлен явный контроль валютной пары через TradeChart, как просил Старик.
Функции переписаны, чтобы не дублировать код для buy/sell.

Код содержит алгоритмическую ошибку такую же, как в оригинале: на старших ордерах пирамиды,
когда начальные ордера выбило по stoploss робот может открыть дополнительные ордера сверх
начального ограничения, так как смотрится не уровень последнего ордера пирамиды, а число еще
живых ордеров. Глюк проявляется, только если iAllowStopLoss = true и расстояние от первого до последнего
ордера больше уровня стопа.

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

Жду конструктивной критики и предложений. Можно личными сообщениями, если удобнее.

ForexHacked2.4.001.mq487 скач.

#144


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


Код еще не читал, по описанию все верно. Не помню в хакеде задержки на минуту :-/
Автор#145



Код содержит алгоритмическую ошибку такую же, как в оригинале: на старших ордерах пирамиды,
когда начальные ордера выбило по stoploss робот может открыть дополнительные ордера сверх
начального ограничения, так как смотрится не уровень последнего ордера пирамиды, а число еще
живых ордеров. Глюк проявляется, только если iAllowStopLoss = true и расстояние от первого до последнего
ордера больше уровня стопа.



За работу большой + . Спасибо!
А это не глюк так и должно быть!
Когда по стопу одна сделка закрылась, сразу открывается очередная и так далеее.
Пирамида своего рода переезжает поближе к цене !
Это трогать не надо !!! Я этот момент много тестил это правильно!
#146




Код содержит алгоритмическую ошибку такую же, как в оригинале: на старших ордерах пирамиды,
когда начальные ордера выбило по stoploss робот может открыть дополнительные ордера сверх
начального ограничения, так как смотрится не уровень последнего ордера пирамиды, а число еще
живых ордеров. Глюк проявляется, только если iAllowStopLoss = true и расстояние от первого до последнего
ордера больше уровня стопа.



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


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

Согласно настроек Крола:
- на 08 колене открывается ордер 0.70 лота, а сумма открытых ордеров равна 1.67 лота;
- на 09 колене открывается ордер 1.19 лота, а сумма открытых ордеров равна 2.86 лота;
- на 10 колене открывается ордер 2.02 лота, а сумма открытых ордеров равна 4.88 лота.

Ну да, закроется ордер 0.02 лота, откроется 1.19 лота - закроется ордер аж 0.03 лота, откроется ордер всего 2.02 лота.

Вы и глазом моргнуть не успеете, как дядя Коля положит руку на плечо и скажет: "Ох и шалунишка же ты! Твои деньги уже мои."

Имхо, этот глюк бота надо выкорчевать на корню: спланировал риски и просадки, вложил нужную сумму денег, ограничил количество ордеров в MaxBuyOrders|MaxSellOrders - это все, не обсуждаемо.

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

Разве нет?

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

Но для боевых долларовых счетов должна быть однозначная возможность ограничить максимум просадки через MaxBuyOrders|MaxSellOrders и стопы.
А как иначе - десятку штук чисто на усмотрение бота оставлять?!

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

Автор#147

Тогда что мы будем делать? : ждать пока все ордера не закроются по стопу и только после етого начьнём строить новую пирамиду!
А если все девять закроются по стопу предпоположим 250пп * 9 = 2250пп весёлый убыток!

Я повторюсь: я этот момент много тестировал !
Если iAllowStopLoss = true и MaxBuyOrders = 9; MaxSellOrders = 9; то :
Сова открывает пирамиду 9 ордеров и выжидает тейк или стоп ... если тейк пирамида закрылась !
Если, стоп первой сделки сработал, то на этом месте сова открывает новую сделку, поскольку их стало восемь и эта сделка также увеличивается.
Пирамида своего рода переезжает поближе к цене !


ЕСЛИ iAllowStopLoss = false и MaxBuyOrders = 9; MaxSellOrders = 9
Сова открывает пирамиду 9 ордеров и выжидает только тейк. Стопов нету. если цена уходит далеко против нас сова просто пересиживает.

Думаю надо оставить всё как есть.
На крайний случай сделать в меню дополнительную заглушку :
Открывать ордер если вышли по стопу : true или false

Полностью удалять это нельзя и тесты вам это докажут!

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

#148


Тогда что мы будем делать? : ждать пока все ордера не закроются по стопу и только после етого начьнём строить новую пирамиду!
А если все девять закроются по стопу предпоположим 250пп * 9 = 2250пп весёлый убыток!

Я повторюсь: я этот момент много тестировал !
Если iAllowStopLoss = true и MaxBuyOrders = 9; MaxSellOrders = 9; то :
Сова открывает пирамиду 9 ордеров и выжидает тейк или стоп ... если тейк пирамида закрылась !
Если стоп первой сделки то на этом месте открывает новую сделку поскольку их стало восемь и эта сделка также увеличивается.
Пирамида своего рода переезжает поближе к цене !


ЕСЛИ iAllowStopLoss = false и MaxBuyOrders = 9; MaxSellOrders = 9
Сова открывает пирамиду 9 ордеров и выжидает только тейк. Стопов нету. если цена уходит далеко против нас сова просто пересиживает.

Думаю надо оставить всё как есть.
На крайний случай сделать в меню дополнительную заглушку :
Открывать ордер если вышли по стопу : true или false

Полностью удалять это нельзя и тесты вам это докажут!


Наверно, так и стоит сделать.
Мнения ж разделились.

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

Но таки да, наверно, можно попробовать реализовать on|off вариант этого не задокументированного разработчиками свойства Хакеда.
Автор#149
ок =d>

Цитата

Но таки да, наверно, можно попробовать реализовать on|off вариант этого не задокументированного разработчиками свойства Хакеда.



надо добавить: Открывать новый ордер если вышли по стопу : true или false

Добавлено: 13-05-2012 19:47:00

Проверил код kiocera на соответствие с оригиналом, молодец всё работает на отлично! =d>
тест оригинала и мада от kiocera.

original.gif
update.gif

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

#150


Проверил код kiocera на соответствие с оригиналом, молодец всё работает на отлично! =d>
тест оригинала и мада от kiocera.


Я тоже поковырялся в коде данного мода и он мне очень понравился. Kiocera, шикарная работа! =d>

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

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

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

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