S#

работа со свечами!Обьясните пожалуйста как вообщем с ними работать?!


работа со свечами!Обьясните пожалуйста как вообщем с ними работать?!
Atom Ответить
03.06.2011


Здравствуйте Михаил.
Обьясните пожалуйста как вообще работать со свечами меня волнует вопрос того как получить хотя бы high предыдущей свечи.
Во всех других примерах ничего не смог найти ,везде только описания как строить эти свечи через какие то непонятные списки или сохранение их через гидру.
Могли бы вы привести побольше примеров с работой со свечами.

Теги:


Спасибо:




21 Ответов
Alexander

Фотография
Дата: 03.06.2011
Ответить


samujan Перейти
Здравствуйте Михаил.
Обьясните пожалуйста как вообще работать со свечами меня волнует вопрос того как получить хотя бы high предыдущей свечи.
Во всех других примерах ничего не смог найти ,везде только описания как строить эти свечи через какие то непонятные списки или сохранение их через гидру.
Могли бы вы привести побольше примеров с работой со свечами.



Описание свойств в документации Stock#
Спасибо:

Самунджян Артем

Фотография
Автор статей Программист
Дата: 03.06.2011
Ответить


Alexander Перейти
samujan Перейти
Здравствуйте Михаил.
Обьясните пожалуйста как вообще работать со свечами меня волнует вопрос того как получить хотя бы high предыдущей свечи.
Во всех других примерах ничего не смог найти ,везде только описания как строить эти свечи через какие то непонятные списки или сохранение их через гидру.
Могли бы вы привести побольше примеров с работой со свечами.



Описание свойств в документации Stock#

а нельзя просто пример получения цены за предыдущий бар?
Автор топика
Спасибо:

Alexander

Фотография
Дата: 03.06.2011
Ответить


samujan Перейти
Alexander Перейти
samujan Перейти
Здравствуйте Михаил.
Обьясните пожалуйста как вообще работать со свечами меня волнует вопрос того как получить хотя бы high предыдущей свечи.
Во всех других примерах ничего не смог найти ,везде только описания как строить эти свечи через какие то непонятные списки или сохранение их через гидру.
Могли бы вы привести побольше примеров с работой со свечами.



Описание свойств в документации Stock#

а нельзя просто пример получения цены за предыдущий бар?



Код
var lastCandle = _candleManager.GetTimeFrameCandle(Security, TimeFrame, roundMarketTime);
var openPrice = lastCandle.OpenPrice;
var closePrice = lastCandle.ClosePrice;
.....
Спасибо:

avkar

Фотография
Дата: 04.06.2011
Ответить


Тоже один раз сталкивался с такой задачей, что нужно получить предыдущую свечу. Хотя есть ссылка на последнюю свечу, для поиска предыдущей приходится получать и анализировать весь массив свечей. Было бы неплохо в классе Candle иметь методы (свойства), например, GetNextCandle и GetPriorCandle, для нахождения следующей и предыдущей свечи.
Спасибо:

Самунджян Артем

Фотография
Автор статей Программист
Дата: 08.06.2011
Ответить


Alexander Перейти
samujan Перейти
Alexander Перейти
samujan Перейти
Здравствуйте Михаил.
Обьясните пожалуйста как вообще работать со свечами меня волнует вопрос того как получить хотя бы high предыдущей свечи.
Во всех других примерах ничего не смог найти ,везде только описания как строить эти свечи через какие то непонятные списки или сохранение их через гидру.
Могли бы вы привести побольше примеров с работой со свечами.



Описание свойств в документации Stock#

а нельзя просто пример получения цены за предыдущий бар?



Код
var lastCandle = _candleManager.GetTimeFrameCandle(Security, TimeFrame, roundMarketTime);
var openPrice = lastCandle.OpenPrice;
var closePrice = lastCandle.ClosePrice;
.....

СПАСИБО!
Автор топика
Спасибо:

freelancer

Фотография
Дата: 21.07.2011
Ответить


Здравствуйте. У меня свеча новая приходит только через 3 минуты после её открытия.
Чем это может быть вызвано ?

Мне конкретно надо что бы OnProcess стратегии отрабатывался при открытии новой свечи
Спасибо:

Alexander

Фотография
Дата: 21.07.2011
Ответить


freelancer Перейти
Здравствуйте. У меня свеча новая приходит только через 3 минуты после её открытия.
Чем это может быть вызвано ?

Мне конкретно надо что бы OnProcess стратегии отрабатывался при открытии новой свечи


А как отслеживается приход новой свечи?
Какие свечи строятся?
Спасибо:

freelancer

Фотография
Дата: 21.07.2011
Ответить


Вызывается OnProcess - значит новая свеча. Или я ошибаюсь ?

У меня пятиминутки. Вызываю внутри метода:

// получаем сформированную свечку
var candle = _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame);

На часах 12:38, а candle = 12:30
Спасибо:

Alexander

Фотография
Дата: 21.07.2011
Ответить


freelancer Перейти
Вызывается 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 минут)

хотите привязаться к свечам - используйте события генерации новых свечей.
Спасибо:

freelancer

Фотография
Дата: 21.07.2011
Ответить


Спасибо.
А как правильно написать условие с использованием NewCandles ?
Спасибо:

Alexander

Фотография
Дата: 21.07.2011
Ответить


freelancer Перейти
Спасибо.
А как правильно написать условие с использованием NewCandles ?


When(token.NewCandles()).Do(blablabla)
Спасибо:

freelancer

Фотография
Дата: 22.07.2011
Ответить


А можно ли внутри одного условия (допустим NewCandles) написать другое (Matched) ?
Например появилась новая свеча, какие-то условия соблюдены и мы отсылаем заявку на вход в позицию и тут же подписываемся на Matched(эта_заявка). Внутри Do ставим стоп
Спасибо:

Alexander

Фотография
Дата: 22.07.2011
Ответить


freelancer Перейти
А можно ли внутри одного условия (допустим NewCandles) написать другое (Matched) ?
Например появилась новая свеча, какие-то условия соблюдены и мы отсылаем заявку на вход в позицию и тут же подписываемся на Matched(эта_заявка). Внутри Do ставим стоп


Попробуйте, как раз узнаем ответ. :))

На мой взгляд можно.
Спасибо:

freelancer

Фотография
Дата: 22.07.2011
Ответить


Ну да. По сути это условие будет выполнено только 1 раз.
А потом можно как то отписаться от проверки этого условия ? Или не нужно уже ?
Спасибо:

Alexander

Фотография
Дата: 22.07.2011
Ответить


freelancer Перейти
Ну да. По сути это условие будет выполнено только 1 раз.
А потом можно как то отписаться от проверки этого условия ? Или не нужно уже ?


Добавьте ему Once()
Спасибо:

freelancer

Фотография
Дата: 22.07.2011
Ответить


Код
this.
When(StrategyRuleConditionHelper.Matched(TargetOrder).Once()).
Do(() =>
{

});


Так ?
Спасибо:

Alexander

Фотография
Дата: 22.07.2011
Ответить


freelancer Перейти
Код
this.
When(StrategyRuleConditionHelper.Matched(TargetOrder).Once()).
Do(() =>
{

});


Так ?



Код
this.
When(TargetOrder.Matched()).
Do(() =>
{
 
}).
Once();


в этом случае правило будет вызвано лишь 1 раз
Спасибо:

freelancer

Фотография
Дата: 22.07.2011
Ответить


TargetOrder.Matched() сработало, а Trader.GetPosition(Portfolio, Security) = null.
Может как то иначе надо проверять позицию ?
Спасибо:

Alexander

Фотография
Дата: 22.07.2011
Ответить


Может у вас Portfolio \ Security другой в заявке? или обновиться не успела таблица

Код
			return Trader.GetPosition(Portfolio, Security) != null
					   ? (int)Trader.GetPosition(Portfolio, Security).CurrentValue
					   : 0;


я вот так получаю позицию - всегда работает.
Спасибо:

freelancer

Фотография
Дата: 22.07.2011
Ответить


Скорее всего обновиться не успела. Можно это как-то подкрутить ?
Спасибо:

Alexander

Фотография
Дата: 22.07.2011
Ответить


freelancer Перейти
Скорее всего обновиться не успела. Можно это как-то подкрутить ?


Подкрутить что?
Дождитесь пока будет не null.

Вывод по Dde не может гарантировать какая из таблиц обновится первой, какая - последней и как скоро это произойдёт - через 0.1 секунды или через 0.05 секунды.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy