Здравствуйте Михаил. Обьясните пожалуйста как вообще работать со свечами меня волнует вопрос того как получить хотя бы high предыдущей свечи. Во всех других примерах ничего не смог найти ,везде только описания как строить эти свечи через какие то непонятные списки или сохранение их через гидру. Могли бы вы привести побольше примеров с работой со свечами.
コメント (21)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Описание свойств в документации Stock#
var lastCandle = _candleManager.GetTimeFrameCandle(Security, TimeFrame, roundMarketTime); var openPrice = lastCandle.OpenPrice; var closePrice = lastCandle.ClosePrice; .....
Тоже один раз сталкивался с такой задачей, что нужно получить предыдущую свечу. Хотя есть ссылка на последнюю свечу, для поиска предыдущей приходится получать и анализировать весь массив свечей. Было бы неплохо в классе Candle иметь методы (свойства), например, GetNextCandle и GetPriorCandle, для нахождения следующей и предыдущей свечи.
Здравствуйте. У меня свеча новая приходит только через 3 минуты после её открытия. Чем это может быть вызвано ?
Мне конкретно надо что бы OnProcess стратегии отрабатывался при открытии новой свечи
А как отслеживается приход новой свечи? Какие свечи строятся?
Вызывается OnProcess - значит новая свеча. Или я ошибаюсь ?
У меня пятиминутки. Вызываю внутри метода:
// получаем сформированную свечку var candle = _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame);
На часах 12:38, а candle = 12:30
неверно. OnProcess вызывается раз в интервал - в тот, который вы задали. Если вы запустили стратегию в 10:08 с 5 минутным интервалом, то запускаться будет в 10:08, 10:13, 10:18, .... к свечам никак не привязано. нужно запускать чаще - уменьшайте интервал (но таймфрейм, при этом, может быть прежний - 5 минут)
хотите привязаться к свечам - используйте события генерации новых свечей.
Спасибо. А как правильно написать условие с использованием NewCandles ?
When(token.NewCandles()).Do(blablabla)
А можно ли внутри одного условия (допустим NewCandles) написать другое (Matched) ? Например появилась новая свеча, какие-то условия соблюдены и мы отсылаем заявку на вход в позицию и тут же подписываемся на Matched(эта_заявка). Внутри Do ставим стоп
Попробуйте, как раз узнаем ответ. :))
На мой взгляд можно.
Ну да. По сути это условие будет выполнено только 1 раз. А потом можно как то отписаться от проверки этого условия ? Или не нужно уже ?
Добавьте ему Once()
Так ?
в этом случае правило будет вызвано лишь 1 раз
TargetOrder.Matched() сработало, а Trader.GetPosition(Portfolio, Security) = null. Может как то иначе надо проверять позицию ?
Может у вас Portfolio \ Security другой в заявке? или обновиться не успела таблица
я вот так получаю позицию - всегда работает.
Скорее всего обновиться не успела. Можно это как-то подкрутить ?
Подкрутить что? Дождитесь пока будет не null.
Вывод по Dde не может гарантировать какая из таблиц обновится первой, какая - последней и как скоро это произойдёт - через 0.1 секунды или через 0.05 секунды.