Пытаюсь разобраться в том, как работает событийная стратегия на свечках. Насколько я могу понять, со времени выпуска документации механизмы изменились и описанные на форуме и в API .when.do конструкции на CandleToken'ах не работают, а без исходников понять почему - не получается.
Просьба к участникам форума - выложите, пожалуйста, каркас такой стратегии - без логики, можно с принтами в ключевых местах. Буду очень признателен, да и наверное не только я.
Комментарии (17)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Документация на сайте устарела, да. Но всегда существует оффлайн документация. Читайте ее. Она соответствует последней версии.
Да было бы не плохо выложить каркас робота по событийной модели.А то вроде бы утверждается что за основу теперь берётся событийная модель,а самого полноценного примера нет. Думаю очень многие были бы благодарны ,особенно начинающие. Спасибо.
В разделе Событийная модель показан пример хеджирования опционов. Если он не нравится и нужен другой пример, то предлагаю попросить здешних товарищей о том, чтобы привели кусочек кода из своего робота. Я пример подал.
Михаил, спасибо - я как-то забыл про оффлайновый хэлп.
Просим здешних товарищей - выложите, пожалуйста, каркас (без логики) событийного алгоритма, основанного на свечках!
+1, было бы архиполезно!
Что-то вроде этого:
Аналогичные советы, что я дал Church
...Заменяется на более элегантное:А еще лучше передавать новые свечки в обработчик:
...вот так тоже будет работать:Хотите получать такие советы регулярно? Прочитайте надпись и спросите меня, чем вы можете помочь проекту. Помогая проекту, проект в лице людей с голубыми никами будет помогать и вам.😎
Вот мой пример. Комментарии может быть даже слишком подробные - это те моменты, в которые я утыкался сам.
Полезно своими наработками делиться с товарищем по цеху. Вы привели свой код, а я увидел в нем неточности. Ловите бесплатные напутствия 😂:
или
Как совет, посмотрите, какие методы присутствуют в TraderHelper + StrategyRuleConditionHelper.
/*
*/
using System; using System.Collections.Generic;
using StockSharp.Algo; using StockSharp.Algo.Candles; using StockSharp.Algo.Strategies; using StockSharp.BusinessEntities;
public class MyStrategy : Strategy { #region Объявление переменных
}
Михаил, спасибо! TraderHelper оказался очень полезным классом. :)
Я с радостью как-нибудь поучаствую в проекте, только одна проблема - у меня всего три недели опыта серьезного программирования.
Если позволите, пара вопросов.
Как переделать Process под событийную модель, вроде и так уже событийно до тиков. :) Сделать делать одноразовые правила типа LastTradePriceLess/More и обновлять на свечках? А в чем будет преимущество перед Process - высвобождение ресурсов?
Раз вы сделали специальную механику правил-действий, значит стандартная событийная модель чем-то не устраивала. Можете вкратце рассказать философию правил-действий и как их лучше всего использовать?
Кстати, this.When(this.Stopping()).ClosePosition() у меня не работает, а ClosePositionHandler я не могу найти даже через хэлп.
Чуть подробнее.
Конечно нет. Это должен быть обработчик в вашем коде.
Сделал эту запись в конструкторе, оверрайд OnStopping удалил. При остановке стратгии при отрытой позиции она не закрывается. PositionManager.Position показывает отличное от нуля число, как и таблица в квике. Кроме удаления OnStopping все аналогично коду выше.
Есть вопрос про свечки, надеюсь в тему. Допустим у нас есть какое-то NewMyTrade.Time Я хочу получить свечку с:
и таймфреймом
т.е. получить свечку от произвольного момента в прошлом(для примера взято 5:11) до NewMyTrade.Time, причем при каждом новом NewMyTrade.Time произвольный момент в прошлом меняется.
Как это элегантнее всего сделать ?
И ещё вопрос про IsCandleBullishOrBearish() В документации написано "True, если бычья, false, если медвежья, null - ни то, ни другое."
Не возвращает ни одной медвежьей свечки при прогоне на пяти днях истории(дальше остановил тест). Бычьи возвращаются. Это баг или я что-то не так понял в описании метода ?