Перейти к содержанию

Нужна помощь в написании простенького советника


DenisK152

Рекомендуемые сообщения

Нужна помощь в написании простенького советника Опубликовано

Вам ещё о термине "сливатор" нужно договорится - если сова допустившая стопаут на 3 год после 100500% будет считаться "сливатором"?


0ll, в точку! Тоже сразу примерно об этом подумал :d. Думаю вот этот момент имеет смысл вынести на обсуждение всех, кому интересен данный эксперимент. Т.к. в этом две стороны скорее всего будут необъективны. Прошу, друзья, давайте коллективным разумом определим что есть "сливатор". Кстати, не припомню подобных дискуссий...
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано (изменено)

Прошу прощения, если что не так, у меня совсем нет опыта написания ТЗ, поэтому, как думаю, так и пишу. Попробую описать логику перевёртыша с доливкой на коррекции лимитным ордером... x_x
1. Советник рисует уровень отсчёта,с настройкой по времени (с возможностью это время изменять и оптимизировать).
2. Советник ежедневно мониторит месячный АТР (АТР также должен быть в настройках с возможностью изменения и оптимизации) , и на основании АТР рисует вспомогательные "сигнальные" уровни, на расстоянии 20% от этого значения сверху и снизу от уровня отсчёта (также изменяемая и оптимизируемая настройка).
3. Советник ждёт касания ценой одного из сигнальных уровней. В момент касания верхнего вспомогательного уровня входит по рынку в бай стартовым лотом и ставит байлимит на уровень отсчёта (таким же стартовым лотом). Стоплоссы у этих ордеров на нижнем вспомогательном уровне, тейкпрофит рыночного уровня равен стоплоссу, тейк лимитника в этом же месте. При достижении тейка работа сова заканчивается, если лимитник не сработал-удаляется, советник ждёт следующий день. Важно, чтобы сов входил в позу и ставил отложку после ночного расширения спреда (например в час ночи). С целью не попадаться на брокерские разводы с расширением спреда на смене суток. Либо тупо запретить ему открывать ордера с 23 до часу.
4. В случае стоплосса сов входит по той же логике но удвоенным лотом в продажу и ставит удвоенный селлимит на уровень отсчёта. И так до победного.
5. На следующий день сов строит новый уровень отсчёта, считает новый АТР, строит новые сигнальные уровни. НО, если в рынке есть ордера, отмартиненные после 2-х и более стопов, сов новые не открывает, до выведения общей позиции в БУ. Если ордера прошлых дней без стопа или с одним стопом и первым мартином, то сов продолжает открывать ордера по новым уровням со своими стопами и тейками.
6. Нужна возможность выставлять стартовый лот в размере % от депо. Процент должен иметь настройку и возможность выставлять дробные значения (например 0,27%)
7. Нужна настраиваемая и оптимизируемая настройка "буфера" в пипсах для стоплосса и лимитных ордеров.
8. Конечно в идеале можно бы попросить возможность трала, перевода позы в бу по достижению какого-то % от тейка ...
9. Советник должен иметь возможность переключения режимов (только стоповые ордера, стоповые+лимитные, только лимитные).
10. И пожалуйста, все настройки исключительно по-русски l-)

@tdklodis Это мой ник в Телеграмм, там я отвечу намного быстрее, чем на форуме, если появятся вопросы.

Вроде ничего не забыл. Конечно, мои хотелки далеки от "простенького советника", НО, если сможете сделать всё, что я прошу, будете встречать новый год с бутылочкой элитного коньячка... И, чтобы не было злорадств, недоверий и переживаний по этому поводу, я обещаю отблагодарить вас в ЛЮБОМ случае (сливатор-не сливатор), ПРОСТО СДЕЛАЙТЕ, ЧТО Я ПРОШУ... Хотя вопрос "что считать сливатором" на самом деле интересен, жаль что нашу ветку не читает Старик или Павел, очень было бы интересно их мнение, ну и мнение других тоже... ;)D

Изменено пользователем Лодис
  • Лайк 5
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

"СЛИВАТОР" - это тильт пишущего...все ж не верят, что именно с ними ЭТО случится...

Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

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


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

1. Советник рисует уровень отсчёта,с настройкой по времени (с возможностью это время изменять и оптимизировать).


Я так понимаю, что речь идет о воображаемом уровне? Или все-таки этот уровень необходимо рисовать на графике?

2. Советник ежедневно мониторит месячный АТР (АТР также должен быть в настройках с возможностью изменения и оптимизации) , и на основании АТР рисует вспомогательные "сигнальные" уровни, на расстоянии 20% от этого значения сверху и снизу от уровня отсчёта (также изменяемая и оптимизируемая настройка).


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

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


Т.е. так:
- коснулась цена уровня в заданный промежуток времени (с 23-00 до 1-00) - советник ждет наступления 1-00, а затем открывает сделку в зависимости от того, какого уровня цена коснулась (верхнего/нижнего). При этом сделка открывается по текущей цене (может быть как выше, так и ниже вспомогательного уровня).
Правильно понимаю?

5. На следующий день сов строит новый уровень отсчёта, считает новый АТР, строит новые сигнальные уровни.


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

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


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

6. Нужна возможность выставлять стартовый лот в размере % от депо.


Речь о риске (в валюте депозита) на сделку в % от депо?

7. Нужна настраиваемая и оптимизируемая настройка "буфера" в пипсах для стоплосса и лимитных ордеров.


Опишите эту часть подробнее, пожалуйста. Что есть "буфер"?

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


Старик часто заглядывает в "Уголок программиста", поэтому, я думаю, мы услышим его мнение по этому вопросу. На счет "сливатора" сложновато рассуждать, проще на счет "несливатора". Так как советник в консервативном режиме может довольно долго ковырять по копеечке и при этом сливатором его уже не назовешь, но имея в своем алгоритме бомбу замедленного действия в виде "мартина до победного" он может слить все что "нажито непосильным трудом" в одночасье. Причем нажито при консервативной торговле скорее всего будет не много, дай Бог это будет 100% от депо. И так как слив обеспечен любому мартину, и это только вопрос времени, то при определении "сливатор/несливатор" основным критерием служит соотношение возможности заработка (в % от начального депо) в благоприятные периоды между сливами к начальному депозиту. Чтобы назвать советник "несливатор" мне видится это соотношение не менее 2к1. Как-то так.

"СЛИВАТОР" - это тильт пишущего...все ж не верят, что именно с ними ЭТО случится...


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

Нужна помощь в написании простенького советника Опубликовано

Я так понимаю, что речь идет о воображаемом уровне? Или все-таки этот уровень необходимо рисовать на графике?


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

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


аналогичное мнение и по этому поводу

Т.е. так:
- коснулась цена уровня в заданный промежуток времени (с 23-00 до 1-00) - советник ждет наступления 1-00, а затем открывает сделку в зависимости от того, какого уровня цена коснулась (верхнего/нижнего). При этом сделка открывается по текущей цене (может быть как выше, так и ниже вспомогательного уровня).
Правильно понимаю?


НЕТ. Советник открывает ордела только если цена не выходила за уровни коробки, до времени, когда советнику разрешено их открывать. Или исключительно лимитки, при условии, если цена не доходила до уровня предполагаемого тейка.
Для понимания опишу пример - цена касается сигнального уровня до часу ночи, сов сделку не открывает, а смотрит где цена в час (когда ему можно открыть сделку) и, если цена ниже уровня, открывает байстоп как и положено, если выше - байлимиты от сигнального уровня и уровня отсчёта, НО, если цена прежде чем дойти до лимитников дошла до уровня предполагаемого тейка, ЛИМИТНИКИ УДАЛЯЮТСЯ и сов ждёт новый день и новый уровень отсчёта. Конечно выглядит дико, не уверен, что сможете это закодировать. Я описываю свою логику, как торговал бы я руками в этой ситуации. Если это невыполнимо, пусть сов просто пропускает день, когда цена выходит за уровни "коробки" до времени, когда советнику можно начинать открывать ордера.

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


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

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


ОТЛИЧНАЯ ИДЕЯ!!! в идеале, если и этот параметр можно будет заоптимизировать.

Речь о риске (в валюте депозита) на сделку в % от депо?


Да. Я считаю риск на сделку например 1% от депо на стоплосс равный величине коробки (между сигнальными уровнями). Тогда, в одном направлении, в случае с лимитником, я рискую 1,5%, где 1% риск по стоповому урдеру и 0,5% по лимитному. При этом величина лота получается одинаковой и в стоповом и в лимитном ордере.

Опишите эту часть подробнее, пожалуйста. Что есть "буфер"?


Расстояние от уровня до цены стопа или лимитника. Обычно выставляется на размер спреда +1-2 пипса. Именно для избежания "захватов" стопов, когда цены вроде и не было. а стоп сработал (задет спредом) Или когда смотришь цена бъёт в лимитку, но ордер не срабатывает (опять же изза спреда). Таких моментов бывает довольно много...

основным критерием служит соотношение возможности заработка (в % от начального депо) в благоприятные периоды между сливами к начальному депозиту. Чтобы назвать советник "несливатор" мне видится это соотношение не менее 2к1.


Поддерживаю вашу точку зрения.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

НЕТ. Советник открывает ордела только если цена не выходила за уровни коробки, до времени, когда советнику разрешено их открывать. Или исключительно лимитки, при условии, если цена не доходила до уровня предполагаемого тейка.
Для понимания опишу пример - цена касается сигнального уровня до часу ночи, сов сделку не открывает, а смотрит где цена в час (когда ему можно открыть сделку) и, если цена ниже уровня, открывает байстоп как и положено, если выше - байлимиты от сигнального уровня и уровня отсчёта, НО, если цена прежде чем дойти до лимитников дошла до уровня предполагаемого тейка, ЛИМИТНИКИ УДАЛЯЮТСЯ и сов ждёт новый день и новый уровень отсчёта. Конечно выглядит дико, не уверен, что сможете это закодировать. Я описываю свою логику, как торговал бы я руками в этой ситуации. Если это невыполнимо, пусть сов просто пропускает день, когда цена выходит за уровни "коробки" до времени, когда советнику можно начинать открывать ордера.


Понятно с этим. Единственное, заметил, что Вы в где-то говорите об открытии ордера на сигнальном уровне с рынка, а где-то говорите о стоп-ордерах. Давайте определимся каким образом будет открываться ордер на сигнальном уровне. С лимитными ордерами понятно. Ничего дикого нет, все реализуемо.

Да. Я считаю риск на сделку например 1% от депо на стоплосс равный величине коробки (между сигнальными уровнями). Тогда, в одном направлении, в случае с лимитником, я рискую 1,5%, где 1% риск по стоповому урдеру и 0,5% по лимитному. При этом величина лота получается одинаковой и в стоповом и в лимитном ордере.


У нас получается будет два режима работы: с лимитником и без лимитника. Возникает вопрос, как расчитывать риск в разных режимах? Задавать риск для каждого ордера в отдельности? Или задавать его одной цифрой, а советник автоматом будет кидать 2/3 риска на первый ордер и 1/3 на лимитник? На мой взгляд второй вариант выглядит удобней.


  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано (изменено)

Понятно с этим. Единственное, заметил, что Вы в где-то говорите об открытии ордера на сигнальном уровне с рынка, а где-то говорите о стоп-ордерах. Давайте определимся каким образом будет открываться ордер на сигнальном уровне. С лимитными ордерами понятно. Ничего дикого нет, все реализуемо.


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

У нас получается будет два режима работы: с лимитником и без лимитника. Возникает вопрос, как расчитывать риск в разных режимах? Задавать риск для каждого ордера в отдельности? Или задавать его одной цифрой, а советник автоматом будет кидать 2/3 риска на первый ордер и 1/3 на лимитник? На мой взгляд второй вариант выглядит удобней.


Вообще-то я просил 3 режима (толкьо стоповые, стоповые+лимитные, и ТОЛЬКО лимитные). Последний режим мне ооочень интересен для мультивалютной торговли. т.к. на одной паре входов будет не много, но, если это не сложно, сделайте пожалуйста. Очень хочется потестить. В этом режиме я не так сильно уверен, как в первых двух, но думаю это не сложно будет..Логика проста, после сигнала выставляется лимитник и если его стопит, выставляется отмартиненный лимитник опять же на уровень отсчёта ( с таким же соотношением 1 к 3). Если этот лимитник больше не задет в этот день, то он удаляется и стоавится новый (также отмартиненный после вчерашнего стопа), на след день, после определения нового уровня и направления. И так до победного.В остальном логика та же (сигнальные уровни на расстоянии % АТР от уровня отсчёта и т.д.)
что касается рисков - как я сразу не описал этот момент... В первом режиме всё понятно - первый стоповый ордер - процент от депозита на размер короба. В режиме стоп+лимит размеры лотности ордеров должны быть одинаковые. И у каждого свой риск, у стопового процент на размер коробки, а у лимитного получается пол процента (т.к стоп его меньше в 2 раза). Но размер лота у обоих получается одинаковый. В случае режима "лимитники" тоже одна настройка - процент депо на пол коробки. Ещё раз уточняю, это я так торгую руками, вы в советнике сделайте так, чтобы можно было оптимизировать лотность. Но я практически уверен, что размер стоп ордера не должен отличаться от размера лимитного. Изменено пользователем Лодис
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

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


Ок. Тогда предлагаю входить по рынку.

Вообще-то я просил 3 режима (толкьо стоповые, стоповые+лимитные, и ТОЛЬКО лимитные).


Видимо я что-то упустил и не понял, что есть еще вариант входа только лимитными ордерами. С этим ясно.

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


Хм. Если Вы имеете ввиду оптимизацию лотности для каждого ордера в отдельности (в режиме рыночный+лимитный), то тогда надо делать отдельные настройки риска для каждого ордера. Т.е., например, так: рыночный ордер риск - 1%; лимитный ордер риск - 0.5%; В таком варианте размер лота окажется одинаковый на обоих ордерах. И оптимизировать можно как угодно.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Хм. Если Вы имеете ввиду оптимизацию лотности для каждого ордера в отдельности (в режиме рыночный+лимитный), то тогда надо делать отдельные настройки риска для каждого ордера. Т.е., например, так: рыночный ордер риск - 1%; лимитный ордер риск - 0.5%; В таком варианте размер лота окажется одинаковый на обоих ордерах. И оптимизировать можно как угодно.


Отлично, пусть будет так.
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано
Лодис, как думаете, указывать в настройках советника время для откладывания уровней стоит в формате "чч. мм." или просто "чч"? Ну и время, до которого торговля запрещена после формирования уровней, также в каком формате задавать? Сначала стал делать с минутами, но потом мне это показалось лишним. Что скажете?
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Согласен с вами, рабочий ТФ Н1 и все расчёты идут от закрытия-открытия часовой свечи. Вряд ли нам пригодятся минуты в этой настройке.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 2 weeks later...
Нужна помощь в написании простенького советника Опубликовано (изменено)

Всем здрасьте! Скоро сказка сказывается, да не скоро дело делается... Планировал раньше закончить, но надо сказать, что советник получился не простой. Советник готов. Протестирован на предмет грубых ошибок. Назвал я его BoxTrader, т.к. по ходу работы подумал, что для наибольшего понимания работы концепция "коробок" самая подходящая. Поэтому предлагаю в последующем обсуждении использовать именно терминологию коробок. И так, описание.

Входные настройки:

Час формирования уровней -ежедневно в заданный час советник формирует размер коробки. Её верхний и нижний уровень
Отложенный старт через (часов) 0-откл - пауза времени с момента старта. В течении паузы сов не торгует, но следит за поведением цены:
-после истечения паузы советник открывает ордера при пробое уровней коробки, если во время паузы цена не касалась уровней.
-если во время паузы имел место пробой какого-либо уровня и после паузы цена находится за пределами коробки, то советник установит лимит-ордера в уровни. Если цена после выставления лимит-ордеров, достигла уровня тейка так и не зацепив ни одного лимитника, то такие лимитники удаляются и по сегодняшней коробке торговля не ведется.
-если за время паузы цена пробила один из уровней и достигла уровня тейкпрофита, то уже никакие действия (касательно сегодняшней "коробки)" не ведутся, а сов ждет следующего дня.
-если в течении паузы цена коснулась какого-то уровня, но в момент истечения паузы цена находится внутри коробки, то советник откроет ордера в момент пробоя одного из уровней.
Режим торговли - имеет три режима: 1-рыночные ордера; 2-рыночные+лимитные;3-лимитные;
-режим1 - открывает рыночный ордер в момент касания ценой одного из уровней коробки;
-режим2 - в момент пробоя уровня коробки открывает рыночный ордер, а также устанавливает лимит-ордер в середине коробки. Если рыночный ордер достигает тейкпрофита, а лимитный остается не задетым, то лимитник в таком случае удаляется.
-режим3 - в момент пробоя одного из уровней коробки выставляется лимит-ордер в середине коробки. Если цена достигает расчетного уровня тейкпрофита так и не зацепив лимитника, то такой литник удаляется. Если лимитник остается открытым и наступает время формирования уровней новой коробки, то такой лимитник удаляется, а в середине новой коробки (при касании ценой одного из уровней коробки) устанавливается лимит-ордер таким-же объемом, как удаленный.
Новые "коробки" каждый день - разрешает/запрещает советнику формирование новых коробок каждый день. Если true, то в заданный час каждый день формируются новые коробки. Если false, то, пока не закрыты ордера предыдущей коробки, советник не будет формировать новые коробки.
Закрывать по безубытку (после SL) - если у ордеров текущей коробки имел место стоплосс (был открыт переворотный ордер), то советник закроет переворотный ордер (или ордера), как только текущая прибыль переворотного ордера станет равна сумме предыдущих убытков от закрытых ордеров коробки. Т.е. по безубытку.
Таймфрейм ATR - задаем таймфрейм для расчета ATR. Т.е. ATR можно расчитывать не только по текущему таймфрейму.
Период ATR - Период, за который расчитывается ATR.
Дистанция до торговых уровней (% ATR) - в момент формирования коробки советник откладывает вверх и вниз от текущей цены расстояние, равное заданному % от расчитанного ATR.
Процент риска рыночного ордера - риск в валюте депозита на рыночный ордер, расчитанный в виде процента от текущего эквити.
Процент риска лимитного ордера - риск в валюте депозита на рыночный ордер, расчитанный в виде процента от текущего эквити.
Кратность тейкпрофита (к размеру "коробки") - отношение размера тейкпрофита к размеру стоплосса. Задаем здесь во сколько раз размер тейкпрофита будет превышать размер стоплосса.
Множитель лота - коэф. умножения лота переворотного ордера.
Кол-во переворотов, после кот. не открывать новые "коробки" - здесь задается кол-во переворотов (стоплоссов), после достижения которого советник не будет формировать новые ежедневные коробки пока не будет достигнут тейк ордера (ордеров) предыдущей коробки.
Рисовать границы "коробки" - вкл/выкл рисование границ коробки на графике.

При проверке логики работы рекомендую включать режим Новые "коробки" каждый день = false. Такой режим не был предусмотрен в ТЗ, я добавил его для проверки правильности работы при тестировании в режиме визуализации, т.к. если советник формирует новые коробки каждый день (пока не отработаны ордера предыдущих коробок), то одномоментно на графике присутствует масса ордеров (особенно в режиме рыночные+лимитные) и понять что к чему очень сложно.
Штука получилась не однозначная. На счет сливает-не сливает, то, конечно сливает периодично. Но! Так же периодично зарабатывает. Бывают периоды, когда может заработать очень прилично. Например такой вот интересный период на EURUSD:



Хочу отметить, что лучший результат сов показал как раз с режимом Новые "коробки" каждый день = false и без закрывания сделок по безубытку. Это мартин. И он не терпит различного трусливого поведения, вроде того, чтобы закрываться по безубытку \M/ Педаль в пол и только вперед!
Короче говоря, думаю есть еще над чем подумать. Смотрите, тестируйте, делитесь мыслями. ;)

BoxTrader.ex4

Изменено пользователем DreamWorks
  • Лайк 13
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Ну чтож, я очень рад, что НАЧАЛО положено! Жаль, что сейчас очень занят и тупо не хватает время на тесты, может на выходных поюзаю его вдоль и поперёк... Выражаю благодарность за проделанную работу!!! Ваш приз готов, напишите как с вами можно связаться для вручения... Думаю, вы не расстроитесь, что он 0.7 а не литровый как я обещал (литровый был тока вс), зато этот в прикольной подарочной упаковке..) Забегая вперёд, хочу спросить, может вы отмечали дни,когда бокстрейдер сливает, это бы сэкономило кучу времени для анализа - поделитесь наблюдениями. Проводилась ли оптимизация?

photo_2017-11-28_21-19-08.jpg

  • Лайк 8
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано


Ну чтож, я очень рад, что НАЧАЛО положено! Жаль, что сейчас очень занят и тупо не хватает время на тесты, может на выходных поюзаю его вдоль и поперёк... Выражаю благодарность за проделанную работу!!! Ваш приз готов, напишите как с вами можно связаться для вручения... Думаю, вы не расстроитесь, что он 0.7 а не литровый как я обещал (литровый был тока вс), зато этот в прикольной подарочной упаковке..) Забегая вперёд, хочу спросить, может вы отмечали дни,когда бокстрейдер сливает, это бы сэкономило кучу времени для анализа - поделитесь наблюдениями. Проводилась ли оптимизация?



Лодис, по поводу связи со мной - напишу в личку. В свою очередь, я очень рад, что Вы оказались человеком слова! |3=3
Советника я тестировал только на предмет правильности работы логики в различных комбинациях настроек. Режим, в правильности работы которого я не уверен до конца, это режим, когда идет работа только лимитниками. Надо бы его погонять еще в этом режиме. Для меня его некоторые моменты оказались недопонятыми. Но есть интуитивное ощущение, что этот режим не покажет интересных результатов.
Никакую оптимизацию не проводил. Просто в процессе проверки увидел интересные результаты, которые и показал в предыдущем посте. Связи сливов и дней не замечал, точнее не наблюдал за этим, но очевидно, что наиболее благоприятные дни - это волатильные дни. Также в ТЗ Вы просили сделать трал, но я пока его не делал, так как подумал, что надо обсудить как именно должен работать трал, различные нюансы работы трала в разных режимах торговли и прочее. Мне кажется там есть над чем подумать.
Не делал "буфер", так как не совсем понял для чего он. Попробуйте без него пока. Но, если настаиваете, то сделаю. Если правильно понял Вас, то это просто отступ стоплосса от уровня коробки?

P.S. Ну и раз у нас пошла такая пьянка, то, если Вы не против, может создадим тему этого советника в лаборатории?
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Приветствую! Ну так как время на тесты нет, решил не дожидаться выходных и стартануть на реале \M/
ну конечно же на центовом..) И сразу же первый баг. Естественно, первый блин должен быть комом. На скрине всё описал. В стандартных настройках стоит атр5,но в тз я указывал именно 22 (месячный), но баг не в этом (атр я естественно сменил), баг в определении уровня отсчёта. Он должен быть по закрытию 22 часа, а на скрине вообще не понятно, почему бокстрейдер определил его там. Сегодня на евробаксе должен быть по системе красивейший тейк, а вместо этого уже 2 стопа ~x(... Поверьте, я не с потолка взял цифры 20%, месячный АТР и закрытие 22 часа. Это оптимальные цифры под текущий рынок конкретно для евробакса. Конечно же они не вечны и будут оптимизироваться по мере изменения рынка.
тралы, буферы, и вся остальная косметика не столь критичны, это всё доточится в процессе тестов и оптимизаций. Главное сейчас - чёткое исполнение поставленной бокстрейдеру задачи (построение уровней, расчёт атр, расчёт расстояния, расчёт лотности и т.д).
По поводу отдельной темы - конечно же я не против.
В личке получил сообщение - свяжусь с вами позже.
Уверен, мы с вами не ерундой занимаемся, а делаем очень стоящую вещь |3=3 У НАС ВСЁ ПОЛУЧИТСЯ!!!

первый_блин.png

  • Лайк 6
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

И сразу же первый баг. Естественно, первый блин должен быть комом. На скрине всё описал. В стандартных настройках стоит атр5,но в тз я указывал именно 22 (месячный), но баг не в этом (атр я естественно сменил), баг в определении уровня отсчёта. Он должен быть по закрытию 22 часа, а на скрине вообще не понятно, почему бокстрейдер определил его там.


ATR5 по умолчанию я поставил уже не вспомню почему, видимо что-то напутал перечитывая тему, но в том посте, который у нас принят за ТЗ значение ATR по умолчанию не указано. Ну да ладно, это не проблема вовсе, поправлю.
Уровнем для расчета размеров коробки сейчас является текущая цена. Т.е. как только советник увидел, что текущее время равно или более заданного часа (22), то он берет текущую цену bid и откладывает от нее вверх и вниз 20% от заданного ATR. Так что это не баг, а моя неправильная интерпретация условий входа. Дело в том, что при написании я исхожу из того, что советник должен быть универсальным и уметь правильно работать на разных таймфреймах. Поэтому мне показалось, что будет более гибким отталкиваться от текущей цены (в заданный час), а не от цены закрытия часовой свечи. Можно сделать, например, расчет от Close последней закрытой свечи. Как такой вариант? Или все же делать от цены закрытия часовой свечки (22 или другой заданной)?
Теперь по поводу того как открываются рыночные ордера при касании уровней. Мне так показалось (в связи с тем, что Вы просили сделать буфер), что Вы хотите избежать всевозможных неудобств в связи с изменениями спреда. Поэтому я сделал так: советник открывает ордера именно в момент касания ценой Bid одного из уровней. Таким образом легко увидеть на графике имело ли место касание ценой уровня или нет(бидом). Не надо прикидывать примерный спред и пр. Если это критично, то абсолютно не проблема сделать открытие бай-ордера в момент касания ценой Ask верхнего уровня, и селл-ордера в момент касания ценой Bid нижнего уровня. Что скажете?
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Дело в том, что при написании я исхожу из того, что советник должен быть универсальным и уметь правильно работать на разных таймфреймах. Поэтому мне показалось, что будет более гибким отталкиваться от текущей цены (в заданный час), а не от цены закрытия часовой свечи. Можно сделать, например, расчет от Close последней закрытой свечи. Как такой вариант? Или все же делать от цены закрытия часовой свечки (22 или другой заданной)?


Честно, я не совсем понял в чём разница этих вариантов.Но уровень отсчёта это чётко цена закрытия часа.

Теперь по поводу того как открываются рыночные ордера при касании уровней. Мне так показалось (в связи с тем, что Вы просили сделать буфер), что Вы хотите избежать всевозможных неудобств в связи с изменениями спреда. Поэтому я сделал так: советник открывает ордера именно в момент касания ценой Bid одного из уровней. Таким образом легко увидеть на графике имело ли место касание ценой уровня или нет(бидом). Не надо прикидывать примерный спред и пр. Если это критично, то абсолютно не проблема сделать открытие бай-ордера в момент касания ценой Ask верхнего уровня, и селл-ордера в момент касания ценой Bid нижнего уровня. Что скажете?


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

Теперь немного о грустном. Снял бокстрейдера с тестирования на центовике. Почему-то не сработала настройка ограничения открытия ордеров ( в настройках поменял, но после 3 стопов советник зафиксил убытки и не открыл новый ордер...( В журнале написал что что не может изза количества переворотов больше1!!! хотя настройка была изменена на 5 и 2 раза уже был переворот.. Это расстраивает. Может правильнее было бы вообще отключить это ограничение? Трейдер сам решит, когда ему "хватит" нервяков исможет отключить бокстрейдер кнопкой автоторговли. Если, конечно это потребуется. А время построения уровня отсчёта удалось поправить?
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Честно, я не совсем понял в чём разница этих вариантов.Но уровень отсчёта это чётко цена закрытия часа.


Разница в том, что если Вы поставите советник на таймфрейм, отличный от часового (например, 15 мин), то тут есть три варианта:
1.Это текущий вариант, как сейчас сделано. Т.е. берем текущую цену и откладываем от нее вверх и вниз n-расстояние.
2.Берем цену Close последней закрытой свечи (текущего таймфрейма, может быть любым) и откладываем от нее вверх и вниз n-расстояние.
3.Берем цену Close свечи часового таймфрейма. Т.е. если стоит у нас в настройках час формирования уровней = 22, то берем соответственно цену Close свечи, закрывшейся в 22-00 и от нее пляшем.

Первый вариант - наиболее универсальный. И сейчас работает так: стукнуло 22-00 (или любой другой заданный час) - сов схватил текущую цену бид и отложил от нее нужное расстояние вверх и вниз. По сути расчетным уровнем станет первая котировка, которая придет после наступления 22-00.
Второй вариант - думаю, что тоже универсальный. И более понятный для пользователя при нахождении его (уровня отсчета) на графике.
Третий - не универсальный. Но, в оригинальном контексте ТС, сути особо не меняет.

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


Ок. Тогда пока не станем перегружать советник лишними настройками.

Теперь немного о грустном. Снял бокстрейдера с тестирования на центовике. Почему-то не сработала настройка ограничения открытия ордеров ( в настройках поменял, но после 3 стопов советник зафиксил убытки и не открыл новый ордер...( В журнале написал что что не может изза количества переворотов больше1!!! хотя настройка была изменена на 5 и 2 раза уже был переворот.. Это расстраивает. Может правильнее было бы вообще отключить это ограничение? Трейдер сам решит, когда ему "хватит" нервяков исможет отключить бокстрейдер кнопкой автоторговли. Если, конечно это потребуется. А время построения уровня отсчёта удалось поправить?



Так... тут наверное надо сверить одинаково ли мы понимаем работу настроек. В процессе обсуждения я предложил эту настройку и Вы сказали, что это отлично, а теперь говорите, что не надо. Руками то конечно можно прекращать нервяки, но эта настройка может быть очень полезна при оптимизации. Работает так:
Во первых - эта настройка актуальна только для режима, когда у нас формируются новые "коробки" каждый день в заданный час ("Новые "коробки" каждый день"=true). Таким образом получается, что если в какой-либо из незавершенных коробок от предыдущих дней имел место переворот более заданного этой настройкой раз, то сегодня и в последующие дни новые "коробки" формироваться не должны. Это будет продолжаться до тех пор, пока текущие "коробки" не закроются по тейкпрофиту. При этом ордера текущих "коробок" должны вертеться после каждого стопа до победного. Приведу пример: сегодня был открыт на пробое верхнего уровня коробки бай-ордер, затем он закрылся по стоплоссу и открылся переворотный селл-ордер, который тоже был закрыт по стопу и открылся переворотный бай-ордер. Мы получили два переворота (или стоплосса) в текущей коробке. Наступил новый день и текущее время равно 22-00. Пора рассчитать уровни новой сегодняшней коробки, но советник пропустит сегодняшний день и не станет рассчитывать новую коробку, так как в рынке по прежнему не закрылся ордер от предыдущей коробки, в которой мы получили 2 стоплосса (переворота). Конечно, все это при условии, что настройка "Кол-во переворотов, после кот. не открывать новые "коробки" = 1. Был бы только один стоп в предыдущей коробке, то сов нарисовал бы сегодняшние уровни и работал по ним.


  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
Нужна помощь в написании простенького советника Опубликовано

2.Берем цену Close последней закрытой свечи (текущего таймфрейма, может быть любым) и откладываем от нее вверх и вниз n-расстояние.


Этот вариант оптимальный. Только цена именно бид- по которой рисуется график.

Так... тут наверное надо сверить одинаково ли мы понимаем работу настроек. В процессе обсуждения я предложил эту настройку и Вы сказали, что это отлично, а теперь говорите, что не надо. Руками то конечно можно прекращать нервяки, но эта настройка может быть очень полезна при оптимизации


Настройка полезна бесспорно, но если она корректно работает. Я предложил убрать её только в том случае, если сама ошибка происходит изза неё. Если исправите ошибку, не удаляя настройку- будет отлично! Работу настроек понимаем одинаково. Баг случился именно с настройками ("Новые "коробки" каждый день"=true). Жду исправленный вариант.
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Все замечания учел, все поправил. Создал тему советника в лаборатории: [Советник] BoxTrader EA . Всех, кому интересно, прошу туда.
На всякий случай сюда тоже выкладываю поправленную версию.

BoxTrader_v1.1.ex4

  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

Нужна помощь в написании простенького советника Опубликовано

Ну чё - красавцы парни! =d> :)

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

Но и более молодое поколение создало правдоподобно выглядящего бота, работоспособность и прибыльность которого теперь надо подтвердить в новом топике!
Успехов! :)

  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

  • 3 months later...
Нужна помощь в написании простенького советника Опубликовано

Здравствуйте уважаемые программисты. Прошу помощи в написании советника по сигналу одного индикатора FL23. В коде слабо разбираюсь. 2 дня мудрил с кодом. Так ни к чему и не пришёл. При компиляции всё равно появляются ошибки. Индикатор только один. Это FL23. Сигнал: пробой линии индикатора уровня 0. Интересует цена вопроса.

Ссылка на сообщение
Поделиться на другие сайты

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

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...