Исполнение Strategy по Событию, а не по Интервалу.

Исполнение Strategy по Событию, а не по Интервалу.
Atom
08.06.2010
HaMMeR


Алгоритм который я использую подразумевает вызов метода process()
класса Strategy не по интервалу а по событию изменение цены.
Каким образом можно осуществить это?

Теги:


Спасибо:


1 2 3  >
Mikhail Sukhov

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


Запоминается цена на первой итерации. Каждый раз она сравнивается с
текущими. Случилось условие - сработал алгоритм.

Спасибо:

sergun

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


Но повлиять на то, что process() вызывается именно через промежутки
времени никак нельзя?
Кастомизировать его вызов именно по событию определенного типа..

Ведь если задаться даже небольшим интервалом, все равно можно
пропустить существенное для стратегии событие.

Спасибо:

takanaev

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


Также была потребность реализации без-таймфреймовой стратегии,
посмотрел на класс Strategy в библиотеке и сделал свой.

Спасибо:

sergun

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


В смысле в виде наследника Strategy? Или вообще не использовали
Strategy?

Спасибо:

takanaev

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


Совсем не использовал Strategy/

Спасибо:

Mikhail Sukhov

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


Если вообще отказаться от интервала - то что такая стратегия будет
мониторить?

Спасибо:

HaMMeR

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


Событие изменение цены.
Я понимаю что можно сделать это и по другому, например как в посте 2,
Но тут программа будет попусту вызывать process() каждые n времени.
А так если цена не изменяется, то и не надо вызывать process().
Пример грубый, но нужный.

Спасибо:

Mikhail Sukhov

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


А какое событие будете использовать при этом?

Спасибо:

takanaev

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


У меня просто после соединения и получения всех ЦБ была необходимость
как можно часто высчитывать некий индикатор и принимать решение о
позиции. Поэтому просто сделал что-то вроде этого:

Код

net Thread(Robot).Start();
...
void Robot()
{
while(true)
{
// считаем наши индикаторы
// принимаем решение о позиции
}



Но это просто у меня была такая необходимость как можно чаще
мониторить ситуацию.
Поэтому если уж использовать существующую библиотеку, то может просто
построить некий базовый класс стратегий без интервала, а поверх
интервальный, кому нужно.

Спасибо:

Mikhail Sukhov

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


1. Фактически, реализовали то же самое, что и StrategyManager.
2. Укажите интервал TimeSpan.Zero для Strategy и получите такой же
вечный цикл без ожидания.
3. С Квиком может и не принести желаемого (уверен почти на 100). Не
умеет он так быстро данные перегонять.

Спасибо:
1 2 3  >

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

loading
clippy