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

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

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #10 : 26 Июня 2016, 11:49:12 »
да, рефрешится только активное окно, причём не важно что индикатор наложен на другую диаграмму, как и описано в хелпе:  :(
.Refresh
.RF
Refreshes/reloads the active window.

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

В как насчет вставки в data1 текстовика, в data2 графика с real time из QR и вызов макроса во время котировки на новом баре? Причем котировки можно генерить с нужной частотой генератором случайных чисел.

Есть еще функция с исходником RunCommandOnLastBar. Может во время прихода котировки рефреш будет там где надо.

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

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #11 : 26 Июня 2016, 13:00:24 »
да, рефрешится только активное окно, причём не важно что индикатор наложен на другую диаграмму, как и описано в хелпе:  :(
.Refresh
.RF
Refreshes/reloads the active window.

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

В как насчет вставки в data1 текстовика, в data2 графика с real time из QR и вызов макроса во время котировки на новом баре? Причем котировки можно генерить с нужной частотой генератором случайных чисел.

Есть еще функция с исходником RunCommandOnLastBar. Может во время прихода котировки рефреш будет там где надо.

RunCommandOnLastBar использует RunCommand только на последнем баре, судя по описанию (Refreshes/reloads the active window) главным условием является именно активное окно. Я попробовал, установил на разные активы индикатор рефреш посредством аларма через интервал бара, всегда срабатывает рефреш только активного окна, а если вызвать блокнот, т. е. переключится на окно другой программы, то вообще ничего не работат, т.к. активное окно другой программы :(

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #12 : 26 Июня 2016, 13:27:34 »
Вместо refresh лучше перейти на смену длинны истории. Возможно команды этого плана выполняются где надо. Хотя не факт. :(

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

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #13 : 26 Июня 2016, 14:02:44 »
Вместо refresh лучше перейти на смену длинны истории. Возможно команды этого плана выполняются где надо. Хотя не факт. :(

Попробовал RunCommand(".Bars 1000"), всё тоже самое, работает только в активном окне :( Производитель походу продумал эту возможность и таким образом защитился..надо думать далее :o

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #14 : 30 Июня 2016, 09:04:36 »
Попробовал RunCommand(".Bars 1000"), всё тоже самое, работает только в активном окне :( Производитель походу продумал эту возможность и таким образом защитился..надо думать далее :o

Вот такой вариант есть:

1. Делаем макрос:

ila_rendered

2. Из кода этот макрос не вызывается. Поэтому либо руками, либо через Automate надо набрать ".MyMacros" и нажать ввод. TS отключится и снова подключится к QR. История из QR обновится.

3. На график в Data1 ставим нужный текстовик. На Data2 ставим скрытую историю из QR. Все графики с историей QR обновятся, попутно обновя и данные из текстовиков.

Не очень красивое решение, но как вам такой вариант?

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #15 : 30 Июня 2016, 09:14:51 »
На свой макрос можно еще повесить горячую клавишу и нажимать ее с помощью Automate.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #16 : 30 Июня 2016, 09:30:19 »
Ошибся. У меня не были разрешены макросы в индикаторе. Из индикатора работает вызов:

   Value1 = RunCommand(".OFFL");
   Value1 = RunCommand(".ONL");

Так что можно заставить TS обновить окна.

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #17 : 30 Июня 2016, 10:17:07 »
Прилагаю индикатор с открытым кодом, который переподключает TS для того, чтобы обновились текстовые графики в TS.

Параметры индикатора:

Input:
p_CBar(CurrentBar Data2), // Текущий бар.
p_LBar(LastBarOnChart Data2), // Флаг того, что этот бар последний.
p_Wait(20); // Задержка в секундах перед обновлением, чтобы дать время выгрузиться истории в текст.

Порядок использования:

1. В одном окне с графиками минимального нужного интервала обновления вставляем в Data2 или Data1 этот индикатор. В параметрах индикатора p_CBar и p_LBar указываем на какой DataN у нас есть real time. В нескольких окнах этот индикатор не нужен, так как может вызвать зацикливание переподключения.

2. Когда появится новый бар, TS переподключится и заставит обновиться графики из QR.

3. Для обновления текстовиков ставим в Data1 текстовик, в Data2 график из QR и cкрываем его.

В настройках индикатора не забываем разрешить работу макросов!

В строке статуса TS есть иконка колокольчика. Через нее можно отключить показ уведомлений о переподключении TS.

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

  • Участник клуба
  • *
  • Сообщений: 183
    • Просмотр профиля
Gelium_Helper
« Ответ #18 : 30 Июня 2016, 13:00:19 »
Вот это интересная идея!! Сейчас попробовал вручную, работает!! Спасибо за идею!! :) ;) :laugh:

Оффлайн Gelium

  • Администратор
  • Сообщений: 9 411
    • Просмотр профиля
    • Gelium.net
Gelium_Helper
« Ответ #19 : 30 Июня 2016, 14:40:11 »
Вот это интересная идея!! Сейчас попробовал вручную, работает!! Спасибо за идею!! :) ;) :laugh:

На автомате тоже работает. Актуально для тех, кому нужны графики на базе текстовиков с автообновлением. Решение не супер, но кто ищет, тот находит.