Доброго времени суток всем!
Планировал летом отдохнуть от рынка, свалив торговлю на робота, но сильная просадка по счету поспособствовала досрочному вливанию в работу: нужно разрабатывать новую ТС и пускать ее в торговлю вместе со старой.
Первоначально планирую поиграться с трендовыми стратегиями на часовиках. На выходных накропал один вариант самой простой трендовой стратегии, но что-то он мне не нравится, и, скорее всего, я вряд ли буду его развивать. Так что если у кого есть желание, вот код ее заготовки для WealthLab 5.4:
zalil.ru/33672832 (копия
files.mail.ru/DT4ZU2)
В двух словах:
— торговля на часовиках
— вход по пробою min/max последних трех свечей
— ползущий стоп по индикатору, являющемуся средним между max (или min) за последние 5 периодов и хаем (или лоем), сдвинутым на 9 периодов.
Вот ее результаты:
Примечание. Стратегия в том виде, в котором я ее выкладываю, хоть и вполне пригодна для торговли (без реинвестирования), является всего лишь заготовкой. Лично меня она не устраивает по многим параметрам, а развивать ее неохота. Может быть кому-то она понравится в нынешнем виде, а может кто-то доведет ее до ума. В первую очередь, я полагаю, надо поиграться с фильтрами для отсечения большого количества мелких убыточных сделок.
Надо бы твою систему поюзать для диверсификации) Любопытно очень!
Средняя прибыль у тебя 1.2% — это очень даже здорово. Да и 200 сделок на часовиках — самое то. Посмотрю твое описание, как-то я его пропустил.
просто я вижу где 3 заменить на 4, чтобы отсчитывались не 3, а 4 свечки, и то это только из-за подробных комментов автора
а свою систему я закодить-то не смогу
без комиссов — красивый график эквити, а комиссы возвращают в суровую действительность )))
imglink.ru/show-image.php?id=3f9d99cdecb95137bf2771bb46825068
грааль!
Какие комиссию и проскальзывание выставили? Что-то совсем Вашему графику плохо. Вот график с проскальзыванием 100п:
комисс 100 на куплю-продажу с 2009 по наст время
imglink.ru/show-image.php?id=f3dd07433f48b64b412f1ad2738004ec
рез-ты
imglink.ru/show-image.php?id=f42f4f49e509aa666d12f321d3c0fb52
Собственно, это и есть основная работа по приведению системы в рабочий вид, на это уходит основное время ее разработки (может и на год затянуться).
Сделайте, например, так:
PlotSeries(PricePane, Close >> 10, Color.Black, WealthLab.LineStyle.Solid, 1);
— увидите график, нарисованный по клоузам, сдвинутый на 10 свечей
С возвращением.
Ты, я вижу, ведение счета забросил.
Но я тоже сейчас понемногу возвращаюсь к робостроительству, так что еще повоюем :)
может у вас пока открыта длинная поза короткая не открывается и наоборот?
могу скинуть полный листинг сделок
imglink.ru/show-image.php?id=64acf9efe649fc369035b813de3c2f26
Stop = Math.Max(Stop, HS[bar])
у вас на картинке это правило не работает…
Если серьезно, проскальзывание 50, и на первой часовой свече сделайте проскальзывание 1500пп, это утренний геп.
А у вас в утренние походу легко система входит со слипажом в 100п, а это не правильно.
А так — все верно: я выше уже отмечал, что утренние гэпы пока не учтены. Просто не вижу в этих правилах большого потенциала
И что происходит если два условия одновременно происходят, как они выполняются?
if (Date[bar].Date != Date[bar-1].Date)…
//Если начался новый день
if (Date[bar].Day != Date[bar-1].Day)
{...}
Ну а дальше уже думаю понятно
Вообще, рекомендую входить на баре [bar+1] — так вы сможете сразу гарантированно избежать этой ошибки + не нужно будет делать лишние сдвиги. Для некоторых стратегий это очень критичный момент, который из грааля делает разбитое корыто.
А в целом код очень понравился, ловите плюс :)
А в целом, я сам не очень люблю тестировать стратегии со входом в середине свечи. Это действительно вносит неопределенность в конечный результат.
Тем более в данной стратегии конечный результат не сильно меняется.
Спасибо
рековери правда у меня не такой хороший получился на 2013 году, не пробывали дать подышать сделке когда профит уже достиг определенного уровня на сделку, чтобы улавливать большие движения?
т.е. поставить условие если профит достиг уровня то смягчаем условия выхода
Кроме того, не забывайте, что это всего лишь заготовка, в частности, в ней не учтены гэпы. Для большей достоверности получаемых данных в начале цикла нужно добавить:
if (Date[bar].Day == Date[bar-1].Day) continue;