#62859 - Thu Jun 26 2014 08:46 PM
Сжатие - разжатие Ишимоку
|
journeyman
Registered: Thu Sep 05 2013
Записи: 54
|
Пишу следующий код var sec60 = sec.CompressTo(new Interval(60, DataIntervals.MINUTE)); var kijun60 = ctx.GetData("Kijun60", new string[] { PerKijun.ToString() }, delegate { var a = new KijunSen { Period = PerKijun, Context = ctx }; return sec60.Decompress(a.Execute(sec60)); });
вывожу на панель но оно не совпадает со значениями которые получаю на тф 1 час var kijun = ctx.GetData("Kijun", new string[] { PerKijun.ToString() }, delegate { var a = new KijunSen { Period = PerKijun, Context = ctx }; return a.Execute(sec); });
подскажите что не так.... PS: KijunSen из vvTSLtools
|
Наверх
|
|
|
|
#62868 - Thu Jun 26 2014 11:55 PM
Re: Сжатие - разжатие Ишимоку
[Re: chernikovd]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Если все это в одном скрипте, то схемотично проблема в следующем: sec -> CompressTo -> KijunSen -> Decompres -> график sec -> KijunSen -> график а период для KijunSen один и тот же.
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#62889 - Fri Jun 27 2014 12:52 PM
Re: Сжатие - разжатие Ишимоку
[Re: jhgjrht]
|
journeyman
Registered: Thu Sep 05 2013
Записи: 54
|
да это один график, я не понял схемотично должно так быть или это не правильно? var sec60 = sec.CompressTo(new Interval(60, DataIntervals.MINUTE)); sec -> CompressTo = sec60
var kijun60 = ctx.GetData("Kijun60", new string[] { PerKijun.ToString() }, delegate { var a = new KijunSen { Period = PerKijun, Context = ctx }; return sec60.Decompress(a.Execute(sec60)); });
для sec60 -> Kijun60 это a.Execute(sec60)
далее Decompres то что вышло из a.Execute(sec60) получили kijun60 , его выводим на график, получается не то!!
картинки приложил
я уже изучил код всех индикаторов ишимоку, и не понимаю почему производя те же действия с любым другим индикатором, такого не происходит...
Attachments
1й.jpg (240 downloads)2.jpg (201 downloads)
Отредактировано chernikovd (Fri Jun 27 2014 06:42 PM)
|
Наверх
|
|
|
|
#62906 - Fri Jun 27 2014 08:12 PM
Re: Сжатие - разжатие Ишимоку
[Re: chernikovd]
|
journeyman
Registered: Thu Sep 05 2013
Записи: 54
|
написал так var sec60 = sec.CompressTo(new Interval(60, DataIntervals.MINUTE)); var color1 = new Color(System.Drawing.Color.Black.ToArgb()); var Sec60_kijun60 = ctx.GetData("Kijun60_", new string[] { PerKijun.ToString() }, delegate { var a = new vvTSLtools.KijunSen { Period = PerKijun, Context = ctx }; return sec60.Decompress(a.Execute(sec60)); }); var kijun = ctx.GetData("Kijun", new string[] { PerKijun.ToString()+"2" },delegate { var a = new TSLab.Community.Ichimoku.KijunSen { Period = PerKijun, Context = ctx }; return a.Execute(sec); });
в итоге sec60.Bars.count = 6000 примерно , Sec60_kijun60.count = 33000 sec.Bars.count = 33000 примерно, kijun.count = 6000
я ниче не понял
|
Наверх
|
|
|
|
#62922 - Sat Jun 28 2014 05:10 PM
Re: Сжатие - разжатие Ишимоку
[Re: chernikovd]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
написал так ... var kijun = ctx.GetData("Kijun", new string[] { PerKijun.ToString()+"2" },delegate ... А это "+2" еще зачем? в итоге sec60.Bars.count = 6000 примерно , Sec60_kijun60.count = 33000 sec.Bars.count = 33000 примерно, kijun.count = 6000
я ниче не понял Я тоже не понял в чем тут у вас проблема. Обычно в одной часовой свече 6 десяти-минутных свечек. В вашем случае из 33 тысяч получилось 6 тысяч сжатых. Вполне допустимо. "Sec60_kijun60.count = 33000" ну функцию Decompress же вы вызываете, вот и кол-во значений в результате получается как в исходном источнике. А графики разные потому что индикаторы вы строите по разным свечам, да еще и с одинаковым "PerKijun".
Отредактировано jhgjrht (Sat Jun 28 2014 08:06 PM)
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#62947 - Sun Jun 29 2014 05:47 PM
Re: Сжатие - разжатие Ишимоку
[Re: jhgjrht]
|
journeyman
Registered: Thu Sep 05 2013
Записи: 54
|
нене... цифра 2 это так на всякий случай, и это не меняет дела... дальше по 33000 и 6000 я не запомнил точные значения но это не главное я скрипт прикреплю что было понятно, это самый последний вариант dll здесь https://cloud.mail.ru/public/be8e62132dc9/TSLab.Community.Ichimoku.dllсуть в следующем хочу сжать 5, 10, 15 минутный тф в часовой и на двух тф получить ишимоку, но не получается.. да к стати если менять местами расчет индикаторов со сжатие м и без сжатия местами происходит как на рисунке
Attachments
ishimoku_Demo.cs (107 downloads)3_.jpg (207 downloads)4_.jpg (180 downloads)ishimoku_Demo - 4.cs (72 downloads)
Отредактировано chernikovd (Sun Jun 29 2014 05:59 PM)
|
Наверх
|
|
|
|
#62949 - Sun Jun 29 2014 07:00 PM
Re: Сжатие - разжатие Ишимоку
[Re: chernikovd]
|
journeyman
Registered: Thu Sep 05 2013
Записи: 54
|
я все понял, вот кусок кода из индикатора var high = Context.GetData("Highest", new[] {Period.ToString()}, () => Series.Highest(source.HighPrices, Period));
то есть программа закэшировала в перем high с идентификатором new[] {Period.ToString()}, я два раза опрашиваю этот индикатор а он вместо того чтоб заново расчитать Series.Highest(source.HighPrices, Period) выдает мне старое значение из кэша !!!!
вот как надо var high = Context.GetData("Highest", new[] {Period.ToString()+ source.Interval.ToString() }, () => Series.Highest(source.HighPrices, Period));
и все заработало на картинке то что я хотел получить
Attachments
5.jpg (199 downloads)
Отредактировано chernikovd (Mon Jun 30 2014 05:43 AM)
|
Наверх
|
|
|
|
|
|