#8882 - Sat Jul 24 2010 01:43 PM
#26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
|
stranger
Registered: Wed Apr 21 2010
Записи: 9
|
Привет всем, Готов еще один интересный индикатор для TSLab – индикатор Ишимоку (Ichimoku). Для версии программы 2.0 ЗДЕСЬ Для версии программы 1.2 без ошибок Здесь Стараниями jhgjrht Ниже дано его описание, взятое с http://www.forex-indicators.ru/description-indicator-ichimoku/Индикатор Ишимоку определяет уровни поддержки и сопротивления, а также точный временной интервал входа в рынок при пробое уровней. Также имеется толковая книга, описывающая работу с индикатором: «Индикатор Ишимоку как основа торговой системы», Терехов А.Ю. http://www.koob.ru/terehov_a_y/indikator_ishimoku_kak_osnovaОписание индикатора ИшимокуИндикатор Ишимоку Кинко Хайо представляет из себя набор из пяти линий (Тенкан-сен, Кинджун-Спен, Сенкоу-Спен «B», Чикоу-Спен). Он довольно эффективно работает при начале начинающейся новой тенденции, т.е четко выялвяет начало, направление и точки входа в рынок. Опишем кратко линии индикатора и какую функцию они выполняют. 1. Тенкан-Сен (разворотная линич) (красная линия) определяет краткосрочную линию тенденции, сигнализирующая начало «быстрой» тенденции. Показывает направление текущей краткосрочной тенденции и являясь средним значением за первый промежуток времени (high +low)/2 (high, low – максимум, минимум). Если линия Тенкан-Сен находится в восходящей направлении, то на рынке присутствует повышательная тенденция, если же линия направлена вниз- то на рынке присутствует нисходящий тренд. Если же линия параллельна оси времени – то на рынке затишься. 2. Киджун сен – (основная линия) (синяя линия) – долгосрочная линия тенденции. Показывает тренд более старшего временного промежутка, его направление. Т.е если линия киджун сен идет вверх- то рынок бычий, если же направлена вниз- то рынок медвежий. 3. Сенкоу-Спен «А» - (опережающая линия) определяется как середина торгового диапазона линий тенкан-сен и Кинжун-сен и сдвинутого вперед на величину второго временного промежутка. Линия сенкоу-спен является верхней границей «облака», а также сопротивлением и поддержкей. Сенкоу-Спен «В» - (опережающая линия) – определяется как середина максимума и минимума за длинный (третий) временной интервал и сдвинутый вперед на величину второго временного промежутка Сенкоу Спен «В». Также является нижней границе облака Ишимоку. 4 . Чикоу-Спен – (запаздывающая линия) это график цен закрытия, сдвинутый на некоторый временной промежуток. Обычно составляет 5, 9, 26, 34 Облако ишимоку.Облаком Ишимоку является промежуток между линиями Сенкоу-А и Сенкоу В и обычно штрихуется в другой цвет. Параметры индикатора ишимоку Параметрами по-умолчанию индикатора Ишимоку является: Тенкан-Сен: 9 Киджун-Сен: 26 Сенкон-Спен В: 52 Важная особенность индикатора состоит в том, что если цена располагается выше, так называемого, «облака, то на рынке повышательная тенденция. Если же цена располагается ниже «облака», то рынок медвежий. А если цена располагается внутри самого «облака», то это боковая тенденция и стоит находиться вне рынка. Исходный кодКод индикатора приведен ниже. Просьба спецов по .Net и по TSLab прокомментировать, где можно улучшить код-производительность и т.д. Планирую еще выкладывать индикаторы, хочется писать сразу хорошо.using System.Collections.Generic; using System.Linq; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.Script.Helpers;
namespace TSLab.Community.Ichimoku { public abstract class BaseSen { public virtual int Period { get; set; }
public IList<double> Execute(ISecurity source) { // for cacheing purpose using Context.GetData var high = Context.GetData("Highest", new[] { Period.ToString() }, () => Series.Highest(source.HighPrices, Period)); var low = Context.GetData("Lowest", new[] { Period.ToString() }, () => Series.Lowest(source.LowPrices, Period));
IList<double> list = new List<double>(high.Count); for (int i = 0; i < high.Count; i++) { var avg = (high[i] + low[i]) / 2; list.Add(avg); } return list; }
public IContext Context { get; set; } }
public class TenkanSen : BaseSen, IBar2DoubleHandler, IContextUses { [HandlerParameter(true, "9", Min = "3", Max = "25", Step = "1")] public override int Period { get; set; }
}
public class KijunSen : BaseSen, IBar2DoubleHandler, IContextUses { [HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")] public override int Period { get; set; } }
public class SenkouA : IBar2DoubleHandler, IContextUses { [HandlerParameter(true, "9", Min = "3", Max = "25", Step = "1")] public int TenkanPeriod { get; set; }
[HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")] public int KijunPeriod { get; set; }
public IList<double> Execute(ISecurity source) {
var tenkan = new TenkanSen { Period = TenkanPeriod, Context = Context }.Execute(source); var kijun = new KijunSen { Period = KijunPeriod, Context = Context }.Execute(source);
var count = source.HighPrices.Count + KijunPeriod; var result = new double[count]; for (int i = 0; i < source.HighPrices.Count; i++) { var middle = kijun[i] + (tenkan[i] - kijun[i]) / 2; result[i+KijunPeriod] = middle; } return result; }
public IContext Context { get; set; } }
public class SenkouB : IBar2DoubleHandler, IContextUses { [HandlerParameter(true, "52", Min = "25", Max = "255", Step = "1")] public int Period { get; set; }
[HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")] public int KijunPeriod { get; set; }
public IList<double> Execute(ISecurity source) { var avg = new TenkanSen { Period = Period, Context = Context }.Execute(source);
var count = source.HighPrices.Count + KijunPeriod; var result = new double[count]; for (int i = 0; i < source.HighPrices.Count; i++) { result[i + KijunPeriod] = avg[i]; } return result; }
public IContext Context { get; set; } }
public class Chinkou : IBar2DoubleHandler, IContextUses { [HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")] public int KijunPeriod { get; set; }
public IList<double> Execute(ISecurity source) { var close = source.ClosePrices;
var result = new double[close.Count-KijunPeriod]; for (int i = 0; i < result.Count(); i++) { result[i] = close[i + KijunPeriod]; } return result; }
public IContext Context { get; set; } }
Индикатор в редакторе Где находится
Attachments
Ichimoku Place.png (7398 downloads)Ichimoku Editor.png (7187 downloads)Ichimoku Chart.gif (8254 downloads)ichimoku-demo.xml (603 downloads)TSLab.Community.Ichimoku.dll.zip (655 downloads)TSLab.Community.src.zip (547 downloads)
Отредактировано ViL (Fri Mar 01 2019 03:05 PM)
|
Наверх
|
|
|
|
#10223 - Tue Aug 17 2010 04:06 PM
Re: Индикатор Ишимоку / Ичимоку / Ichimoku – код+dll
[Re: yaad]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
Классная вещь.Вообще люблю японские технологии,машины,электроника всё это проверенно временем.Качество как правило выше крыши.Надо скрипт слепить попробовать японский. Спасибо вам за труд!
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#10238 - Tue Aug 17 2010 08:22 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: yaad]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
yaad, а линия Шимоку должна опережать на 25 минут? Я просто не в курсе... Если компильнуть в таком коде: using System.Collections.Generic;
using System.Linq;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.Script.Helpers;
namespace TSLab.Community.Ichimoku
{
[HandlerCategory("Ichimoku")]
public abstract class BaseSen
{
public virtual int Period { get; set; }
public IList<double> Execute(ISecurity source)
{
// for cacheing purpose using Context.GetData
var high = Context.GetData("Highest", new[] { Period.ToString() },
() => Series.Highest(source.HighPrices, Period));
var low = Context.GetData("Lowest", new[] { Period.ToString() },
() => Series.Lowest(source.LowPrices, Period));
IList<double> list = new List<double>(high.Count);
for (int i = 0; i < high.Count; i++)
{
var avg = (high[i] + low[i]) / 2;
list.Add(avg);
}
return list;
}
public IContext Context { get; set; }
}
[HandlerCategory("Ichimoku")]
public class TenkanSen : BaseSen, IBar2DoubleHandler, IContextUses
{
[HandlerParameter(true, "9", Min = "3", Max = "25", Step = "1")]
public override int Period { get; set; }
}
[HandlerCategory("Ichimoku")]
public class KijunSen : BaseSen, IBar2DoubleHandler, IContextUses
{
[HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")]
public override int Period { get; set; }
}
[HandlerCategory("Ichimoku")]
public class SenkouA : IBar2DoubleHandler, IContextUses
{
[HandlerParameter(true, "9", Min = "3", Max = "25", Step = "1")]
public int TenkanPeriod { get; set; }
[HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")]
public int KijunPeriod { get; set; }
public IList<double> Execute(ISecurity source)
{
var tenkan = new TenkanSen { Period = TenkanPeriod, Context = Context }.Execute(source);
var kijun = new KijunSen { Period = KijunPeriod, Context = Context }.Execute(source);
var count = source.HighPrices.Count + KijunPeriod;
var result = new double[count];
for (int i = 0; i < source.HighPrices.Count; i++)
{
var middle = kijun[i] + (tenkan[i] - kijun[i]) / 2;
result[i+KijunPeriod] = middle;
}
return result;
}
public IContext Context { get; set; }
}
[HandlerCategory("Ichimoku")]
public class SenkouB : IBar2DoubleHandler, IContextUses
{
[HandlerParameter(true, "52", Min = "25", Max = "255", Step = "1")]
public int Period { get; set; }
[HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")]
public int KijunPeriod { get; set; }
public IList<double> Execute(ISecurity source)
{
var avg = new TenkanSen { Period = Period, Context = Context }.Execute(source);
var count = source.HighPrices.Count + KijunPeriod;
var result = new double[count];
for (int i = 0; i < source.HighPrices.Count; i++)
{
result[i + KijunPeriod] = avg[i];
}
return result;
}
public IContext Context { get; set; }
}
[HandlerCategory("Ichimoku")]
public class Chinkou : IBar2DoubleHandler, IContextUses
{
[HandlerParameter(true, "26", Min = "5", Max = "52", Step = "1")]
public int KijunPeriod { get; set; }
public IList<double> Execute(ISecurity source)
{
var close = source.ClosePrices;
var result = new double[close.Count-KijunPeriod];
for (int i = 0; i < result.Count(); i++)
{
result[i] = close[i + KijunPeriod];
}
return result;
}
public IContext Context { get; set; }
}
} То появится папочка Ишимоку, так мне кажется удобней пользовать большие индикаторы
Attachments
шимоку.jpg (7231 downloads)
Отредактировано 777 (Tue Aug 17 2010 08:26 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#10239 - Tue Aug 17 2010 08:31 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Да!, все красивые индикаторы имеют под собой (high[i]+low[i])/ 2, но такая средняя больше подходит к Форексу, там гэп-ов мало(зато если бывают, ого-го)
Предложение, пойти дальше чем япошки: (open[i]+low[i-1]+high[i-1]+close[i-1])/4 Тогда главная средняя будет учитывать открытие, что для русского рынка определяющее ...
Отредактировано 777 (Tue Aug 17 2010 08:36 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#10240 - Tue Aug 17 2010 08:37 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Хотя нет, так все загладим... можно просто (high[i]+low[i]+close[i]+open[i])/4
Кстати Вы взяли максим значения по периоду, наверно все же лучше брать все чистые значения по свече [i], потом сумма формулы по периоду делить на период. Так и для компа быстрее и средняя красивее...
Отредактировано 777 (Tue Aug 17 2010 08:40 PM)
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#11430 - Wed Sep 01 2010 01:26 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: 777]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
SenkouA при включенном обновлении в реальном времени в лаборатории как то не понятно рисует вперёд.
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#11433 - Wed Sep 01 2010 01:37 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: Nektodron]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
Что делать теперь?Редкий представитель страны восходящего солнца и не верный,басурманин.Надо его как то подправлять.Вдруг стрельнёт? Хотя то что он рисует на реальную ситуацию не влияет.Просто вводит в заблуждение визуализация.
Кстати он и начинает отрисовывать тоже не совсем удобно с нуля несколько дней держит.
Отредактировано profit (Wed Sep 01 2010 01:45 PM)
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#11434 - Wed Sep 01 2010 01:39 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: profit]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
Ещё бы знать это недостаток или преимущество.
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#11435 - Wed Sep 01 2010 01:48 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: profit]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
Он у меня уже лонг стратегический открыл и такая неадекватная ситуация.Реально куплены контракты.Что закрывать теперь что ли?
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#16354 - Fri Nov 05 2010 01:19 AM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: profit]
|
Pooh-Bah
Registered: Fri May 14 2010
Записи: 1663
Loc: Россия
|
Доброго времени всем ! Спасибо за редкий индикатор ! Хочу обратиться с просьбой к автору: 1.Возможно ли провести штриховку облака ? 2.Учитывая слабые познания в области програмирования ( как мои лично, так и многих), обьединить данный индикатор в одну папку. 3. И что то там м-р Nektоkdron заметил...... Заранее спасибо.
Отредактировано serg (Fri Nov 05 2010 01:20 AM)
|
Наверх
|
|
|
|
#19079 - Mon Dec 27 2010 02:05 AM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: serg]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Новогодний подарок! Бездвоздмездно, т.е. задаром! Исправленная версия индикатора, плюс модификация о которой 777 говорил, плюс торговая система на C#, плюс ссылка на книжку. Книжка на русском Система рабочая, в будущее НЕ заглядывает.
Attachments
Ichimoku.rar (699 downloads)
Отредактировано jhgjrht (Mon Dec 27 2010 02:49 PM)
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#19096 - Mon Dec 27 2010 11:06 AM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: jhgjrht]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
компилированна независимо?старую не снесёт?
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#19098 - Mon Dec 27 2010 11:09 AM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: profit]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
dll нет в папке.
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#19122 - Mon Dec 27 2010 02:52 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: profit]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
добавил в архив (в предыдущем сообщении) скомпилированную ДЛЛ
Имена классов те же, поэтому: либо старая версия, либо новая. Исходники прилагаются, так что можете сделать все, что пожелаете.
Отредактировано jhgjrht (Mon Dec 27 2010 02:53 PM)
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#19123 - Mon Dec 27 2010 03:00 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: jhgjrht]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
может цифру добавите к новой версии?старую сразу менять не хочется. особенно рабочую.
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#19126 - Mon Dec 27 2010 03:31 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: profit]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Пожалуйста. Специально для Вас. Еще добавил "IchimokuCloud" - это, типа, заливка облака, доступными средствами. Как все это сделать красиво, и в рамках одного индикатора объединить несколько линий и заливку - вопрос к разработчикам TSLab. С уважением и наилучшими пожеланиями в НГ!
Attachments
Ichimoku_v2.rar (794 downloads)
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#19127 - Mon Dec 27 2010 04:12 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: jhgjrht]
|
Pooh-Bah
Registered: Wed Jan 13 2010
Записи: 1835
|
Спасибо.
_________________________
Делаю простые вещи.
|
Наверх
|
|
|
|
#19130 - Mon Dec 27 2010 04:49 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: jhgjrht]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Молодца! Спасибо! С наступающим!
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#19355 - Fri Jan 07 2011 03:10 PM
Re: #26 Индикатор Ишимоку/Ичимоку/Ichimoku – код+dll
[Re: 777]
|
stranger
Registered: Mon Oct 25 2010
Записи: 5
|
Благодарю всех кто помогает А можно ли сделать сдвиг облака на N кол-во периодов, как это предусмотрено в квике? Ну оччч нужно :)))
|
Наверх
|
|
|
|
|
|