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


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


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

Tags:


Thanks:




21 Answers
Alexander

Avatar
Date: 6/3/2011
Reply


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



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

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

Avatar
Articles author Programmer
Date: 6/3/2011
Reply


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



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

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

Alexander

Avatar
Date: 6/3/2011
Reply


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



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

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



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

avkar

Avatar
Date: 6/4/2011
Reply


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

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

Avatar
Articles author Programmer
Date: 6/8/2011
Reply


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



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

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



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

СПАСИБО!
Topic starter
Thanks:

freelancer

Avatar
Date: 7/21/2011
Reply


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

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

Alexander

Avatar
Date: 7/21/2011
Reply


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

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


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

freelancer

Avatar
Date: 7/21/2011
Reply


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

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

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

На часах 12:38, а candle = 12:30
Thanks:

Alexander

Avatar
Date: 7/21/2011
Reply


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 минут)

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

freelancer

Avatar
Date: 7/21/2011
Reply


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

Alexander

Avatar
Date: 7/21/2011
Reply


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


When(token.NewCandles()).Do(blablabla)
Thanks:

freelancer

Avatar
Date: 7/22/2011
Reply


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

Alexander

Avatar
Date: 7/22/2011
Reply


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


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

На мой взгляд можно.
Thanks:

freelancer

Avatar
Date: 7/22/2011
Reply


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

Alexander

Avatar
Date: 7/22/2011
Reply


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


Добавьте ему Once()
Thanks:

freelancer

Avatar
Date: 7/22/2011
Reply


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

});


Так ?
Thanks:

Alexander

Avatar
Date: 7/22/2011
Reply


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

});


Так ?



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


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

freelancer

Avatar
Date: 7/22/2011
Reply


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

Alexander

Avatar
Date: 7/22/2011
Reply


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

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


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

freelancer

Avatar
Date: 7/22/2011
Reply


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

Alexander

Avatar
Date: 7/22/2011
Reply


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


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

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


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy