RangeCandles
Atom
20.01.2011
Valdis


Михаил, а почему у вас RangeCandles строятся по диапазону от открытия свечи , а не по настоящему рейнджу от хая до лоу ? это же в текущей реализации кресто-нули какие то . в итоге у меня 100п свечи выглядят так : open,high,low,close 185100, 185150,185000,185000 получается рейдж свечи 150 п а не 100 как я думал регистрируя _candleManager.RegisterRangeCandles(_RIH, 100); или я не прав и у вас реализован реальный диапазон от хая до лоу и это я где то неверно написал код ?


Теги:


Спасибо:


Mikhail Sukhov

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


Valdis: Михаил, а почему у вас RangeCandles строятся по диапазону от открытия свечи , а не по настоящему рейнджу от хая до лоу ? это же в текущей реализации кресто-нули какие то .

Это не понял, что значит настоящий.

Valdis: в итоге у меня 100п свечи выглядят так : open,high,low,close 185100, 185150,185000,185000 получается рейдж свечи 150 п а не 100 как я думал регистрируя

Была свечка на 99п. Пока заканчивать формирование рано. Потом приходит сделка в 5 п. И уже больше чем 100, на чем и заканчивается. У Вас так?

Спасибо:

Valdis

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


да я уже свои свечки сделал . а насчет рэйндж свечей , Range-бары строятся следующим образом: как только размах колебаний цен (High-Low) внутри текущего бара достигнет заданного порогового уровня, с приходом нового тика выше High или ниже Low сразу начнет строиться новый бар. В результате все бары будут иметь примерно одинаковый размах колебаний High-Low. Но при этом период времени, в течение которого будет строиться каждый из баров, будет различным для каждого бара.

range=100; if (high-low)> range рисуется следующая свечка причем учитываются текущие high и low цены внутри свечи, ведь к примеру цена сходив вверх но не превысив границ диапазона может уйти вниз .

а в вашем варианте if (high-open) > range else (open-low) >range рисуется новая свечка например ставим рейндж =100 , открытие 120000 затем цена сбегала на 120050, не дойдя до верхней границы и развенулась вниз, до 119950, у вас еще свечка не закончилась, а рейндж от хая до лоу уже 100 пунктов далее цена ушла до 119900 где у вас закончилась эта свеча, а рейндж внутри неё уже 150 пунктов, при заданном начально в 100п в итоге диапазон внутри свечи иногда может быть больше чем заданный рейндж, что на мой взгляд не верно, но на вкус и цвет товарищей нет :) поэтому каждый может строить свечки как хочет. p.s. в текущей реализации рэйндж бары из s# это фактически крестики-нолики :)

Спасибо:

Mikhail Sukhov

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


Valdis: да я уже свои свечки сделал .

Через CandleManager или просто перебор тиков? По идее должно работать через наследование от RangeCandleFactory (в доке я описал, как регистрировать свои фабрики). И код, судя по алго, должен быть таким:

class MyRangeCandleFactory : RangeCandleFactory
{
	public override bool IsCandleFinished(CandleToken token, RangeCandle currentCandle, Trade trade)
	{
		return
			trade.Price < (double)(currentCandle.HighPrice - currentCandle.PriceRange) ||
			trade.Price > (double)(currentCandle.LowPrice + currentCandle.PriceRange);
	}
}

Valdis: а насчет рэйндж свечей , Range-бары строятся следующим образом: как только размах колебаний цен (High-Low) внутри текущего бара достигнет заданного порогового уровня, с приходом нового тика выше High или ниже Low сразу начнет строиться новый бар. В результате все бары будут иметь примерно одинаковый размах колебаний High-Low. Но при этом период времени, в течение которого будет строиться каждый из баров, будет различным для каждого бара.

range=100; if (high-low)> range рисуется следующая свечка причем учитываются текущие high и low цены внутри свечи, ведь к примеру цена сходив вверх но не превысив границ диапазона может уйти вниз .

а в вашем варианте if (high-open) > range else (open-low) >range рисуется новая свечка например ставим рейндж =100 , открытие 120000 затем цена сбегала на 120050, не дойдя до верхней границы и развенулась вниз, до 119950, у вас еще свечка не закончилась, а рейндж от хая до лоу уже 100 пунктов далее цена ушла до 119900 где у вас закончилась эта свеча, а рейндж внутри неё уже 150 пунктов, при заданном начально в 100п в итоге диапазон внутри свечи иногда может быть больше чем заданный рейндж, что на мой взгляд не верно,

Мне Ваш алгоритм больше нравиться. И как сказал коллега Pike, в Кванте такой же алгоритм. Куда я против вас двоих?

В следующей версии сделаю как Вы написали.

Valdis: p.s. в текущей реализации рэйндж бары из s# это фактически крестики-нолики :)

Не понял аналогии.

Спасибо: Valdis

Valdis

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


Mikhail Sukhov: Через CandleManager или просто перебор тиков? да, через перебор тиков, в событии NewTrades вызываю метод , строящий свечки

Спасибо:


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

loading
clippy