RangeCandles
Atom
1/20/2011
Valdis


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

Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 1/21/2011
Reply


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


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

Valdis

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


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

Valdis

Avatar
Date: 1/21/2011
Reply


да я уже свои свечки сделал .
а насчет рэйндж свечей , 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# это фактически крестики-нолики :)
Thanks:

Mikhail Sukhov

Avatar
Date: 1/24/2011
Reply


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


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

Code
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# это фактически крестики-нолики :)


Не понял аналогии.
Thanks: Valdis

Valdis

Avatar
Date: 1/24/2011
Reply


Mikhail Sukhov

Через CandleManager или просто перебор тиков?

да, через перебор тиков, в событии NewTrades вызываю метод , строящий свечки

Thanks:


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

loading
clippy