У вас не стоит Flash Player
Page 2 of 2 < 1 2
Настройки
#32924 - Thu Nov 03 2011 05:32 PM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
var smaClose = Series.SMA(haClose, 20);

Наверх
#32930 - Fri Nov 04 2011 02:49 AM Re: #38 / Индикатор: Heiken Ashi [Re: Nektodron]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
а как делать "кубик" из индикатора, чтобы были входы-выходы?

upd. хотя не надо, пошёл в ветку со стратегиями, визуальные блоки не интересуют ...


Отредактировано vito333 (Fri Nov 04 2011 05:20 AM)

Наверх
#33077 - Wed Nov 09 2011 03:04 AM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
чуть соптимизирован по скорости


Attachments
HeikinAshi.zip (285 downloads)
Description: чуть соптимизирован по скорости работы



Наверх
#33232 - Thu Nov 10 2011 03:26 PM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
serg Offline
Pooh-Bah

Registered: Fri May 14 2010
Записи: 1663
Loc: Россия
Доброго дня !
А на кубиках входы выходы получились по Haiken.... ? Если можно , пример)))

Наверх
#33234 - Thu Nov 10 2011 03:31 PM Re: #38 / Индикатор: Heiken Ashi [Re: serg]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8143
Originally Posted By: serg
Доброго дня !
А на кубиках входы выходы получились по Haiken.... ? Если можно , пример)))

Нет, так не получиться. Вы же не торгуете этим инструментом.

Наверх
#33250 - Fri Nov 11 2011 07:58 AM Re: #38 / Индикатор: Heiken Ashi [Re: ViL]
serg Offline
Pooh-Bah

Registered: Fri May 14 2010
Записи: 1663
Loc: Россия
)))) smile
а если использовать Н.А. как "псевдо-источник" (т.к. к нему прикрутить связи) , тогда сделки будут проводиться на источнике ?
ЗЫ попробовал, не идет.... smile


Отредактировано serg (Fri Nov 11 2011 08:03 AM)

Наверх
#33954 - Tue Nov 29 2011 07:51 PM Re: #38 / Индикатор: Heiken Ashi [Re: serg]
jarilo Offline
enthusiast

Registered: Fri Mar 19 2010
Записи: 255
Что бы использовать HeikinAshi в скрипте можно просто рассчет его Open, Hi, Lo, или Close поместить в формулу и пользоваться результатом расчета. Вот пример как это сделать. Вот только правильно расчитать HAOpen по версии vito333 у меня не вышло. Там другая нежели в описании формула а какая по коду индюка я не понял.
Надо просить vito333 чтоб дал точную формулу по которой получается более сглаженная HeikinAshi.


Attachments
000001HeikenAshi.xml (244 downloads)


Наверх
#33966 - Wed Nov 30 2011 05:46 AM Re: #38 / Индикатор: Heiken Ashi [Re: jarilo]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
1. в последнем выложенном мной варианте "настоящий" Heikin Ashi, поэтому и свечки выглядят намного лучше. В исходном коде от SysKreator неверно считался haOpen
Code:
haClose = (C[i] + O[i] + L[i] + H[i]) / 4;
// далее - неверно!!! нужно использовать haOpen и haClose !!!
// haOpen = (  O[i - 1]   +   C[i - 1]  ) / 2;
// должно быть так:
haOpen = (haOn[i - 1] + haCn[i - 1]) / 2;
haLow = Math.Min(L[i], Math.Min(haOpen, haClose));
haHigh = Math.Max(H[i], Math.Max(haOpen, haClose));


2. я в кубиках не шарю, только на АПИ (С#)


Отредактировано vito333 (Wed Nov 30 2011 05:50 AM)

Наверх
#33977 - Wed Nov 30 2011 11:12 AM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
jarilo Offline
enthusiast

Registered: Fri Mar 19 2010
Записи: 255
Так вы просто кусок кода привели, его то я понять и не могу что из чего считается. Вы просто формулу расчета в одну строку приведите.

Потому как если считать по формуле:
HAOpen = (Open[i-1] + Close[i-1]) /2 -получается другой результат, нежели ваш. А вашу формулу я понять из за подстановок переменных не могу.
Что с чем складывать и делить чтоб получился на калькуляторе тот же что и у вас результат?

Наверх
#33996 - Wed Nov 30 2011 04:23 PM Re: #38 / Индикатор: Heiken Ashi [Re: jarilo]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
Code:
haClose = (C[i] + O[i] + L[i] + H[i]) / 4;
// далее - неверно!!! нужно использовать haOpen и haClose !!!
// haOpen = (  O[i - 1]   +   C[i - 1]  ) / 2;
// должно быть так:
haOpen = (haOn[i - 1] + haCn[i - 1]) / 2;
haLow = Math.Min(L[i], Math.Min(haOpen, haClose));
haHigh = Math.Max(H[i], Math.Max(haOpen, haClose));

с префиксом haXXX - параметры свечи Heikin Ashi (это haOpen haClose, haLow, haHigh), без префикса - параметры обычной свечи (O,L,C,H), haOn - список значений haOpen, haCn - список значений haClose.

Таким образом, сначала высчитаем значение Закрытия свечи HA (складывая O,C,L,H соответствующей обычной свечи)
haClose = (C[i] + O[i] + L[i] + H[i]) / 4;

затем высчитываем значение Открытия свечи HA
haOpen = (haOn[i - 1] + haCn[i - 1]) / 2;
беря значения haOpen и haClose предыдущей свечи HA

затем высчитываем Минимум свечи HA
haLow = Math.Min(L[i], Math.Min(haOpen, haClose));
выбирая минимум из Лоу обычной свечи, Открытия и Закрытия свечи HA

ну и напоследок так же считаем Максимум свечи HA

на самом деле всё легко понять, если взять из интернета оригинальную формулу и сравнить с этим кодом

Наверх
#34021 - Thu Dec 01 2011 12:19 AM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
jarilo Offline
enthusiast

Registered: Fri Mar 19 2010
Записи: 255
Да код не сложный вот только не понятен расчет HAOpen потому что для того чтоб его расчитать надо взять предыдущее значение HAOpen - получается заколдованный круг.

haOpen = (предыдущее значение haOpen ! + haClose предыдущий) /2
haClose считается элементарно а вот чтоб получить haOpen я уже должен знать его предыдущее значение а откуда ?
Как можно расчитать переменную haOpen если в ее расчете используется сама эта переменная? Откуда взять ее изначально?
Просто формула haClose = (O,C,H,L)/4 - это можно взять конкретные цифры и посчитать на калькуляторе.
А haOpen = (haOpen[i-1] - где взять эту цифру чтоб ручками посчитать на калькуляторе? Чему равен haOn[i-1] -?
Из каких Open,Close,Hi,Lo можно посчитать haOn[i-1] ???


Отредактировано jarilo (Thu Dec 01 2011 12:21 AM)

Наверх
#34022 - Thu Dec 01 2011 12:29 AM Re: #38 / Индикатор: Heiken Ashi [Re: jarilo]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Originally Posted By: jarilo
Да код не сложный вот только не понятен расчет HAOpen потому что для того чтоб его расчитать надо взять предыдущее значение HAOpen - получается заколдованный круг.

Чему равен haOn[i-1] -?
Для познавших Дао могу задать еще более медитативный вопрос:
чему будет равен haOn[0-1] -?
smile

Кому лень думать: возможный ответ = O[0]
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#34038 - Thu Dec 01 2011 12:56 PM Re: #38 / Индикатор: Heiken Ashi [Re: jhgjrht]
jarilo Offline
enthusiast

Registered: Fri Mar 19 2010
Записи: 255
Originally Posted By: jhgjrht
Кому лень думать: возможный ответ = O[0]


Под "О" - я думаю вы подразумеваете Open бара а вот под индексом "0" - что ?
Open [i] - это значение текущего расчетного бара
Open [i-1] - это значение предыдущего бара
что вы подразумеваете под индексом "0" ???

P.S. Если это шутка то по моему не уместна на таком форуме, если вы знаете как расчитать то просьба давать более развернутый ответ не все программируют некоторым это не понятно и не в силу каких либо умственных возможностей а в силу того что просто не все же занимаются программированием.

Наверх
#34045 - Thu Dec 01 2011 03:47 PM Re: #38 / Индикатор: Heiken Ashi [Re: jarilo]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
ну да, не программисту понять сложно

суть в следующем:
1. когда работаем с ценной бумагой (с графиком) в TSLab - мы работаем с массивом (списком) свечей. В каждой свече есть несколько значений - O, C, H, L и т.д. То, что это массив, можно понять по квадратным скобкам [], в которых указывается индекс значения, то есть какой элемент нам нужен. Нужно только помнить, что индексация массива начинается с 0, то есть первый элемент не первый, а нулевой, т.е. [0].
2. прежде чем делать расчёт свечей Heikin Ashi в коде создаём несколько массивов (списков) значений, которые нам потребуются, причём элементов в каждом массиве столько же, сколько свечей на графике. Таким образом, параллельно с массивом из, допустим, 1000 свечей ценной бумаги делаем массивы (тоже по 1000 элементов) для хранения нужных нам в расчётах значений
Code:
// это переменные, указывающие на массивы значений O,H,C,L оригинальных свечей
var C = source.ClosePrices;
var H = source.HighPrices;
var L = source.LowPrices;
var O = source.OpenPrices;
IList<Bar> HA = new List<Bar>(Bars.Count);
// тут создаём четыре массива для хранения значений haClose(haCn), haOpen(haOn), haLow(haLn), haHigh(haHn)
IList<double> haCn = new List<double>(C.Count);
IList<double> haHn = new List<double>(C.Count);
IList<double> haLn = new List<double>(C.Count);
IList<double> haOn = new List<double>(C.Count);

3. когда создаю самую первую свечу Heikin Ashi, конечно отсупаю от оригинальной формулы и беру значение оригинальной свечи, так как значения Heikin Ashi - пока нет. А вот на второй свече HA уже беру значение из предыдущей свечи, хотя там и значения не совсем те, что нужно smile. Так что первые 2 свечи на графике Heikin Ashi не совсем корректные. А дальше - всё ровно, берутся из массива предыдущие значения, они корректные.
4. то есть, теперь уже отвечая именно на вопрос, сначала "высчитываем" первую (т.е. "нулевую" [0]) свечу HA, просто подставляем в неё значения оригинальной свечи. Когда считаем вторую свечу HA - уже берём, когда нужно, значения предыдущей свечи (хоть они ещё и не Heikin Ashi, а от оригинальной). Ну а на третьей свече, берём значения со второй, а они уже HA.


Отредактировано vito333 (Thu Dec 01 2011 03:52 PM)

Наверх
#34047 - Thu Dec 01 2011 04:29 PM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
jarilo Offline
enthusiast

Registered: Fri Mar 19 2010
Записи: 255
Вот теперь понятно спасибо огромное.
Но получается чтоб вручную расчитать текущую свечу HA надо расчитать все свечи до нее т.е. 1000 свечей в рассматриваемом примере или достаточно расчитать последние 3 и третья свеча будет уже HA ?

Наверх
#34051 - Thu Dec 01 2011 05:01 PM Re: #38 / Индикатор: Heiken Ashi [Re: jarilo]
vito333 Offline
Pooh-Bah

Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
я думаю, совсем уж корректной будет не третья, а где-нибудь после 4-5 свечей, так как третья усредняет значения второй, а они не совсем ещё точно Heikin Ashi
но на это можно забить, на графиках обычно не 3-5 свечек


Отредактировано vito333 (Thu Dec 01 2011 05:02 PM)

Наверх
#34052 - Thu Dec 01 2011 05:04 PM Re: #38 / Индикатор: Heiken Ashi [Re: vito333]
jarilo Offline
enthusiast

Registered: Fri Mar 19 2010
Записи: 255
То есть в коде индикатора расчитываются с самого начала а для приблезительного совпадения гдето 5 свечей. Пробую уже если выйдет выложу кубики)
В кубиках нет понятий массива и рабоотать можно только с определенной свечой потому такой расчет сложен в кубиках

Ну вот что получилось на графике если наводить курсор на свечки и сравнивать Open(индюка) и HAOpen(по формулам) то они очень стали близки по значениям а HAClose в точности совпадает с индикатором.


Attachments
000001HeikenAshi.xml (315 downloads)



Отредактировано jarilo (Thu Dec 01 2011 05:20 PM)

Наверх
#60033 - Thu Dec 26 2013 06:12 PM Re: #38 / Индикатор: Heiken Ashi [Re: jarilo]
architect Offline
stranger

Registered: Fri Dec 06 2013
Записи: 8
r


Отредактировано architect (Thu Dec 26 2013 09:48 PM)

Наверх
Page 2 of 2 < 1 2


Moderator:  ViL, sar