ActionStrategy() и свечи


ActionStrategy() и свечи
Atom
6/13/2011


Для работы со свечками в ActionStrategy доступны
Code
NewCandle(CandleToken)
Changed(Candle, ICandleManager)
Finished(Candle, ICandleManager)

А как получить доступ к _candleManager.CandlesFinished() ? т.е. как вызывать Action каждый раз по окончанию свечи ?
Я делаю так:
Code
When(_candleToken.NewCandle()).Do(delegate()
{
var finishedCandle = _candleManager.GetTimeFrameCandles(Security, _timeFrame, 2).FirstOrDefault();
}).MakePeriodical();

Но это явно не джедайский подход, хотелось бы что-то поэлегатнее, в идеале в духе _candleManager.CandlesFinished() - чтобы сразу получать список законченных свечек и работать с ними как-то так:
Code
When(_candleToken.NewCandleFinished()).Do(Action(Candle newCandle);


Tags:


Thanks:


1 2  >
Mikhail Sukhov

Avatar
Date: 6/14/2011
Reply


valenock Go to
хотелось бы что-то поэлегатнее, в идеале в духе _candleManager.CandlesFinished() - чтобы сразу получать список законченных свечек и работать с ними как-то так:
Code
When(_candleToken.NewCandleFinished()).Do(Action(Candle newCandle);



Хороший фича реквест. В 3.2.1 добавлю.
Thanks:

Alex Ander

Avatar
Date: 7/10/2011
Reply


Как передать в метод OnCandlesFinished сформированные свечи?

Code

this
    .When(_candleToken.CandlesFinished())
    .Do(OnCandlesFinished);
Thanks:

Mikhail Sukhov

Avatar
Date: 7/10/2011
Reply


Alex Ander Go to
Как передать в метод OnCandlesFinished сформированные свечи?

Code

this
    .When(_candleToken.CandlesFinished())
    .Do(OnCandlesFinished);


Code

this
    .When(_candleToken.CandlesFinished())
    .Do<IEnumerable<Candles>>(OnCandlesFinished);
Thanks: Alex Ander

Alex Ander

Avatar
Date: 7/11/2011
Reply


Code

            this
                .When(base.Security.Changed())
                .Do(OnChanged);

            this
                .When(_сandleToken.CandlesFinished())
                .Do<IEnumerable<Candle>>(OnCandlesFinished);


Второе событие вызывается отлично.
А первое - ни разу не вызвалось. Оно должно вызываться при каждом изменении цены инструмента?
Thanks:

Mikhail Sukhov

Avatar
Date: 7/11/2011
Reply


Alex Ander Go to
А первое - ни разу не вызвалось. Оно должно вызываться при каждом изменении цены инструмента?


При каждом изменении инструмента. А вот кода меняется сам инструмент - вопрос. Если Квик - то он никогда не меняется.
Thanks:

Alex Ander

Avatar
Date: 7/11/2011
Reply


В документации http://stocksharp.com/do...0-aba8-0d4b93dea60e.htm есть фрагмент:

Quote:

правило на событие изменения фьючерсного контракта (его цены):
Code

this
    .When(base.Security.Changed())
    .Do(ReHedge);


Thanks:

Mikhail Sukhov

Avatar
Date: 7/11/2011
Reply


Alex Ander Go to
В документации http://stocksharp.com/do...0-aba8-0d4b93dea60e.htm есть фрагмент:

Quote:

правило на событие изменения фьючерсного контракта (его цены):
Code

this
    .When(base.Security.Changed())
    .Do(ReHedge);




Это хеджирование опционов. И есть раздел доки для настройки Квика под опционы. В этом случае изменения будут приходить.
Thanks: Alex Ander

Alex Ander

Avatar
Date: 7/11/2011
Reply


Понятно.

Тогда пример: Security.LastTrade.Price = 190000 (фьючерс RIU1)
Нужно поставить событие на условие превышения Security.LastTrade.Price уровня 190200.

Code

            this
                .When(Security.LastTradePriceMore(new Unit(200)))// или 190200?
                .Do(MyAction);


Thanks:

Alexander

Avatar
Date: 7/11/2011
Reply


Alex Ander Go to
Понятно.

Тогда пример: Security.LastTrade.Price = 190000 (фьючерс RIU1)
Нужно поставить событие на условие превышения Security.LastTrade.Price уровня 190200.

Code

            this
                .When(Security.LastTradePriceMore(new Unit(200)))// или 190200?
                .Do(MyAction);




200
Thanks: Alex Ander

Alex Ander

Avatar
Date: 7/11/2011
Reply


Ни так, ни эдак MyAction не запускается. :(
Thanks:
1 2  >

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

loading
clippy