Автор Тема: Gelium_Refresh  (Прочитано 14186 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 430
    • Просмотр профиля
    • Gelium.net
Gelium_Refresh
« : 15 Июня 2016, 13:38:47 »
Сервисный индикатор для разных задач. Текущие параметры:

p_Excel(0) - если больше > 0, делает автозапись файла Excel.
p_ExcelWorkBook("с:\Chart\Reports\GT_Reports.xlsm") - файл.
p_ExcelVisible(true) - показывать ли сам Excel.
p_ExcelSaveTimer(60) - частота сохранения в секундах.

Для автообновления чартов на базе текстовика:

p_ChartRefresh(0) - если > 0, график будет обновляться.
p_ChartRefresh_TimeShift(60) - сдвиг локального времени компьютера относительно времени часового пояса баров в текстовике. Если последний бар в текстовике закрылся в 18:40 и следующий бар закроется в 19:00, а на часах компьютера в строке состояния TS время 19:36, то ставим смещение 60 минут.
p_ChartRefresh_Days - число дней, которое должно быть на графике.
p_ChartRefresh_Y1(34) - отступ по вертикали для подписи на графике с временем до обновления:

ila_rendered

Клик по надписи откладывает автообновление на 1 минуту.

Для включения автообновления в настройках индикатора надо включить макрос:

ila_rendered

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #1 : 15 Июня 2016, 14:13:05 »
Интересно, почему-то у меня в свойствах индикатора отсутствует RunCommand, версия TS9.1-12880 :( и количество закладок 8, а в примере 7..

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 430
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #2 : 15 Июня 2016, 14:21:52 »
Интересно, почему-то у меня в свойствах индикатора отсутствует RunCommand, версия TS9.1-12880 :( и количество закладок 8, а в примере 7..

А зачем вам эти контролы, если вы макрос не используете?  8)

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #3 : 15 Июня 2016, 14:27:08 »
Интересно, почему-то у меня в свойствах индикатора отсутствует RunCommand, версия TS9.1-12880 :( и количество закладок 8, а в примере 7..

А зачем вам эти контролы, если вы макрос не используете?  8)

Любопытная опция, думаю её можно использовать для обновления котировок из текстовика через макрос, запущенный в коде посредством RunCommand!?
То, что делает Ваш индикатор, только у него код закрыт, я хочу сделать аналогичный, но свой! :D
Это подключаемая опция посредством дополнительных манипуляций?

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #4 : 15 Июня 2016, 15:05:32 »
Интересно, почему-то у меня в свойствах индикатора отсутствует RunCommand, версия TS9.1-12880 :( и количество закладок 8, а в примере 7..

А зачем вам эти контролы, если вы макрос не используете?  8)

Любопытная опция, думаю её можно использовать для обновления котировок из текстовика через макрос, запущенный в коде посредством RunCommand!?
То, что делает Ваш индикатор, только у него код закрыт, я хочу сделать аналогичный, но свой! :D
Это подключаемая опция посредством дополнительных манипуляций?

Нашел в хелпе, пока не увидишь, даже не подумал... :)

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 430
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #5 : 15 Июня 2016, 16:50:33 »
Пришлось добавить параметр p_ChartRefresh_Days - число дней, которое должно быть на графике. Иначе глючит.
Поправленную версию прилагаю. Подумаю еще как обойти без этого параметра.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 430
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #6 : 15 Июня 2016, 16:52:47 »
То, что делает Ваш индикатор, только у него код закрыт, я хочу сделать аналогичный, но свой! :D

Посмотрим, у кого лучше получится. :)

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 430
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #7 : 16 Июня 2016, 10:12:53 »
То, что делает Ваш индикатор, только у него код закрыт, я хочу сделать аналогичный, но свой! :D

Пока сделал так:

Value1 = RunCommand(".Day " + NumToStr(p_ChartRefresh_Days + 1, 0));
Value1 = RunCommand(".Day " + NumToStr(p_ChartRefresh_Days, 0));

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 430
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #8 : 16 Июня 2016, 10:40:34 »
Похоже, облом нам выходит с авторефрешем полный. ТС обновляет макросом не заданный график, а тот, по которому пользователь успел кликнуть во время работы макроса. Бракоделы из TS этот момент не учли и обновляться может случайным образом что угодно.  :(

Оффлайн Станислав

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #9 : 26 Июня 2016, 09:33:12 »
Похоже, облом нам выходит с авторефрешем полный. ТС обновляет макросом не заданный график, а тот, по которому пользователь успел кликнуть во время работы макроса. Бракоделы из TS этот момент не учли и обновляться может случайным образом что угодно.  :(

да, рефрешится только активное окно, причём не важно что индикатор наложен на другую диаграмму, как и описано в хелпе:  :(
.Refresh
.RF
Refreshes/reloads the active window.

придётся вернуться к автомейту, хотя хотелось бы всё сделать без привлечения прочего софта. :(