#40830 - Fri Apr 27 2012 02:29 PM
Блок ТрейлСтоп работает с ошибкой
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Выношу отдельной темой данную проблему: Выкладываю скриншот, по нему видно, что расчетный вход в лонг был 153105 (реальный 153095), скрипт стоп посчитал как 152985 и вывел на график, однако стоп заявку поставил как 152845. Почему это? Upd: Вот здесь http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=39940#Post39940 vito333, уже сталкивался с этой проблемой. Исправьте, пожалуйста.
Attachments
Безымянный.jpg (257 downloads)
|
Наверх
|
|
|
|
#40835 - Fri Apr 27 2012 03:05 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
параметры этого конкретного трейл-стопа не помешали бы
|
Наверх
|
|
|
|
#40836 - Fri Apr 27 2012 03:11 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: vito333]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
параметры этого конкретного трейл-стопа не помешали бы Стоп лосс: 0.227 Вкл трейл: 0.09 Трейл лосс: 0.2 Удивительно, что на экране рисует правильно, а заявка уходит неверно.
Отредактировано Ivan (Fri Apr 27 2012 03:12 PM)
|
Наверх
|
|
|
|
#40959 - Sun Apr 29 2012 02:10 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Глубокоуважаемый саппорт, есть у вас какое-то решение?
|
Наверх
|
|
|
|
#41022 - Wed May 02 2012 10:36 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: ViL]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
|
Наверх
|
|
|
|
#41083 - Wed May 02 2012 08:05 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Ребята, просматриваю код трейл стопа, и чего-то не нашел в нем места, где идет выбор расчетной цены: [HandlerName("Trail Stop")] [HandlerCategory("Position")] public class TrailStop : IPosition2Double { [HandlerParameter(true, "1.5", Min = "0.1", Max = "5", Step = "0.1", Name = "Stop Loss")] public double StopLoss { get; set; } [HandlerParameter(true, "0.5", Min = "0.1", Max = "3", Step = "0.1", Name = "Trail Enable")] public double TrailEnable { get; set; } [HandlerParameter(true, "0.5", Min = "0.1", Max = "3", Step = "0.1", Name = "Trail Loss")] public double TrailLoss { get; set; } public double Execute(IPosition pos, int barNum) { if (pos == null) { return 0; } double stop; var curProfit = pos.OpenMFEPct(barNum); if (curProfit > TrailEnable) { double shift = (curProfit - TrailLoss) / 100; stop = pos.EntryPrice * (1 + (pos.IsLong ? shift : -shift)); } else { double shift = (0 - StopLoss) / 100; stop = pos.EntryPrice * (1 + (pos.IsLong ? shift : -shift)); } var lastStop = pos.GetStop(barNum); if(lastStop == 0) { return stop; } return pos.IsLong ? Math.Max(stop, lastStop) : Math.Min(stop, lastStop); } } Код брал тут: http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=8511#Post8511
|
Наверх
|
|
|
|
#41084 - Wed May 02 2012 08:10 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
И еще, вот здесь вот не понял: http://www.tslab.ru/docs/api/interface_t...0f9e498a09a71b6"double TSLab.Script.IPosition.OpenMFEPct(int bar) Максимальный возможный доход позиции в процентах. Аргументы: bar Номер выбранной свечи. Возвращает: Возвращает минимальный возможный доход позиции в процентах." Почему же минимальный?
|
Наверх
|
|
|
|
#41089 - Wed May 02 2012 08:39 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
А вот, похоже и искомая ошибка, рассудите, пожалуйста, зачем вот тут:
else { double shift = (0 - StopLoss) / 100; stop = pos.EntryPrice * (1 + (pos.IsLong ? shift : -shift)); } var lastStop = pos.GetStop(barNum);
0 - StopLoss? Ведь должен быть просто StopLoss?
|
Наверх
|
|
|
|
#41120 - Thu May 03 2012 01:27 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
0 - StopLoss - то же самое, что -StopLoss, не ошибка
|
Наверх
|
|
|
|
#41122 - Thu May 03 2012 01:34 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: vito333]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Это ясно, но почему минус? Тогда бы далее было stop = pos.EntryPrice * (1 + (pos.IsLong ? -shift : shift)); Зачем инвертировать StopLoss?
|
Наверх
|
|
|
|
#41125 - Thu May 03 2012 01:58 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
не знаю, но сути это не меняет, это работает
|
Наверх
|
|
|
|
#41127 - Thu May 03 2012 02:14 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: vito333]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Вот суть то как раз меняет. Пока цена не достигла уровня TrailEnable, стоплосс должен прибавляться к цене входа в лонг, а не вычитаться из нее.
|
Наверх
|
|
|
|
#41128 - Thu May 03 2012 02:22 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
ну там же вот такая комбинация до активации трейла: double shift = (0 - StopLoss) / 100; stop = pos.EntryPrice * (1 + (pos.IsLong ? shift : -shift));
если сделать так double shift = StopLoss / 100; stop = pos.EntryPrice * (1 + (pos.IsLong ? -shift : shift)); то же самое будет
Отредактировано vito333 (Thu May 03 2012 02:23 AM)
|
Наверх
|
|
|
|
#41129 - Thu May 03 2012 02:24 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
стоплосс должен прибавляться к цене входа в лонг, а не вычитаться из нее. как так? не должен прибавляться никогда, это уже безубыток получится
|
Наверх
|
|
|
|
#41130 - Thu May 03 2012 02:30 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: vito333]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Да, действительно, тупанул я на ночь глядя.
|
Наверх
|
|
|
|
#41131 - Thu May 03 2012 02:56 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Может, загвоздка в коде, отвечающем за флаг "Исп. расч. цену"?
|
Наверх
|
|
|
|
#41132 - Thu May 03 2012 04:03 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Pooh-Bah
Registered: Wed Oct 26 2011
Записи: 2108
Loc: botland
|
может быть в том коде, который выкладывали разработчики, кода, относящегося к расчётной цене не было, поэтому я не скажу, корректно он работает или нет
косяк с бОльшим убытком я пофиксил в своих вариантах, с расчётной ценой - в родных трейлах всё как было
|
Наверх
|
|
|
|
#41140 - Thu May 03 2012 08:55 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: vito333]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Спасибо, Вито, за отзывчивость. Жду решения от разработчиков.
|
Наверх
|
|
|
|
#41141 - Thu May 03 2012 09:01 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
|
Наверх
|
|
|
|
#41146 - Thu May 03 2012 10:19 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Carpal Tunnel
Registered: Thu Oct 23 2008
Записи: 5492
|
чем вас смущает 0? В данном случае просто такая запись отрицания. Должен быть не "StopLoss", а "-StopLoss". Логика такая, что пока прибыль по MFE не превысила порогового значения, стоп отсчитывается от цены входа, далее он трейлится и считается от наивысшей точки. На счет документации не понятно, где вы это нашли. Здесь все верно написано: http://www.tslab.ru/docs/api/interface_t_s_lab_1_1_script_1_1_i_position.html
|
Наверх
|
|
|
|
#41149 - Thu May 03 2012 10:33 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Nektodron]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
С нолем разобрался ранее. А в документации - это вот здесь: http://www.tslab.ru/docs/api/interface_t...0f9e498a09a71b6По существу вопроса ответите? Почему линия стоплосса рисуется верно, а заявка ставится по другой цене, при условии, что цена берется расчетная? Уточню, неправильная заявка ставится пока curProfit <= TrailEnable, это в терминологии кода. Т.е. пока действует StopLoss.
Отредактировано Ivan (Thu May 03 2012 10:52 AM)
|
Наверх
|
|
|
|
#41179 - Thu May 03 2012 02:02 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Сейчас идет активное обсуждение вопроса с поддержкой по почте.
|
Наверх
|
|
|
|
#41199 - Thu May 03 2012 06:40 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
По логам выяснилось, что СтопЛосс рассчитывался не правильно, т.к. вход в позицию происходил на секунду раньше положенного. Вот чего выяснилось: "Что касается сделки на секунду раньше - думаю, это что-то на серверах Рикома. Вероятно, они используют серверное время, а не биржевое." Так что будьте внимательнее.
Вот только никак не пойму, если цена расчетная, значит и номер бара тоже должен быть расчетный? А, в реале получается, если время на секунду раньше, значит берется предыдущий бар и от него считается стоп. Где глянуть код, касающийся флага "Исп. расч. цену" для блока ТрейлСтоп?
|
Наверх
|
|
|
|
#41202 - Thu May 03 2012 07:11 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
По логам выяснилось, что СтопЛосс рассчитывался не правильно, т.к. вход в позицию происходил на секунду раньше положенного. Вот чего выяснилось: "Что касается сделки на секунду раньше - думаю, это что-то на серверах Рикома. Вероятно, они используют серверное время, а не биржевое." Так что будьте внимательнее.
Вот только никак не пойму, если цена расчетная, значит и номер бара тоже должен быть расчетный? А, в реале получается, если время на секунду раньше, значит берется предыдущий бар и от него считается стоп. Где глянуть код, касающийся флага "Исп. расч. цену" для блока ТрейлСтоп?
Именно "раньше"? Это ж круто!!! ))) Совет: Свяжитесь с рикомом, выясните NTP-сервера для синхронизации времени, которые они используют, а так же выудите утилиту, с которой они синхронизируют время и ее настройки. Установите всё это дело у себя. И вот тогда можно будет уже выставить притензии ТсЛаб, при повторении ситуевины. P.S. Биржа FORTS пользует ntp сервер 194.247.133.37 Синхронизация настроена на 1 раз в час. Утилита не важна. Я пользую D4. Из опыта: Финам пользует тот же сервер, что и биржа, с теми же настройками синхронизаций. Алор пользует отличные от биржи сервера: 0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org 0.se.pool.ntp.org 1.se.pool.ntp.org и использует свою утилиту автомат, которой ни с кем не делится, в результате, даже используя тот же ntp сервер порой влетаешь на 1,5 секунды разницы, а если пользовать биржевое время, вооще за день улететь можно на пару минут. С рикомом не работал, не в курсах, если чего раздабудете, кидайте сюда. Потом заставим модераторов сделать faq для всех по поводу времени ибо важно это очень.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#41203 - Thu May 03 2012 07:14 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: 777]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
На мамбе скорости нет, потому не выкладываю. Но там та же почти ситуевина. После слияния, на форуме ртс где-то видел, что время будет крутиться такое же как на фортсе.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#41204 - Thu May 03 2012 07:17 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: 777]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Разработчики клятвенно обещали вопрос с временем Рикома решить самостоятельно. Вот же ж, нюанс в каких мелочах то.
|
Наверх
|
|
|
|
#41206 - Thu May 03 2012 07:29 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
Carpal Tunnel
Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
|
Однако. Время это не мелочь. Время дороже денег )) Настоятельно рекомендую обратиться к брокеру и выложить данные тут.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика» Дизраэли.
|
Наверх
|
|
|
|
#41210 - Thu May 03 2012 08:03 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: 777]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Ув. разработчики, дайте код флага "Исп. расч. цену". Скрипт беспросветно мажет, совершая вход, например, в 19:49:59 вместо 19:50:00. Хочу понять, почему даже при расчетной цене и, соответственно - расчетном баре, берется цена предыдущего бара для подачи заявки на стоплосс.
|
Наверх
|
|
|
|
#41211 - Thu May 03 2012 08:12 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
"Расчетная цена может быть получена только, если вход в позицию прошел без запаздывания." Почему так? Какими ограничениями это вызвано? Ведь расчетная цена определяется на основании истории, совокупности предыдущих баров?
|
Наверх
|
|
|
|
#41214 - Thu May 03 2012 08:34 PM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
Хех, ну и как тут торговать, если заявка "по рынку" ушла в 19:50:00.39, а брокер вернул время сделки как 19:49:59, да еще и без долей секунд?
19:50:00.39[20]INFO :RTS-6.12:FORTS: Add command RtOpenByMarket 'Entry by market' entry=true
...
19:50:00.60[RicomSendRequestsThread]DEBUG:type=myorders line=3 7645840 2 1 6924 0 0 03.05.2012 19:49:59 0 1 0 1 0 0 0 0 0 0 0
Короче, полный швах.
Отредактировано Ivan (Thu May 03 2012 08:35 PM)
|
Наверх
|
|
|
|
#41301 - Sat May 05 2012 11:41 AM
Re: Блок ТрейлСтоп работает с ошибкой
[Re: Ivan]
|
addict
Registered: Sun Sep 19 2010
Записи: 453
|
"С Рикомом разберемся, напишем им письмо." Есть результат?
|
Наверх
|
|
|
|
|
|