#82058 - Fri Jun 23 2017 12:43 PM
Оптимизация таймфрейма
|
member
Registered: Thu Oct 16 2014
Записи: 101
|
Здравствуйте, подскажите пожалуйста, кто нибудь пробовал оптимизировать таймфрейм как параметр скрипта.
Я попробовал оптимизировать таймфрейм компрессии скрипта, сначала вылезла ошибка индекса за пределами диапазона, я загнал этот параметр в расчет Startbar. Ошибка перестала вылазить, но получаются странные вещи, часть результатов оптимизации не сходиться с их реальным применением, то есть когда я двойным щелчком устанавливаю выбранные результаты скрипт показывает совсем другие числа.
Кто нибудь сталкивался с такой проблемой?
|
Наверх
|
|
|
|
#82062 - Fri Jun 23 2017 02:34 PM
Re: Оптимизация таймфрейма
[Re: Vladimir2803]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8134
|
Такое бывает, если сначала сделать оптимизацию, потом изменить скрипт. Оптимизированное уже не будет совпадать, по понятным причинам. Еще возможны сценарии такого поведения, нужно хотя бы видеть скрипт, что он и как делает, что бы рассуждать о них. Когда есть вопрос о работе с АПИ, всегда можно легко проверить себя, создав в визуале прототип и посмотреть ,что сделал кодогенератор. На одном уровне с папкой логов - папка temp, новые компиляции *.cs идут сверху.
|
Наверх
|
|
|
|
#82068 - Fri Jun 23 2017 03:27 PM
Re: Оптимизация таймфрейма
[Re: Vladimir2803]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
С большой долей уверенности, могу сказать, что проблема из-за некорректной работы какого-то индикатора. Точнее индикатор не привязывается к таймфрейму и при оптимизации берет из кеша несоответствующие данные. Вот пример, в контексте проблемы
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#82073 - Fri Jun 23 2017 11:00 PM
Re: Оптимизация таймфрейма
[Re: ViL]
|
member
Registered: Thu Oct 16 2014
Записи: 101
|
Такое бывает, если сначала сделать оптимизацию, потом изменить скрипт. Оптимизированное уже не будет совпадать, по понятным причинам. Еще возможны сценарии такого поведения, нужно хотя бы видеть скрипт, что он и как делает, что бы рассуждать о них. Когда есть вопрос о работе с АПИ, всегда можно легко проверить себя, создав в визуале прототип и посмотреть ,что сделал кодогенератор. На одном уровне с папкой логов - папка temp, новые компиляции *.cs идут сверху. Скрипт после оптимизации я не меняю, просто устанавливаю в него параметры из таблицы оптимизации двойным щелчком. Про визуальный редактор я знаю, сам часто пользуюсь этой фишкой когда хочу посмотреть как сделать что то неизвестное, но целиком свой скрипт там сделать будет для меня проблематично, так как прийдеться изучать как им полноценно пользоваться.
|
Наверх
|
|
|
|
#82075 - Fri Jun 23 2017 11:33 PM
Re: Оптимизация таймфрейма
[Re: jhgjrht]
|
member
Registered: Thu Oct 16 2014
Записи: 101
|
С большой долей уверенности, могу сказать, что проблема из-за некорректной работы какого-то индикатора. Точнее индикатор не привязывается к таймфрейму и при оптимизации берет из кеша несоответствующие данные. Вот пример, в контексте проблемы Спасибо огромное за помощь, вы просто волшебник!! Прочитал тему по вашей ссылке, подправил свой скрипт и все заработало как надо. Если не сложно посмотрите грамотно ли я все прописал из индикаторов в скрипте только канал для стопов, оптимизирую: - Compress_time - Stop_S - Stop_L
var compressed = source.CompressTo(new Interval(Compress_time, DataIntervals.MINUTE));
IList<double> cStop_S = ctx.GetData("cStop_S", new string[] {Stop_S .ToString(),Compress_time.ToString()},
delegate { return Series.Highest(compressed.HighPrices, Stop_S); });
IList<double> cStop_L = ctx.GetData("cStop_L", new[] {Stop_L .ToString(),Compress_time.ToString() },
delegate { return Series.Lowest(compressed.LowPrices, Stop_L); });
var DStop_L = compressed.Decompress(cStop_L, DecompressMethodWithDef.Default);
var DStop_S = compressed.Decompress(cStop_S, DecompressMethodWithDef.Default);
Exit_Short = DStop_S[bar];
Exit_Long = DStop_L[bar];
else
{
LongPos.CloseAtStop(bar+1,Exit_Long, "Stop_Long");
}
// Здесь идет другой блок видения короткой позиции а не два else подряд
else
{
ShortPos.CloseAtStop(bar+1,Exit_Short,"Stop_Short_2");
}
|
Наверх
|
|
|
|
#82076 - Sat Jun 24 2017 12:08 AM
Re: Оптимизация таймфрейма
[Re: Vladimir2803]
|
member
Registered: Thu Oct 16 2014
Записи: 101
|
И еще такой вопрос: Можно ли как то сделать, что бы свечи компрессии не обрубались в конце дня?
|
Наверх
|
|
|
|
#82077 - Sat Jun 24 2017 09:59 AM
Re: Оптимизация таймфрейма
[Re: Vladimir2803]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Пожалуйста! Вроде нормально. Синтаксически можно чуть короче: var DStop_L = ctx.GetData( "cStop_L", new[] { Stop_L.ToString(), Compress_time.ToString() }, () => compressed.Decompress( Series.Lowest( compressed.LowPrices, Stop_L ) ) ); Нарезание свечей при компрессии происходит только по временному интервалу, поэтому, если промежуток между исходными свечами больше этого интервала, то и сжатые свечи разделятся. Ночь, например, на фортсе длится 10 часов и использование любого интервала сжатия меньше этого приведет к новой сжатой свече в начале дня. Штатной возможности сжимать свечи группами по указанному их количеству нет, насколько мне известно.
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#82099 - Sun Jul 02 2017 07:13 AM
Re: Оптимизация таймфрейма
[Re: jhgjrht]
|
member
Registered: Thu Oct 16 2014
Записи: 101
|
Пожалуйста! Вроде нормально. Синтаксически можно чуть короче: var DStop_L = ctx.GetData( "cStop_L", new[] { Stop_L.ToString(), Compress_time.ToString() }, () => compressed.Decompress( Series.Lowest( compressed.LowPrices, Stop_L ) ) ); Нарезание свечей при компрессии происходит только по временному интервалу, поэтому, если промежуток между исходными свечами больше этого интервала, то и сжатые свечи разделятся. Ночь, например, на фортсе длится 10 часов и использование любого интервала сжатия меньше этого приведет к новой сжатой свече в начале дня. Штатной возможности сжимать свечи группами по указанному их количеству нет, насколько мне известно. Я так понял если использовать ваш вариант расчета скрипта, то последующая декомпрессия не нужна? А поможет ли в ситуации с обрезанием свечей установка точного времени первой свечи? по моему в tslab это называется сдвиг( видел инструкцию на сайте rusalgo). Я так понимаю что в таком случае обрежиться только последняя свеча дня.
|
Наверх
|
|
|
|
#82135 - Mon Jul 10 2017 02:22 PM
Re: Оптимизация таймфрейма
[Re: Vladimir2803]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Нужна, и она там есть (функция Decompress). Я лишь скомпоновал вызовы функций в две строки.
Поэкспериментируйте...
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
|
|