Где бродит свеча

Где бродит свеча
Atom
8/27/2012
alex123456


Пример SMA для Quik.
Тайм-фрейм 5 секунд.
Графики все отключены (с ними память жрёт ококо 600 Мб - 1 Гб и программа висит). Без графиков память 150 Мб.
После старта стратегии прошло 2 минуты.
Вопрос: Где бродят данные свечи, поступившие с
Code
_candleManager.Processing += (series, candle) =>

до значения индикатора
Code
LongSma.Process((DecimalIndicatorValue)candle.ClosePrice);
ShortSma.Process((DecimalIndicatorValue)candle.ClosePrice);


Tags:


Thanks:


< 1 2 3  >
alex123456

Avatar
Date: 8/31/2012
Reply


в class SmaStrategy добавляем метод:
Code
protected internal void Notify(string candle)
        {
            base.NotifyPropertyChanged(candle);
        }

в метод private void ProcessCandle(Candle candle) добавляем обращение к вышенаписанному методу
Code
Notify(_candle);

Тогда при изменении значения свечки сразу же изменяется параметр стратегии.
Т.е. работает цикл:
Code
this.GuiAsync(() => { TimeCandle.Content = candle.OpenTime.ToLongTimeString(); });---
---Sma.Process((DecimalIndicatorValue)candle.ClosePrice);---
---base.NotifyPropertyChanged(candle);---
---this.GuiAsync(() => { TimeCandleStrategy.Content = _strategy._candle; });

esper - спасибо!
Ответьте ещё на вопрос о объёме.
Thanks:

esper

Avatar
Date: 9/1/2012
Reply


Code
protected internal void Notify(string candle)
        {
            base.NotifyPropertyChanged(candle);
        }

его не надо добавлять, он есть в базовой стратегии.

Quote:
Ответьте ещё на вопрос о объёме.

Без логов от котирования ничего сказать нельзя.
Thanks:

alex123456

Avatar
Date: 9/1/2012
Reply


Опять всё про стратегию, сделки и объёмы.
Thanks:

alex123456

Avatar
Date: 9/1/2012
Reply


Использовалось вот это котирование:
Code
var strategy = new LastTradeQuotingStrategy(direction, Volume);

да при этом
Code
var strategy = new MarketQuotingStrategy(direction, Volume);

практически никакой разницы
Thanks:

esper

Avatar
Date: 9/1/2012
Reply


Еще раз, без логов от стратегии котирования ничего сказать нельзя.
Thanks:

alex123456

Avatar
Date: 9/1/2012
Reply


А где их взять?
Thanks:

MaximMM

Avatar
Date: 9/2/2012
Reply


alex123456
А где их взять?

Code
var strategy = new MarketQuotingStrategy(direction, Volume);

Для логирования сообщений необходимо добавить
Code
strategy
стратегию в LogManager.Sources
Thanks:

alex123456

Avatar
Date: 9/3/2012
Reply


Вот куча лог файлов.
Но там нет данных по значениям индикаторов.
По этим данным всё равно не понятно почему стратегия котирования делает столько сделок в самом начале (потом все нормально по 1 объёму, но не понятно в какое время (почему в этот момент, а не в другой)). В конце первого котирования - позиция может быть нулевой (т.е. сколько купили столько и продали - Смысл?).
Да, причём за каждую сделку берётся комиссия (например: 10 покупок и 10 продаж - комиссия за 2*10 +2*10=40 сделок и со стороны биржи и брокера).
Если попробовать вот это, по логике должна совершиться 1 сделка,
Code
// регистрируем заявку (обычным способом - лимитированной заявкой)
RegisterOrder(this.CreateOrder(direction, (decimal)Security.GetCurrentPrice(direction), Volume));

но совершается 10-25сделок на одну свечу, причём как в сторону покупки так и продажи и результат позиция около 0.
Просьба к тем кто разобрался, объясните что делает котирование при старте стратегии (на пальцах, по подробнее, с примером).
То же самое о RegisterOrder?
В моём понимании должна быть вот такая серия стратегий:
1. Мониторинг цен в стакане(во всех сделках и т.д.) без совершения сделок.
2. Выбор наилучшей цены на покупку или продажу и совершение одной сделки по заданному объёму ни больше, ни меньше.
2а. Выставляется стоп-лосс.
3. При наступлении необходимого условия - позиция переворачивается или закрывается.
Thanks:

esper

Avatar
Date: 9/3/2012
Reply


Больше похоже на проблемы в вызывающем коде. RegisterOrder точно один раз вызывается?
Thanks:

EugeneP

Avatar
Date: 9/4/2012
Reply


Да все таки похоже есть проблема в MarketQuotingStrategy..
пока тоже разобраться не могу с кучей заявок
Thanks:
< 1 2 3  >

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

loading
clippy