RangeCandles
Atom Ответить
20.01.2011


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

Теги:


Спасибо:




4 Ответов
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