Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - dim618

Страницы: [1]
1
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 31 Октября 2024, 09:54:25 »
Ну если прямых указаний на ошибки TS нет, то и нет конфликта с системой. У меня были "заморочки" с Multicharts и Win 10, а проблема появилась внезапно.


И в Источнике ошибки так и было записано: Multicharts ?

2
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 31 Октября 2024, 09:30:46 »
Панель управления -> Администрирование-> Журналы Windows -> Система и Приложение


Спасибо.

В Приложениях за понедельник, на время моего вмешательства в индикатор, ошибок нет. Есть раньше и позже (но тоже в понедельник) : Источник WMI Код события 10

В Системе тоже нет ошибки в этот период времени. Ближайшие ошибки (но тоже в понедельник) : Schannel 36887, Application Popup 1060 и Предупреждение Kernel-PnP 219

3
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 31 Октября 2024, 07:16:34 »
Вопрос на всякий случай: посмотрите, windows в свои логи ничего (ошибки) не пишет?


Спасибо.

Подскажите, пожалуйста, где это смотреть?

4
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 15:06:55 »
А можно попробовать на одной виртуальной машине поставить TS и проверить работу индикатора, а на другой ProSuite2000i и проверить работу индикатора...
Попробуйте сначала на чистую виртуальную машину поставить TS и проверить работу индикатора, так проще будет, чтоб с системой не возиться..


Вы знаете, Станислав, мне стыдно признаться, но я никогда прежде не имел дело с виртуальной машиной.

Не могли бы вы в личку (чтобы не засорять эту ветку), кратко проинструктировать меня, как это сделать. Где её взять, какую, где взять инструкцию по установке и т.д., что необходимо для этого. Пожалуйста, если вам не сложно, конечно.

5
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 13:58:07 »
Код сложный и трудно ремонтируемый, найти ошибку с налёту не получится! По своему опыту, в больших кодах не всегда вылетает ошибка деления на нуль, 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 назад (не помню точно) - это "исчезают".

Но есть индикатор, который "неправильно работает" - и он меня беспокоит больше всего.

Если для скользящих я построил эквиваленты (худшего качества), то неправильно работающий пришлось просто отключить.


Станислав, прекрасно!

Да, конечно, так проще и лаконичнее.
Но когда я писал код, мне важно было всё видеть в явном виде. А потом - переделывать и упрощать было неохота. (Копи-паст работающий блок в следующий индикатор - и точка.)))


Меня удивляет (я снова повторю), что полный снос и установка TS9.1 заново, и замена всей папки Tradestation9.1 на диске С из заархивированной работающей полностью исправно резервной копии - не исправило ситуацию!!!

Вот это удивительно!!!

Получается, поломка вышла за пределы директорий Tradestation 9.1  и поселилась где-то в самой Виндоус 7 64 !!!

Чувствую, мне нужно будет сносить всю Винду и всё устанавливать заново!!!

Либо изменить ProSuite2000i, как это объяснено в соответствующей ветке - и вернуться в неё...

Мистика какая-то...

6
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 12:54:39 »
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


Спасибо, уважаемый csk, что вы помогаете.

Ошибки, который вы находите, вызваны тем, что прежде чем поместить текст на форум, я скопировал его в Word и удалил черновые варианты и лишние элементы, мешающие восприятию основного.
Поэтому отсутствующие скобки, пробелы и прочее - это результат некорректного удаления текста в Word(е). Простите.

Сами индикаторы, конечно, полностью верифицированы и в ProSuite и в TS9.1.


Приведённые выше строки - это невинное пижонство: строительство 25-ти и 5-ти летних баров.

Здесь кто-то на форуме говорил, что у него есть история ДоуДжонса и S&P с начала 20-го века. - Вот, для такой большой глубины истории и предназначено вычисление таких длительных баров.

7
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 12:40:44 »
Для чего это всё делается - понятно...
"Индикаторы или исчезают или неправильно работают?" - это по отдельности! "Исчезают?" или "Неправильно работают?".
Если исчезают, то это одна проблема, а если неправильно работают, то это другая и тут надо смотреть, как в коде реализована логика вычисления старшей компрессии: при помощи массивов, векторов, словарей или PriceSeriesProvider. Хотя судя по части кода, всё намного "хитрее" :) Без рефакторинга это творение пока не понятно))


В одних индикаторах, построенные скользящие - либо исчезают, либо строится их фрагмент, оборванный дней 100 назад (не помню точно) - это "исчезают".

Но есть индикатор, который "неправильно работает" - и он меня беспокоит больше всего.

Если для скользящих я построил эквиваленты (худшего качества), то неправильно работающий пришлось просто отключить.

8
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 11:26:24 »
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.

Здравствуйте, csk. Я - Дмитрий.


Я написал о своей проблеме на форум сразу. А было это в понедельник.
А переход на зимнее время был в воскресенье. Следовательно, это ни при чём. (Утром в понедельник всё работало).


Я не буду показывать весь код, покажу центральное место, которое, возможно, и является самым уязвимым:

Цитировать
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;


9
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 11:04:01 »
Получается, источник котировок QuoteRoom? Индикаторы исчезают или неправильно работают? В коде функции используются команды Print() - вывод информации в окно PrintLog? Индикатор выводит текст на диаграмму?


Да, источник QuoteRoom от Forexite версия 2018.04

Индикаторы исчезают или неправильно работают? - Да.

В коде функции используются команды Print() - вывод информации в окно PrintLog? - Нет.

Индикатор выводит текст на диаграмму? - Нет.


Индикаторы строят различные функции - скользящие, различные дискретные значения на основании баров старших уровней, собранных из баров текущего уровня.

Это значительно удобнее, нежели средствами ProSuite либо TS, вводить на каждый ТФ свои ряды данных в режиме Hidden и строить функции на них.

10
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 07:08:20 »
Из описанного вами следует, что нет никакой поломки. Включайте отладку и ищите что поменялось в данных, настройках часового пояса, времени компа и так далее. Print поможет найти причину.


Спасибо, Павел.

В данных ничего не поменялось: я ввёл новые строки "на горячих" компьютерах. И графики остались прежними. Испортились индикаторы.

В настройках часового пояса и времени компа изменений не произошло - на обоих компьютерах. (Кстати, QuoteRoom сразу поднял бы тревогу).

Print... - не понимаю о чём вы... я не специалист, к сожалению...


Хочу заострить ваше внимание: я ввёл новые строки одновременно на 2-х компьютерах когда они были в работе.

На них одновременно произошла одинаковая деградация. Совершенно одинаковая.

Print - вывод информации из кода. Понять, что там у вас поломалось без скриншотов было/стало и чего вы там куда вписали, не представляется возможным. TS работает нормально. Конвертируйте свою физическую машину в виртуальную и ставьте на виртуалке опыты, пока не сделаете как было.


Спасибо, Павел, я понял.

Только скажите: какие именно файлы до эксперимента, мне нужно фиксировать, чтобы потом было с чем сравнивать?

11
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 06:37:49 »
Посмотрите содержимое файлов:
C:\Program Files (x86)\TradeStation 9.1\CAL\custexch.tx
C:\Program Files (x86)\TradeStation 9.1\CAL\prefix.txt


Спасибо, Станислав.

в файле C:\Program Files (x86)\TradeStation 9.1\CAL\custexch.txt
на обоих компьютерах записано: FX, 48

файла C:\Program Files (x86)\TradeStation 9.1\CAL\prefix.txt
нет ни на одной из машин.


в папке CAL есть 4 файла: custexch.txt, Fields.txt, finfo.txt и LOCALE.TXT

12
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 30 Октября 2024, 06:33:48 »
Из описанного вами следует, что нет никакой поломки. Включайте отладку и ищите что поменялось в данных, настройках часового пояса, времени компа и так далее. Print поможет найти причину.


Спасибо, Павел.

В данных ничего не поменялось: я ввёл новые строки "на горячих" компьютерах. И графики остались прежними. Испортились индикаторы.

В настройках часового пояса и времени компа изменений не произошло - на обоих компьютерах. (Кстати, QuoteRoom сразу поднял бы тревогу).

Print... - не понимаю о чём вы... я не специалист, к сожалению...


Хочу заострить ваше внимание: я ввёл новые строки одновременно на 2-х компьютерах когда они были в работе.

На них одновременно произошла одинаковая деградация. Совершенно одинаковая.

13
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 29 Октября 2024, 07:04:27 »
Здравствуйте, Павел! (Ведь вас Павел зовут?)
Меня - Дмитрий.

Простите, что не ответил сразу - пришлось срочно придумывать альтернативные механизмы индикаторов.

Что за ошибка? - вкратце так:

сломалось ядро, которое у меня применяется в нескольких индикаторах. Отчего все эти индикаторы перестали работать корректно на ТФ Месяц, День и 240.
Выразилось это в исчезновении отображения индикаторов либо в их неверной работе.
Суть ядра - строительство баров старших уровней из баров текущего ТФ.
И конечно в нём обильно применяются операторы, работающие со временем, с временными интервалами, с поправками, коэффициентаит и т.д.

Вот весь этот отлаженный и хорошо работавший (пока я не вмешался со своими уточнениями) механизм - слетел.

Причём, что обидно: понимая, что нужно сохраняться, я сделал это всеми способами, что вы указали!
И ничего этого не помогло.

Я писал, что переустановил TS9.1 (оказалось, никаких сложностей на Win 7 64 не возникает), импортировал заранее сохранённые правильно работающие эти индикаторы, разархивировал MyWork тоже работающий и резервный, разархивировал ранее сохранённую, как вы рекомендовали всю папку Tradestation 9.1 - не помогло НИЧЕГО !!!

Получается, TS9.1 размещает что-то своё за пределами своих директорий - непосредственно в среде самой Windows 7 !!!

До этих папок я уже не смог добраться, а переустанавливать всю Виндоус с нуля - как-то не решился...

Альтернативные версии индикаторов (без использования этого тонкого механизма), конечно, работают примитивнее.

Поэтому для меня по прежнему актуально либо найти причину поломки TS9.1, либо вернуться на ProSuite2000i, тем более я увидел, что вы создали такую возможность!!! Честь вам и хвала!!! И мои самые искренние восторги!!!




PS и вот ещё какая странность: у меня ядро не вынесено отдельно, в качестве функции, а записано в теле каждого индикатора.

Так вот, вносил я уточнения (совершенно не касающиеся ядра) в один индикатор, а сломались сразу 3 индикатора...

Вот странность!

Что это может быть на ваш взгляд??

И самое главное: как исправить?

14
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 28 Октября 2024, 13:06:59 »
Может быть это облегчит поставить диагноз:

сломавшиеся индикаторы - будь то взятые с неповреждённого ТФ Неделя, будь то заново помещённые в новое окно, демонстрируют одинаковую поломку - на Дне, на 240 и я ещё заметил, на Месяце...

Ума не приложу, как всё это теперь починить!




Попробовал сохранить сломавшиеся индикаторы под новыми именами и поместить на график: ошибка всё та же!!!

Но ведь когда я их устанавливал на график впервые - вообще никаких проблем не было!!!

15
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 28 Октября 2024, 11:58:56 »
А вот это я вообще не понимаю!!!

Я снёс TS9.1 полностью, установил заново и разархивировал резервный MyWork

И ошибка полностью сохранилась!!!

Мистика какая-то!!!

Что же мне делать??? Помогите, прошу вас!


Более того: я полностью снёс папку Tradestation 9.1 с диска С и разархивировал резервную копию папки Tradestation 9.1

Результат тот же!!!

16
TradeStation / TradeStation 9.1 build 12880 (Update 29) + QuoteRoom
« : 28 Октября 2024, 08:51:43 »
Уважаемые господа, добрый день!

К сожалению, тема "TradeStation 9.1 build 12880 (Update 29) - известные глюки" у меня не открылась, поэтому пишу здесь.

Установлена TS9.1 Update 12880 от 06/16/2014 + QR2018.04 от Forexite.

Решил подправить индикатор, добавил несколько проверенных и отлаженных строк (абсолютно корректных, проверенных на ProSuite 2000i) - так отлаживаемый индикатор сломался и повредил ещё один индикатор, который я не трогал. Причём, ошибка появилась только на Дневном и 240 ТФ.

Убрал написанные строки и вернул индикатор в прежний вид - это не помогло.

Вставил текст из сохранённого резерва - не помогло.

Импортировал все индикаторы из резерва (ELD) - не помогло.

Поставил резервный MyWork - не помогло!!

Ошибка, сохраняется на D и 240 ТФ на 2-х индикаторах, один из которых я вообще не трогал.

Помогите справиться с такой ситуацией?

Переустанавливать TS9.1 ???  Или можно что-то ещё попробовать?

Причём, ошибка возникла синхронно, на 2-х компьютерах.


PS Win 7 64

PPS Удалил кэш - не помогло.


PPPS И ещё уж, заодно: если придётся сносить текущую TS9.1 и ставить её заново - есть какие-то рекомендации, чтобы не оставалось на компе артефактов, мешающих повторной установки?


Страницы: [1]