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

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

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

  • Участник клуба
  • *
  • Сообщений: 162
    • Просмотр профиля
EasyLanguage
« Ответ #130 : 17 Февраль 2018, 12:59:49 »
Поделитесь пож материалами  по global variable for tradestation 91.
Спасибо.


{***************************************************************************************************
Description:  Функция предназначена для экспорта переменной в индикатор и её последующего отображения
              на диаграмме
***************************************************************************************************}

Using elsystem;
Using elsystem.collections;

Inputs: String           Prefix(StringSimple),
        Double           Value (NumericSimple);

Vars:   GlobalDictionary WDic  (Null),
        GlobalValue      GVal  (Null);

If WDic             = Null
Then Begin
   WDic             = GlobalDictionary.Create();
   GVal             = GlobalValue.Create();
   GVal.Channel     = AnalysisTechnique.Name + "Prefix";
   GVal.Load        = True;
   GVal.StringValue = Prefix;
End;

If   WDic.Contains(Prefix + BarDateTime.ToString()) = False
Then WDic.Add     (Prefix + BarDateTime.ToString(),   Value AsType Double)
Else WDic.Items   [Prefix + BarDateTime.ToString()] = Value AsType Double;

$_WDicValueToChart = Value;



{***************************************************************************************************
Description:  Индикатор предназначен для импорта переменной из функции и её последующего отображения
              на диаграмме
***************************************************************************************************}

Using elsystem;
Using elsystem.collections;

Vars: GlobalDictionary WDic  (Null),
      GlobalValue      GVal  (Null),
      String           Prefix("");

If WDic         = Null
Then Begin
   WDic         = GlobalDictionary.Create();
   GVal         = GlobalValue.Create();
   GVal.Channel = AnalysisTechnique.Name + "Prefix";
   GVal.Load    = True;
   Prefix       = GVal.StringValue;
End;

If            WDic.Contains(Prefix + BarDateTime.ToString()) = True
Then Value0 = WDic.Items   [Prefix + BarDateTime.ToString()] AsType Double;

Plot1(Value0, "ValueToChart", DarkGray, Default, 0);

If Plot1 > 0 Then SetPlotColor(1, DarkGreen) Else
If Plot1 = 0 Then SetPlotColor(1, DarkGray)  Else
If Plot1 < 0 Then SetPlotColor(1, DarkRed);

Оффлайн Gelium

  • Администратор
  • Сообщений: 6 826
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #131 : 18 Февраль 2018, 04:54:58 »
{***************************************************************************************************
Description:  Функция предназначена для экспорта переменной в индикатор и её последующего отображения
              на диаграмме
***************************************************************************************************}

Спасибо за готовые примеры. Можно сразу eld к сообщению цеплять, чтобы не надо было руками создавать индикаторы.

Оффлайн val

  • Участник клуба
  • *
  • Сообщений: 147
    • Просмотр профиля
EasyLanguage
« Ответ #132 : 18 Февраль 2018, 11:36:08 »
Вот еще надыбал.

Оффлайн Gelium

  • Администратор
  • Сообщений: 6 826
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #133 : 18 Февраль 2018, 15:03:53 »
Вот еще надыбал.

При наличии встроенных функций внешняя DLL как бы уже и не нужна. :-)

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

  • Участник клуба
  • *
  • Сообщений: 162
    • Просмотр профиля
EasyLanguage
« Ответ #134 : 18 Февраль 2018, 17:02:11 »
Для общего образования))

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

  • Участник клуба
  • *
  • Сообщений: 162
    • Просмотр профиля
EasyLanguage
« Ответ #135 : 24 Июль 2018, 11:57:11 »
Кто-нибудь знает как можно узнать дескриптор окна диаграммы в функции??

Оффлайн Gelium

  • Администратор
  • Сообщений: 6 826
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #136 : 24 Июль 2018, 16:19:22 »
Кто-нибудь знает как можно узнать дескриптор окна диаграммы в функции??

Если легко, то никак. Если сложно, то через WinAutomation можно попробовать вытянуть или подобный софт.

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

  • Участник клуба
  • *
  • Сообщений: 162
    • Просмотр профиля
EasyLanguage
« Ответ #137 : 24 Июль 2018, 17:49:38 »
Кто-нибудь знает как можно узнать дескриптор окна диаграммы в функции??

Если легко, то никак. Если сложно, то через WinAutomation можно попробовать вытянуть или подобный софт.
Есть способ достаточно простой, можно в самой TS перебрать окна, определить их дескрипторы и классы, но это посредством цикла, хотелось бы без цикла, напрямую по дескриптору, ну чтож придётся циклом перебирать до нужного окна и останавливать цикл. Сторонний софт стараюсь обходить по возможности.

Оффлайн Gelium

  • Администратор
  • Сообщений: 6 826
    • Просмотр профиля
    • Gelium.net
EasyLanguage
« Ответ #138 : 24 Июль 2018, 18:59:52 »
Есть способ достаточно простой, можно в самой TS перебрать окна, определить их дескрипторы и классы, но это посредством цикла, хотелось бы без цикла, напрямую по дескриптору, ну чтож придётся циклом перебирать до нужного окна и останавливать цикл. Сторонний софт стараюсь обходить по возможности.

А для чего нужно найти дескриптор окна? И как определить, что из всех окон найдено именно нужное?

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

  • Участник клуба
  • *
  • Сообщений: 162
    • Просмотр профиля
EasyLanguage
« Ответ #139 : 24 Июль 2018, 19:11:38 »
Есть способ достаточно простой, можно в самой TS перебрать окна, определить их дескрипторы и классы, но это посредством цикла, хотелось бы без цикла, напрямую по дескриптору, ну чтож придётся циклом перебирать до нужного окна и останавливать цикл. Сторонний софт стараюсь обходить по возможности.

А для чего нужно найти дескриптор окна? И как определить, что из всех окон найдено именно нужное?
Хочу попробовать сделать QuoteUpdater в самой TS.По дескриптору окна можно направлять команды управления окном, сообщения окну, комбинации клавиш, всё посредством API.
Есть дискриптор и заголовок, по ним можно определить в каком именно окне используется исследование.