1
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 15 Апреля 2025, 14:34:18 »TS2000i Data Window?
Нет, в TS 9.1 - как увеличить цифры и прочие записи во всплывающей табличке?
См. вложение:
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
TS2000i Data Window?
I explore the data file a bit and found many duplicate dates from May 2019 onwards. TS2000i choked on the data.
Дневные данные с временем 0000 вряд ли прочитаются. Либо ставьте время 23:58, либо удалите время, либо стройте дневные бары на базе внутридневных баров. Последний вариант предпочтительнее.
I use this one from 18 Dec 2024 and all work okay.
Reply #27 on: 18 December 2024, 00:26:42
https://gelium.net/forum/index.php?topic=2497.msg19385#msg19385
Файл портфеля с криптовалютами.
О кроссах моё субъективное мнение, которое публиковал в Телеге:ЦитироватьНа базовых парах шансы есть и они достаточно хорошие, чтобы хотя бы не слить. На кроссах шансов нет от слова совсем. По крайней мере я не знаю ни одной рабочей методики для кроссов. Все попытки энтузиастов играться на кроссах сетками с Мартином заканчиваются сливами. У вас есть убеждение, что на кроссах можно зарабатывать? Обоснуйте его десятком примеров торговых решений.
Сообщение Gints:ЦитироватьДобрый день! У меня достаточно хороший опыт с AUDCAD; NZDCAD . Это не кроссы, минорс скорее. Тем более они представляют разные регионы с CAD. Конечно, кросс AUDNZD очень тяжёлый, как большинство кроссов. Если ошибся, можно застрять на месяц и более.
Моё мнение: кроссы - это пустая трата времени. Если я ошибаюсь, примеры в студию.
Дело в том, что я торгую через московского брокера, у которого нет ни металлов, ни индексов, ни энергоносителей, ни крипты... - сурово в общем - и отсутствие ещё и кросс-курсов, делает работу вообще проблематичной...
Не могли бы Вы пойти на встречу с моей проблемой - и запустить Кросс-курсы и валюты? :'(
Какие символы вам нужны? Про кроссы следующий пост. Торговать криптой можно через криптобиржи. Никто не заставляет работать только с одним российским брокером.ЦитироватьПС. Могу войти на форум только через VPN. У всех так или только у меня?
Должно работать без VPN.
Ну если прямых указаний на ошибки TS нет, то и нет конфликта с системой. У меня были "заморочки" с Multicharts и Win 10, а проблема появилась внезапно.
Панель управления -> Администрирование-> Журналы Windows -> Система и Приложение
Вопрос на всякий случай: посмотрите, windows в свои логи ничего (ошибки) не пишет?
А можно попробовать на одной виртуальной машине поставить TS и проверить работу индикатора, а на другой ProSuite2000i и проверить работу индикатора...Попробуйте сначала на чистую виртуальную машину поставить TS и проверить работу индикатора, так проще будет, чтоб с системой не возиться..
Код сложный и трудно ремонтируемый, найти ошибку с налёту не получится! По своему опыту, в больших кодах не всегда вылетает ошибка деления на нуль, TS продолжает расчёт, т.е. необходимопроверить все операции деления на переменную и возможность этой переменной принимать нулевые значения.По оформлению кода, некоторые заметки...
**********************************************
было:
If (Year(Date[1]) = 01 and Year(Date) = 25) or
(Year(Date[1]) = 26 and Year(Date) = 50) or
(Year(Date[1]) = 51 and Year(Date) = 75) or
(Year(Date[1]) = 76 and Year(Date) = 100) or
(Year(Date[1]) = 101 and Year(Date) = 125) or
(Year(Date[1]) = 126 and Year(Date) = 150) or
(Year(Date[1]) = 151 and Year(Date) = 175) then begin ShY25 = ShY25 + 1; TrYYY25 = -1*TrYYY25; End;
стало: понятнее и ремонтопригоднее, но ещё понятнее будет оформить этот код в метод с понятным названием:
YYBgn = 25;
YYLen = 10;
For Value0 = 1 To YYLen Begin
If Year(Date[1]) = YYBgn * (Value0 - 1) + 1 and Year(Date) = YYBgn * Value0
Then Begin
ShY25 = ShY25 + 1;
TrYYY25 = -1*TrYYY25;
Break;
End;
End;
{
проверка логики
If Year(Date[1]) = 25 * (1 - 1) + 1 and Year(Date) = 25 * 1
If Year(Date[1]) = 25 * (2 - 1) + 1 and Year(Date) = 25 * 2
If Year(Date[1]) = 25 * (3 - 1) + 1 and Year(Date) = 25 * 3
}
**********************************************
было
If (Year(Date[1]) = 04 and Year(Date) = 05) or(Year(Date[1]) = 09 and Year(Date) = 10) or
(Year(Date[1]) = 14 and Year(Date) = 15) or
(Year(Date[1]) = 19 and Year(Date) = 20) or
(Year(Date[1]) = 24 and Year(Date) = 25) or
(Year(Date[1]) = 29 and Year(Date) = 30) or
(Year(Date[1]) = 34 and Year(Date) = 35) or
(Year(Date[1]) = 39 and Year(Date) = 40) or
(Year(Date[1]) = 44 and Year(Date) = 45) or
(Year(Date[1]) = 49 and Year(Date) = 50) or
(Year(Date[1]) = 54 and Year(Date) = 55) or
(Year(Date[1]) = 59 and Year(Date) = 60) or
(Year(Date[1]) = 64 and Year(Date) = 65) or
(Year(Date[1]) = 69 and Year(Date) = 70) or
(Year(Date[1]) = 74 and Year(Date) = 75) or
(Year(Date[1]) = 79 and Year(Date) = 80) or
(Year(Date[1]) = 84 and Year(Date) = 85) or
(Year(Date[1]) = 89 and Year(Date) = 90) or
(Year(Date[1]) = 94 and Year(Date) = 95) or
(Year(Date[1]) = 99 and Year(Date) = 100) or
(Year(Date[1]) = 104 and Year(Date) = 105) or
(Year(Date[1]) = 109 and Year(Date) = 110) or
(Year(Date[1]) = 114 and Year(Date) = 115) or
(Year(Date[1]) = 119 and Year(Date) = 120) or
(Year(Date[1]) = 124 and Year(Date) = 125) or
(Year(Date[1]) = 129 and Year(Date) = 130) or
(Year(Date[1]) = 134 and Year(Date) = 135) or
(Year(Date[1]) = 139 and Year(Date) = 140) or
(Year(Date[1]) = 144 and Year(Date) = 145) or
(Year(Date[1]) = 149 and Year(Date) = 150) or
(Year(Date[1]) = 154 and Year(Date) = 155) or
(Year(Date[1]) = 159 and Year(Date) = 160) or
(Year(Date[1]) = 164 and Year(Date) = 165) or
(Year(Date[1]) = 169 and Year(Date) = 170) or
(Year(Date[1]) = 174 and Year(Date) = 175) or
(Year(Date[1]) = 179 and Year(Date) = 180) or
(Year(Date[1]) = 184 and Year(Date) = 185) or
(Year(Date[1]) = 189 and Year(Date) = 190) or
(Year(Date[1]) = 194 and Year(Date) = 195) or
(Year(Date[1]) = 199 and Year(Date) = 200) or
(Year(Date[1]) = 204 and Year(Date) = 205) or
(Year(Date[1]) = 209 and Year(Date) = 210) or
(Year(Date[1]) = 214 and Year(Date) = 215) or
(Year(Date[1]) = 219 and Year(Date) = 220) or
(Year(Date[1]) = 224 and Year(Date) = 225) then begin ShY5 = ShY5 + 1; TrYYY5 = -1*TrYYY5; End;
стало: понятнее и ремонтопригоднее, но ещё понятнее будет оформить этот код в метод с понятным названием:
YYBgn = 04;
YYLen = 10;
For Value0 = 1 To YYLen Begin
If Year(Date[1]) = YYBgn * Value0 + (Value0 - 1) and Year(Date) = YYBgn * Value0 + Value0
Then Begin
ShY5 = ShY5 + 1;
TrYYY5 = -1*TrYYY5;
Break;
End;
End;
{
проверка логики
If Year(Date[1]) = YYBgn * 1 + (1 - 1) and Year(Date) = YYBgn * 1 + 1
If Year(Date[1]) = YYBgn * 2 + (2 - 1) and Year(Date) = YYBgn * 2 + 2
If Year(Date[1]) = YYBgn * 3 + (3 - 1) and Year(Date) = YYBgn * 3 + 3
}
************************************************************
If DataCompression = 4
then begin
Sh1 = ShY5;
Sh2 = ShY;
Sh3 = ShQ;
Tr1 = TrYYY5;
Tr2 = TrYYY;
Tr3 = TrQ;
End Else
If DataCompression = 3
then begin
Sh1 = ShY;
Sh2 = ShQ;
Sh3 = ShM;
Tr1 = TrYYY;
Tr2 = TrQ;
Tr3 = TrM;
End Else
If DataCompression = 2
then begin
Sh1 = ShQ;
Sh2 = ShM;
Sh3 = ShW;
Tr1 = TrQ;
Tr2 = TrM;
Tr3 = TrW;
End Else
If DataCompression < 2
then begin
If BarInterval = 1439 or
BarInterval = 720
then begin
Sh1 = ShQ;
Sh2 = ShM;
Sh3 = ShW;
Tr1 = TrQ;
Tr2 = TrM;
Tr3 = TrW;
End Else
If BarInterval = 480 or
BarInterval = 360 or
BarInterval = 288 or
BarInterval = 240 or
BarInterval = 180 or
BarInterval = 160 or
BarInterval = 144 or
BarInterval = 120 or
BarInterval = 96 or
BarInterval = 90
then begin
Sh1 = ShM;
Sh2 = ShW;
Sh3 = ShD;
Tr1 = TrM;
Tr2 = TrW;
Tr3 = TrD;
Glub3 = GlD;
End Else
If BarInterval = 80 or
BarInterval = 60 or
BarInterval = 48 or
BarInterval = 40 or
BarInterval = 30 or
BarInterval = 24
then begin
Sh1 = ShW;
Sh2 = ShD;
Sh3 = Sh240;
Tr1 = TrW;
Tr2 = TrD;
Tr3 = Tr240;
Glub3 = Gl240;
End Else
If BarInterval = 20 or
BarInterval = 15 or
BarInterval = 12 or
BarInterval = 10 or
BarInterval = 6
then begin
Sh1 = ShD;
Sh2 = Sh240;
Sh3 = Sh60;
Tr1 = TrD;
Tr2 = Tr240;
Tr3 = Tr60;
Glub3 = Gl60;
End;
If BarInterval = 5 then begin Sh1 = Sh240; Sh2 = Sh60; Sh3 = Sh15; Tr1 = Tr240; Tr2 = Tr60; Tr3 = Tr15; Glub3 = Gl15; End;
If BarInterval = 3 then begin Sh1 = Sh240; Sh2 = Sh60; Sh3 = Sh15; Tr1 = Tr240; Tr2 = Tr60; Tr3 = Tr15; Glub3 = Gl15; End;
If BarInterval = 2 then begin Sh1 = Sh240; Sh2 = Sh60; Sh3 = Sh10; Tr1 = Tr240; Tr2 = Tr60; Tr3 = Tr10; Glub3 = Gl10; End;
If BarInterval = 1 then begin Sh1 = Sh60; Sh2 = Sh15; Sh3 = Sh5; Tr1 = Tr60; Tr2 = Tr15; Tr3 = Tr5; Glub3 = Gl5; End;
End;
Логические узлы разделены "Else", с целью ускорения расчёта и его понятности...
В представленном куске кода, ошибку не нашёл...Для чего это всё делается - понятно...
"Индикаторы или исчезают или неправильно работают?" - это по отдельности! "Исчезают?" или "Неправильно работают?".
Если исчезают, то это одна проблема, а если неправильно работают, то это другая и тут надо смотреть, как в коде реализована логика вычисления старшей компрессии: при помощи массивов, векторов, словарей или PriceSeriesProvider. Хотя судя по части кода, всё намного "хитрее"Без рефакторинга это творение пока не понятно))
В одних индикаторах, построенные скользящие - либо исчезают, либо строится их фрагмент, оборванный дней 100 назад (не помню точно) - это "исчезают".
Но есть индикатор, который "неправильно работает" - и он меня беспокоит больше всего.
Если для скользящих я построил эквиваленты (худшего качества), то неправильно работающий пришлось просто отключить.
If the EasyLanguage codes are copied directly from PowerEditor and pasted here, then offhand on a quick glance there are syntax errors.Цитировать(Year(Date) [1]) = 126 and Year(Date) = 150) or
(Year(Date) [1]) = 29 and Year(Date) = 30) or
Для чего это всё делается - понятно...
"Индикаторы или исчезают или неправильно работают?" - это по отдельности! "Исчезают?" или "Неправильно работают?".
Если исчезают, то это одна проблема, а если неправильно работают, то это другая и тут надо смотреть, как в коде реализована логика вычисления старшей компрессии: при помощи массивов, векторов, словарей или PriceSeriesProvider. Хотя судя по части кода, всё намного "хитрее"Без рефакторинга это творение пока не понятно))
If the indicators are not private and confidential, maybe can post the EasyLanguage codes. I think everyone may be shooting blind.
I do not know whether this affects... Forexite QR just change their clock 1 hour this past Sunday.
If (Year(Date[1]) = 01 and Year(Date) = 25) or
(Year(Date[1]) = 26 and Year(Date) = 50) or
(Year(Date[1]) = 51 and Year(Date) = 75) or
(Year(Date[1]) = 76 and Year(Date) = 100) or
(Year(Date[1]) = 101 and Year(Date) = 125) or
(Year(Date[1]) = 126 and Year(Date) = 150) or
(Year(Date[1]) = 151 and Year(Date) = 175) then begin ShY25 = ShY25 + 1; TrYYY25 = -1*TrYYY25; End;
If (Year(Date[1]) = 04 and Year(Date) = 05) or
(Year(Date[1]) = 09 and Year(Date) = 10) or
(Year(Date[1]) = 14 and Year(Date) = 15) or
(Year(Date[1]) = 19 and Year(Date) = 20) or
(Year(Date[1]) = 24 and Year(Date) = 25) or
(Year(Date[1]) = 29 and Year(Date) = 30) or
(Year(Date[1]) = 34 and Year(Date) = 35) or
(Year(Date[1]) = 39 and Year(Date) = 40) or
(Year(Date[1]) = 44 and Year(Date) = 45) or
(Year(Date[1]) = 49 and Year(Date) = 50) or
(Year(Date[1]) = 54 and Year(Date) = 55) or
(Year(Date[1]) = 59 and Year(Date) = 60) or
(Year(Date[1]) = 64 and Year(Date) = 65) or
(Year(Date[1]) = 69 and Year(Date) = 70) or
(Year(Date[1]) = 74 and Year(Date) = 75) or
(Year(Date[1]) = 79 and Year(Date) = 80) or
(Year(Date[1]) = 84 and Year(Date) = 85) or
(Year(Date[1]) = 89 and Year(Date) = 90) or
(Year(Date[1]) = 94 and Year(Date) = 95) or
(Year(Date[1]) = 99 and Year(Date) = 100) or
(Year(Date[1]) = 104 and Year(Date) = 105) or
(Year(Date[1]) = 109 and Year(Date) = 110) or
(Year(Date[1]) = 114 and Year(Date) = 115) or
(Year(Date[1]) = 119 and Year(Date) = 120) or
(Year(Date[1]) = 124 and Year(Date) = 125) or
(Year(Date[1]) = 129 and Year(Date) = 130) or
(Year(Date[1]) = 134 and Year(Date) = 135) or
(Year(Date[1]) = 139 and Year(Date) = 140) or
(Year(Date[1]) = 144 and Year(Date) = 145) or
(Year(Date[1]) = 149 and Year(Date) = 150) or
(Year(Date[1]) = 154 and Year(Date) = 155) or
(Year(Date[1]) = 159 and Year(Date) = 160) or
(Year(Date[1]) = 164 and Year(Date) = 165) or
(Year(Date[1]) = 169 and Year(Date) = 170) or
(Year(Date[1]) = 174 and Year(Date) = 175) or
(Year(Date[1]) = 179 and Year(Date) = 180) or
(Year(Date[1]) = 184 and Year(Date) = 185) or
(Year(Date[1]) = 189 and Year(Date) = 190) or
(Year(Date[1]) = 194 and Year(Date) = 195) or
(Year(Date[1]) = 199 and Year(Date) = 200) or
(Year(Date[1]) = 204 and Year(Date) = 205) or
(Year(Date[1]) = 209 and Year(Date) = 210) or
(Year(Date[1]) = 214 and Year(Date) = 215) or
(Year(Date[1]) = 219 and Year(Date) = 220) or
(Year(Date[1]) = 224 and Year(Date) = 225) then begin ShY5 = ShY5 + 1; TrYYY5 = -1*TrYYY5; End;
If Month(Date[1]) = 12 and Month(Date) = 1{Year(Date[1]) <> Year(Date)} then begin ShY = ShY + 1; TrYYY = -1*TrYYY; End;
If (Month(Date[1]) = 12 and Month(Date) = 1) or
(Month(Date[1]) = 3 and Month(Date) = 4) or
(Month(Date[1]) = 6 and Month(Date) = 7) or
(Month(Date[1]) = 9 and Month(Date) = 10) then begin ShQ = ShQ + 1; TrQ = -1*TrQ; End;
If Month(Date[1]) <> Month(Date) then begin ShM = ShM + 1; TrM = -1*TrM; {GlM = 43200;} End;
If (DayOfWeek(Date[1]) = Friday and DayOfWeek(Date) = Monday) or
(DayOfWeek(Date[1]) = Friday and DayOfWeek(Date) = Tuesday) or
(DayOfWeek(Date[1]) = Friday and DayOfWeek(Date) = Wednesday) or
(DayOfWeek(Date[1]) = Friday and DayOfWeek(Date) = Thursday) or
(DayOfWeek(Date[1]) = Friday and DayOfWeek(Date) = Friday) or
(DayOfWeek(Date[1]) = Thursday and DayOfWeek(Date) = Monday) or
(DayOfWeek(Date[1]) = Thursday and DayOfWeek(Date) = Tuesday) or
(DayOfWeek(Date[1]) = Thursday and DayOfWeek(Date) = Wednesday) then begin ShW = ShW + 1; TrW = -1*TrW; {GlW = 10080;} End;
If Date[1] <> Date then begin ShD = ShD + 1; TrD = -1*TrD; GlD = 1440; End;
If TimeToMinutes(Time) = 0 + BarInterval+DT
or TimeToMinutes(Time) = 240 + BarInterval+DT
or TimeToMinutes(Time) = 480 + BarInterval+DT
or TimeToMinutes(Time) = 720 + BarInterval+DT
or TimeToMinutes(Time) = 960 + BarInterval+DT
or TimeToMinutes(Time) = 1200 + BarInterval+DT
then begin Sh240 = Sh240 + 1; Tr240 = -1*Tr240; Gl240 = 240; End;
If FRACPortion((TimeToMinutes(Time)-BarInterval-DT)/120) = 0 then begin Sh120 = Sh120 + 1; Tr120 = -1*Tr120; Gl120 = 120; End;
If TimeToMinutes(Time) = 0 + BarInterval+DT
or TimeToMinutes(Time) = 60 + BarInterval+DT
or TimeToMinutes(Time) = 120 + BarInterval+DT
or TimeToMinutes(Time) = 180 + BarInterval+DT
or TimeToMinutes(Time) = 240 + BarInterval+DT
or TimeToMinutes(Time) = 300 + BarInterval+DT
or TimeToMinutes(Time) = 360 + BarInterval+DT
or TimeToMinutes(Time) = 420 + BarInterval+DT
or TimeToMinutes(Time) = 480 + BarInterval+DT
or TimeToMinutes(Time) = 540 + BarInterval+DT
or TimeToMinutes(Time) = 600 + BarInterval+DT
or TimeToMinutes(Time) = 660 + BarInterval+DT
or TimeToMinutes(Time) = 720 + BarInterval+DT
or TimeToMinutes(Time) = 780 + BarInterval+DT
or TimeToMinutes(Time) = 840 + BarInterval+DT
or TimeToMinutes(Time) = 900 + BarInterval+DT
or TimeToMinutes(Time) = 960 + BarInterval+DT
or TimeToMinutes(Time) = 1020 + BarInterval+DT
or TimeToMinutes(Time) = 1080 + BarInterval+DT
or TimeToMinutes(Time) = 1140 + BarInterval+DT
or TimeToMinutes(Time) = 1200 + BarInterval+DT
or TimeToMinutes(Time) = 1260 + BarInterval+DT
or TimeToMinutes(Time) = 1320 + BarInterval+DT
or TimeToMinutes(Time) = 1380 + BarInterval+DT then begin Sh60 = Sh60 + 1; Tr60 = -1*Tr60; Gl60 = 60; End;
If FRACPortion((TimeToMinutes(Time)-BarInterval-DT)/30) = 0 then begin Sh30 = Sh30 + 1; Tr30 = -1*Tr30; Gl30 = 30; End;
If FRACPortion((TimeToMinutes(Time)-BarInterval-DT)/15) = 0 then begin Sh15 = Sh15 + 1; Tr15 = -1*Tr15; Gl15 = 15; End;
If FRACPortion((TimeToMinutes(Time)-BarInterval-DT)/10) = 0 then begin Sh10 = Sh10 + 1; Tr10 = -1*Tr10; Gl10 = 10; End;
If FRACPortion((TimeToMinutes(Time)-BarInterval-DT)/5) = 0 then begin Sh5 = Sh5 + 1; Tr5 = -1*Tr5; Gl5 = 5; End;
If DataCompression = 4 then begin Sh1 = ShY5; Sh2 = ShY; Sh3 = ShQ; Tr1 = TrYYY5; Tr2 = TrYYY; Tr3 = TrQ; End;
If DataCompression = 3 then begin Sh1 = ShY; Sh2 = ShQ; Sh3 = ShM; Tr1 = TrYYY; Tr2 = TrQ; Tr3 = TrM; End;
If DataCompression = 2 or (DataCompression < 2 and (BarInterval = 1439 or BarInterval = 720) then begin Sh1 = ShQ; Sh2 = ShM; Sh3 = ShW; Tr1 = TrQ; Tr2 = TrM; Tr3 = TrW; End;
If DataCompression < 2 and (BarInterval = 480 or BarInterval = 360 or BarInterval = 288 or BarInterval = 240 or BarInterval = 180 or BarInterval = 160 or BarInterval = 144 or BarInterval = 120 or BarInterval = 96 or BarInterval = 90) then begin Sh1 = ShM; Sh2 = ShW; Sh3 = ShD; Tr1 = TrM; Tr2 = TrW; Tr3 = TrD; Glub3 = GlD; End;
If DataCompression < 2 and (BarInterval = 80 or BarInterval = 60 or BarInterval = 48 or BarInterval = 40 or BarInterval = 30 or BarInterval = 24) then begin Sh1 = ShW; Sh2 = ShD; Sh3 = Sh240; Tr1 = TrW; Tr2 = TrD; Tr3 = Tr240; Glub3 = Gl240; End;
If DataCompression < 2 and (BarInterval = 20 or BarInterval = 15 or BarInterval = 12 or BarInterval = 10 or BarInterval = 6) then begin Sh1 = ShD; Sh2 = Sh240; Sh3 = Sh60; Tr1 = TrD; Tr2 = Tr240; Tr3 = Tr60; Glub3 = Gl60; End;
If DataCompression < 2 and (BarInterval = 5) then begin Sh1 = Sh240; Sh2 = Sh60; Sh3 = Sh15; Tr1 = Tr240; Tr2 = Tr60; Tr3 = Tr15; Glub3 = Gl15; End;
If DataCompression < 2 and (BarInterval = 3) then begin Sh1 = Sh240; Sh2 = Sh60; Sh3 = Sh15; Tr1 = Tr240; Tr2 = Tr60; Tr3 = Tr15; Glub3 = Gl15; End;
If DataCompression < 2 and (BarInterval = 2) then begin Sh1 = Sh240; Sh2 = Sh60; Sh3 = Sh10; Tr1 = Tr240; Tr2 = Tr60; Tr3 = Tr10; Glub3 = Gl10; End;
If DataCompression < 2 and (BarInterval = 1) then begin Sh1 = Sh60; Sh2 = Sh15; Sh3 = Sh5; Tr1 = Tr60; Tr2 = Tr15; Tr3 = Tr5; Glub3 = Gl5; End;
Получается, источник котировок QuoteRoom? Индикаторы исчезают или неправильно работают? В коде функции используются команды Print() - вывод информации в окно PrintLog? Индикатор выводит текст на диаграмму?
Из описанного вами следует, что нет никакой поломки. Включайте отладку и ищите что поменялось в данных, настройках часового пояса, времени компа и так далее. Print поможет найти причину.
Спасибо, Павел.
В данных ничего не поменялось: я ввёл новые строки "на горячих" компьютерах. И графики остались прежними. Испортились индикаторы.
В настройках часового пояса и времени компа изменений не произошло - на обоих компьютерах. (Кстати, QuoteRoom сразу поднял бы тревогу).
Print... - не понимаю о чём вы... я не специалист, к сожалению...
Хочу заострить ваше внимание: я ввёл новые строки одновременно на 2-х компьютерах когда они были в работе.
На них одновременно произошла одинаковая деградация. Совершенно одинаковая.
Print - вывод информации из кода. Понять, что там у вас поломалось без скриншотов было/стало и чего вы там куда вписали, не представляется возможным. TS работает нормально. Конвертируйте свою физическую машину в виртуальную и ставьте на виртуалке опыты, пока не сделаете как было.
Посмотрите содержимое файлов:
C:\Program Files (x86)\TradeStation 9.1\CAL\custexch.tx
C:\Program Files (x86)\TradeStation 9.1\CAL\prefix.txt
Из описанного вами следует, что нет никакой поломки. Включайте отладку и ищите что поменялось в данных, настройках часового пояса, времени компа и так далее. Print поможет найти причину.