Такой вопрос:
S#.API дает огромный диапазон возможностей, это да, но Shell позиционируется как коробка, где все готово, не нужно особо разбираться в программировании - знай подставляй стратегии и будет тебе счастье. К слову, такая концепция идеально подходит под меня. Но есть некоторые НО. Накидал тут для себя план вхождения в продукт, уже решил задачи: "научиться качать историю", "запустить бэктест встроенной стратегии", "запустить в бой встроенную стратегию". Теперь ближайший на очереди: "запилить и отбэктестить свою стратегию", а затем "в бой её же".
Тут столкнулся со следующими трудностями. Без погружения в API создать свою стратегию не тривиальная задача - причем речь о том, что собственно понять, как с помощью API запилить логику стратегии - не сложно, а вот понять, что и как надо делать ещё чтобы стратегию интегрировать - уже намного сложнее.
В readme к Shell есть список действий как добавить стратегию - по-моему он слегка упрощен. И второй момент: в стратегии SMA Strategy, которая идет в комплекте очень много кода, который не описывает логику стратегии, логика стратегии, как я понимаю, укладывается в метод ProcessCandle(). Взял полностью копировал код стратегии SMA и на её основе составить свою - не получилось - или не компилируется, или панели кастрированные, или Start strategy не нажимается. В readme написано, что если хотите умолчательные панели - не наследуйтесь от интерфейсов IHaveTestControl и IHaveMonitoringControl - либо я как-то не так "не наследовался" либо умолчательные панели какие-то слишком кастрированные).
Возможно ли (может оно так и работает, просто я что-то не так делаю) сделать какой-то контейнер, где я, условно говоря, заменяю тока название класса, и код в метода ProcessCandle() и все, стратегия работает. При этом набор функциональных возможностей такой же как дает стратегия из комплекта поставки. Т.е. чтоб мне не надо было писать какой-то код чтобы получить простейшие вещи - поля "Тестировать До" и т.д.
Короче взять код стратегии из примеров "чистых" кодов стратегии и интегрировать это в Shell чтобы можно было и тестировать и торговать как по мне ни разу не тривиальная задача. А хотелось бы чтоб была ей)). Ну или сориентируйте пож. как-то в рамках обозначенного набора сложностей)).
Заранее спасибо.
Kommentare (9)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Добрый день
Спасибо за отзыв. Скажите, чем именно не подходит в данном случае стратегия СМА? В ней можно сделать именно то, что вы хотите. Удалите код из ProcessCandle и замените его своим.
Удалить код из ProcessCandle - без проблем - одна стратегия, меняю логику внутри готового каркаса (пример стратегии из комплекта) - все работает, все отлично. Проблема возникает когда я пытаюсь делать две стратегии)).
Вот я создаю новую папку новой стратегии в папке стратегий, копирую туда все файлы от SMA стратегии. Дальше делаю все что рекомендовано в readme по добавлению стратегии - ну там добавить стратегию в словарь и т.д. Дальше надо переименовывать класс новой стратегии иначе студия ругается - это понятно, два раза один класс описываю - все переименовываю - норм, но ещё ругается на файлы вида SmaNewStratMonitoringControl.Xaml.cs, там тоже что-то начинаю переименовывать но не до конца понятно что там точно нужно делать, потому что студия много на что ругается. Тут мне надоедает, я возвращаюсь к фразе из readme, в которой сказано что если не хочешь можешь не переопределять контролы тестирования и т.д. Пробую комментировать public LayoutPanel AddMonitorigPanel() в коде стратегии и public LayoutPanel AddTestPanel() . В общем мне или не удается убрать ошибки, либо все компилируется (кажется как раз когда я комментирую переопределение контролов), но кнопка Open Test Panel не реагирует на нажатие, ничего не открывается. Короче в результате всех этих экспериментов что-то получалось но ни разу не получалось запустить эту новую стратегию на бэктестинг (речь о том, что я не правил ещё саму логику стратегии, просто пытался создать полную копию но как отдельную стратегию).
Может вы сможете пошаговую инструкцию коротенькую написать? - типа берем такие-то файлы, копируем туда-то, то-то переносим, такие-то элементы переименовываем так-то и так-то и т.д. Это если идти по пути отталкиваться от стратегии которая в комплекте. Может быть можно пойти не от неё, а аналогичная инструкция но с нуля.
Как-то так.
Ну или можете сделать полную копию (по логике работы) встроенной SMA стратегии, но чтоб они вместе компилировались без ошибок? А я уже посмотрю по факту, что именно вы сделали.
Вы можете написать код своей стратегии в классе SmaStrategy.
А такой вариант - этот же процесс не сложный добавить стратегию в Shell, вы можете в дистрибутив зашить две стратегии а не одну (не важно какая именно будет вторая)? А я уже сам пойму, как оно работает и как добавлять новую стратегию на основе существующей.
Спасибо за ваш отзыв. Передали пожелание разработчикам.
Это не то чтобы прям отзыв, скорее просьба о помощи)). Ладно, ещё поколдую, если что - вернусь с более конкретными вопросами. Спасибо!
Добрый день
Пожалуйста, возьмите последнюю версию. В неё добавлены три стратегии. Так же исправлено тестирование, использующее тиковые данные вместо свечных.
Круто, спасибо!
Поизучаю в ближайшее время.