#8594 - Fri Jul 16 2010 02:02 PM
#4 / Индикаторы: OBV, %R, FRC, MFI
|
enthusiast
Registered: Tue Apr 27 2010
Записи: 207
|
#4 / Индикаторы: OBV, %R, FRC, MFIOn Balance Volume (OBV)******************************* Технический индикатор Балансового Объема (On Balance Volume, OBV) связывает объем и изменение цены, сопровождавшее данный объем. Смысл этого индикатора, придуманного Джозефом Гранвиллем, прост. Если цена закрытия текущего бара выше закрытия предыдущего, значение объема текущего бара прибавляется к предыдущему значению OBV, если закрытие текущего бара ниже предыдущего, текущий объем вычитается из предыдущего значения Балансового Объема. Расчет:
• Если текущая цена закрытия выше предыдущей, то:
OBV (i) = OBV (i - 1) + VOLUME (i).
• Если текущая цена закрытия ниже предыдущей, то:
OBV (i) = OBV (i - 1) - VOLUME (i)
• Если текущая цена закрытия равна предыдущей, то:
OBV (i) = OBV (i - 1)
Williams Percent Range (%R) *********************************** Технический Индикатор Процентный Диапазон Вильямса (Williams’ Percent Range, %R) - это динамический индикатор, определяющий состояние перекупленности/перепроданности. Williams’ Percent Range очень похож на технический индикатор Stochastic Oscillator. Различие между ними состоит лишь в том, что первый имеет перевернутую шкалу, а второй строится с использованием внутреннего сглаживания. Значения индикатора в диапазоне от -80% до -100% указывают на состояние перепроданности. Значения в диапазоне от -20% до 0% свидетельствуют о том, что рынок перекуплен. Для построения индикатора Williams Percent Range в перевернутой шкале его значениям обычно присваивается отрицательный знак (например, -30%). При анализе отрицательный знак можно не учитывать. По общему для всех индикаторов перекупленности/перепроданности правилу, действовать по их сигналам лучше всего, дождавшись поворота цен в соответствующем направлении. Так, если индикатор перекупленности/перепроданности указывает на состояние перекупленности, то прежде чем продавать финансовый инструмент, разумно дождаться поворота цен вниз. Расчет: Формула расчета индикатора Williams’ Percent Range схожа с формулой для Stochastic Oscillator:
%R = -(MAX (HIGH (i - n)) - CLOSE (i)) / (MAX (HIGH (i - n)) - MIN (LOW (i - n))) * 100
Force Index (FRC) ********************** Технический Индикатор Индекс Силы (Force Index, FRC) измеряет силу быков при каждом подъеме и силу медведей при каждом спаде. Он связывает основные элементы рыночной информации: направление цены, ее перепады и объем сделок. Сглаживание с помощью короткой скользящей средней ( 2 периода) помогает найти благоприятные моменты для открытия и закрытия позиций. Если же сглаживание производится с помощью длинной скользящей средней (например, 13-периодной), то индекс выявляет перемены тенденций. Расчет: Сила каждого движения рынка определяется его направлением, размахом и объемом. Если цена закрытия текущего бара выше, чем предыдущего, то сила положительна. Если текущая цена закрытия ниже, чем предыдущая, то сила отрицательна. Чем больше различие в ценах, тем больше сила. Чем больше объем сделок, тем больше сила.
FORCE INDEX(i) = Вход1(i) * ((EMA(Вход2, N, i) - EMA (Вход2, N, i-1))
Вход1 - Рассчитываемый поток данных
Вход2 - Рассчитываемый поток данных, по умолчанию вход для Объема
Money Flow Index (MFI)***************************** Технический Индикатор Индекс Денежных Потоков (Money Flow Index, MFI) показывает интенсивность, с которой деньги вкладываются в ценную бумагу или выводятся из нее. Построение и интерпретация индикатора аналогична Relative Strenght Index, с той только разницей, что в MFI учитывается и объем. Расчет: Расчет значения технического индикатора Money Flow Index состоит из нескольких этапов. Сначала определяют типичную цену (Typical Prise, TP) данного периода:
TP = (HIGH + LOW + CLOSE) / 3
Затем рассчитывается величина денежного потока (Money Flow, MF): Если сегодняшняя типичная цена больше вчерашней, то денежный поток считается положительным. Если сегодняшняя типичная цена меньше вчерашней — денежный поток считается отрицательным. Положительный денежный поток (POSITIVE MONEY FLOW) — это сумма значений положительных денежных потоков за выбранный период. Отрицательный денежный поток (NEGATIVE MONEY FLOW) — это сумма значений отрицательных денежных потоков за выбранный период. Затем определяется денежное отношение (money ratio, MR) путем деления положительного денежного потока на отрицательный:
MR = POSITIVE MONEY FLOW / NEGATIVE MONEY FLOW
И, наконец, с помощью денежного отношения рассчитывается индекс денежных потоков:
MFI = 100 - (100 / (1 + MR))
Где: HIGH — максимальная цена текущего бара; LOW — минимальная цена текущего бара; CLOSE — цена закрытия текущего бара; VOLUME — объем текущего бара.
Attachments
OBV.rar (285 downloads)WilliamsPercentRange.rar (432 downloads)FRC.rar (233 downloads)MFI.rar (249 downloads)Индикаторы4.rar (387 downloads)
|
Наверх
|
|
|
|
#8805 - Thu Jul 22 2010 03:51 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: SysKreator]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
MFI ... сумма значений положительных денежных потоков за выбранный период А где период? Вы сделали только для дневного изменения?
Отредактировано 777 (Thu Jul 22 2010 03:52 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#8807 - Thu Jul 22 2010 04:16 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: 777]
|
enthusiast
Registered: Tue Apr 27 2010
Записи: 207
|
MFI ... сумма значений положительных денежных потоков за выбранный период А где период? Вы сделали только для дневного изменения? Да, косяк. Сейчас в коде просто нарастающим итогом без периода. Исправлю. Пасиба
|
Наверх
|
|
|
|
#8808 - Thu Jul 22 2010 04:22 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: SysKreator]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
А я уже почти, Вы мне скажите, а как объему период присвоить? var vol = Context.GetData("Volumes", new[] {Period.ToString()}, () => Series.Volumes(source.Volumes, Period)); Ругается на меня и на Volume и на Volumest и на Volest(на подобие highest делаю )
Отредактировано 777 (Thu Jul 22 2010 04:35 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#8818 - Thu Jul 22 2010 06:00 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: 777]
|
enthusiast
Registered: Tue Apr 27 2010
Записи: 207
|
MFI ... сумма значений положительных денежных потоков за выбранный период А где период? Вы сделали только для дневного изменения? Исправил. Теперь с периодом.
Attachments
MFI.rar (289 downloads)
|
Наверх
|
|
|
|
#8820 - Thu Jul 22 2010 06:05 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: SysKreator]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Круто! Спасибо! Оказывается можно было сделать все в счетчике... А все же, если только период для объема нужен будет, как его можно назначить только для объема?
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#8822 - Thu Jul 22 2010 06:09 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: 777]
|
enthusiast
Registered: Tue Apr 27 2010
Записи: 207
|
А я уже почти, Вы мне скажите, а как объему период присвоить? var vol = Context.GetData("Volumes", new[] {Period.ToString()}, () => Series.Volumes(source.Volumes, Period)); Ругается на меня и на Volume и на Volumest и на Volest(на подобие highest делаю ) Ну да, в Series нет такой функции А звучит прикольно - Volumest. А что хотите сделать с объемом в итоге?
|
Наверх
|
|
|
|
#8823 - Thu Jul 22 2010 06:13 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: 777]
|
enthusiast
Registered: Tue Apr 27 2010
Записи: 207
|
Круто! Спасибо! Оказывается можно было сделать все в счетчике... А все же, если только период для объема нужен будет, как его можно назначить только для объема? Пока не понял, что хотите сделать с ним?:) Суммировать за период, вычислить наибольшее значение или что-то еще?
|
Наверх
|
|
|
|
#8825 - Thu Jul 22 2010 06:19 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: SysKreator]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Круто! Спасибо! Оказывается можно было сделать все в счетчике... А все же, если только период для объема нужен будет, как его можно назначить только для объема? Пока не понял, что хотите сделать с ним?:) Суммировать за период, вычислить наибольшее значение или что-то еще? Все хочу! Как суммировать за период и как сделать, что бы считал наибольшее значение за период ????!!!
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#8833 - Thu Jul 22 2010 09:45 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: 777]
|
enthusiast
Registered: Tue Apr 27 2010
Записи: 207
|
Вау! Сделать вот так Суммирование объемов за период и максимум объемов за период:
[HandlerParameter]
public int Period { get; set; }
public IList<double> Execute(ISecurity source)
{
var vol_sum = Context.GetData("SummFor", new[] { Period.ToString() },
() => Series.SummFor(source.Volumes, Period));
var vol_high = Context.GetData("Highest", new[] { Period.ToString() },
() => Series.Highest(source.Volumes, Period));
Что еще можно сделать с объемами написано вот здесь http://www.tslab.ru/docs/api/class_t_s_lab_1_1_script_1_1_helpers_1_1_series.html
|
Наверх
|
|
|
|
#8834 - Thu Jul 22 2010 09:47 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: SysKreator]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Спасибо огромное!!! Стало многое понятней!!!
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#8857 - Fri Jul 23 2010 12:35 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: SysKreator]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
SysKreator а Вы не сделаете ради примера индикатор: Индикатор "Индекс положительного объема" (PVI) изменяется по периодам, в которых значение объема увеличилось по сравнению с предыдущим периодом. В связи с тем, что рост цен чаще всего связан с увеличением объемов, то PVI будет обычно изменяться в направлении повышательного тренда: Описание: Индикатор "Индекс положительного объема" (PVI) изменяется по периодам, в которых значение объема увеличилось по сравнению с предыдущим периодом. В связи с тем, что рост цен чаще всего связан с увеличением объемов, то PVI будет обычно изменяться в направлении повышательного тренда.
Начальное значение PVI:
PVI0 = 1.
Если объем текущего периода больше объема предыдущего, то
PVIi = PVIi-1 + (PVIi-1 * (Pi - Pi-1) / Pi-1),
где Pi - цена текущего периода, Pi-1 - цена предыдущего периода.
Если объем текущего периода меньше объема предыдущего, значение PVI текущего периода принимают равным значению PVI для предыдущего периода:
PVIi = PVIi-1.
Объясню почему прошу. Там используется предыдущее значение индикатора в самом индикаторе, т.е. PVI=PVI[i-1] Никак не могу справиться. Делаю вот так: using System.Collections.Generic;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.DataSource;
using TSLab.Script.Helpers;
namespace PositiveVolumeIndex
{
public class PVI : IBar2DoubleHandler, IContextUses
{
[HandlerParameter]
public int Period { get; set; }
public IList<double> Execute(ISecurity source)
{
var vom = Context.GetData("Highest", new[] { Period.ToString() },
() => Series.Highest(source.Volumes, Period));
var vol = source.Volumes;
var closes = source.ClosePrices;
IList<double> p_r = new List<double>(closes.Count);
double pvi=1;
p_r.Add(0);
for (int i = 0; i < closes.Count; i++)
{
if(vol[i]>vol[i-1])
{
pvi = pvi[i-1] + (pvi[i-1] * (closes[i] - closes[i-1]) / closes[i-1]);
}
else
{
pvi =pvi[i-1];
}
p_r.Add(pvi);
}
return p_r;
}
public IContext Context { get; set; }
}
} Но компилятор на меня ругается: Невозможно применить индексирование через [] к выражению типа "double" (CS0021)
Отредактировано 777 (Fri Jul 23 2010 12:38 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#8859 - Fri Jul 23 2010 12:43 PM
Re: #4 / Индикаторы: OBV, %R, FRC, MFI
[Re: Nektodron]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
у вас переменная pvi определна как обычное число, а вы к ней как к массиву обращаетесь Да, я уже разбираюсь потихоньку, спасибо! СисКреатор, не надо делать, думаю сейчас осилю...
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
|
|