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

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


Сообщения - Станислав

Страницы: [1] 2 3
1
TradeStation / TradeStation 9.5 Update 28 - только Offline
« : 17 Декабрь 2020, 19:34:31 »
Как выглядит Attributes.ini ?

Здравствуйте.

Поставил Trade Station 9.5 + апдейт, но никак не могу его заставить импортировать ASCII данные. Постоянно выдаёт ошибку:

Data request failed: Insufficient information to process 3rd party symbol.

Данные - OHLCV на таймфрейме 1 минута в формате CSV. Пытался разные заголовки подсовывать, но толку ноль. Импортирую как Forex на Custom Exchange: Fx, сессия S-S 12:00-12:00 (пробовал разные занчения), точность 1/1000000.

Что я делаю не так и есть ли гайд как правильно импортировать данные?

Спасибо.

2
Спасибо вам! Итак...
1. При первичной установке на чистую систему, а также при вторичной установке после полной зачистки системы от хвостов (удаление программы и очистка реестра), появляется ошибка: Unable to register servers. Setup will now abort.
2. Далее, удалив директорию C:\Program Files (x86)\TradeStation 9.1, реестр не чищу, повторяю установку, установка доходит до конца (производится установка исследований TS 9.1) и в последний момент происходит откат установки.
3. Повторяю п.2. только при установке исследований TS 9.1, в момент установки последней группы Strategy, TradingApp, Voletility Model прерываю установку: жму крестик в окне прогресса установки, процесс установки останавливается и выдаёт запрос на её отмену, в этот момент снимаю задачу в Диспетчере задач, потом устанавливаю TradeStation 9.1_12880_Update29.exe! После его установки TS9.1 готова к работе!Пробовал с TS9.5 тоже самое...без танцев никуда!
Пробовал с TS10.1 - всё нормально устанавливается!

3
ок, я с помощью Uninstall Tool смотрел процесс установки TS 91 и увидел, что все заканчивается на этом разделе реестра, после чего установка обрывается.  С рабочего компа экспортировал его и заменил. Возможно у тебя затыкается в другом разделе, так что смотри.
Танцы с бубнами пока не принесли результатов...установил Uninstall Tool, а как в ней смотреть процесс установки TS 9.1? Она ж для удаления уже установленных программ!?!

4
Попробуй добавить в реестр вот это, у меня проканало.
Попробовал, безрезультатно...всё равно отображается сообщение об ошибке...

5
При повторном запуске установки, процесс регистрации проходит нормально, но под конец установки всё отменяется и происходит откат прогресса установки...

6
Установил Windows 10, пытаюсь поставить TS 9.1 вылетает ошибка см. вложение. Кто-нибудь сталкивался с подобным??

7
TradeStation / EasyLanguage
« : 09 Январь 2020, 12:36:33 »
Попробовал такой код для проверки, работает верно. Интересно, от чего зависит сбой в работе вектора?

От объема истории на графике. Скорее всего, этот баг как-то связан с памятью.
Да, скорее всего зависимость от памяти есть. После долгой работы в TS91, при запуске кода на диаграмме с большой историей (5 лет 1 минутной компрессии), у меня даже команда Print() не срабатывала, после закрытия TS91 и запуска вновь, всё работает в рабочем режиме.

8
TradeStation / EasyLanguage
« : 09 Январь 2020, 12:31:07 »
Попробовал такой код для проверки, работает верно. Интересно, от чего зависит сбой в работе вектора?

От объема истории на графике. Скорее всего, этот баг как-то связан с памятью.
Работает верно, попробовал проверку таким кодом:

VVector.insert(0, BarDateTime[0].Value AsType String);

If Date > Date[1]
Then Begin
   If BarDateTime[0].Value <> VVector.Items[0] AsType String
   Then Begin
      Print(BarDateTime[0].Value, "   ", VVector.Items[0] AsType String);
      Value1 = Value1 + 1;
   End;
End;

If BarDateTime = LastCalcDateTime
Then Begin
   Print("DateTimeStart", Spaces(3), BarDateTime[CurrentBar].Value);
   Print("DateTimeLast ", Spaces(3), BarDateTime[0]         .Value);
   Print("BarInterval  ", Spaces(3), BarInterval:0:0, " Minutes");
   Print("BarsOnChart  ", Spaces(3), CurrentBar:0:0);
   Print("ErrorsCount  ", Spaces(3), Value1:0:0);
End;



9
TradeStation / EasyLanguage
« : 08 Январь 2020, 18:57:50 »
В Vector есть ошибка в TS 9.1/9.5. При вставке элемента в начало коллекции элемент может оказаться в итоге в случайном месте коллекции.

Например:

MyVector.insert(0, MyValue);

Так вставка элемента в начало коллекции предполагает её упорядоченность. Но элементы могут быть иногда перепутаны случайным образом. Баг проявляется на графиках с разным объёмом истории. Так что еще и не всегда проявляется.

Попробовал такой код для проверки, работает верно. Интересно, от чего зависит сбой в работе вектора?

If CurrentBar = 1
Then Begin
   VVector = Vector.Create();
   For Value1 = 1 To 5 Begin
      Value3 = Power(10, Value1);
      For Value2 = 0 To Value3 Begin
         VVector.insert(0, Value2 AsType Int);
      End;
      Print(Value1, "   ", Value3, "   ", VVector.Items[0] AsType Int);
   End;
End;



10
TradeStation / TradeStation 10 + real time
« : 06 Август 2019, 16:22:11 »
Уже неоднократно эта проблема решалась, пути её решения вряд ли сильно изменились, слегка подпилить и всё. А за разумную цену интерес не появится? На неделе думаю попробовать поискать взломщика, но если есть спецы, которые уже знают этот процесс, может как-то можно договориться?

Что вы понимаете под разумной ценой?

А чем для вас TS 10 так принципиально лучше? Ужасный черный интерфейс от которого в глазах рабит, сомнительное достоинство...
TS 9.5 хотя бы вылизана до какого-то уровня. А в TS 10 бигоэпопея как обычно будет длиться пару лет.


 Под разумной ценой понимаю обычной производственный расчёт, т.е. произведение среднечасовой заработной платы программиста по данным www.hh.ru и времязатрат на производство
лекарства.

 Например:
Ведущий инженер-программист С++:
среднемесячная ЗП: 200000 руб/мес
среднемесячное количество часов (40 ч. неделя), (1кв+2кв+3кв+4кв) / 12 мес: (454+469+528+519) / 12 = 164 час
среднечасовая ЗП: 200000 / 164 = 1219.51 руб/час
времязатраты на производство лекарства: 16 часов
Стоимость работ: 1219.51 * 16 = 19512.16 руб
 
Расчёт примерный, но если в сделке будет участвовать несколько человек, то финансовые затраты распределятся равномерно, для 10 человек - 1951 руб/чел.
А так как лекарство уже не раз производилось, то все алгоритмы известны и времязатраты на производство возможно будет меньше, как следствие стоимость работ...

 
Тёмный интерфейс меня не напрягает, дело привычки.
Мне понравился TDE отлаженный в плане сворачиваемости структуры кода #Region "" ... #EndRegion (при работе с большими кодами от 1000 строк без структуры не могу работать, напрягает до бешенства, TS95 не поддерживает структуру, рвёт где ни попадя, поэтому работаю в TS9.1), также появились функции работы с директориями и файлами, которые сейчас приходится компенсировать функциями WinAPI (и то не все, например дату и время изменения или создания файла не получится узнать, т.к. в WinAPI используется структура данных для получения этой информации, а TS9.* не поддерживает работу со структурой, хотя можно сделать свою dll библиотеку для этих задач...только сейчас пришла такая идея), а можно было бы использовать уже готовые функции, есть некоторые приятные доработки свойств по прочим объектам.
 
 
 

11
TradeStation / TradeStation 10 + real time
« : 05 Август 2019, 13:21:53 »
Жаль! А допилить уже существующий активатор от TS9.5 под  TS10 невозможно? Чтоб можно было также работать через текстовые файлы.

Думаю технически можно, но интереса у разработчика нет.
Уже неоднократно эта проблема решалась, пути её решения вряд ли сильно изменились, слегка подпилить и всё. А за разумную цену интерес не появится? На неделе думаю попробовать поискать взломщика, но если есть спецы, которые уже знают этот процесс, может как-то можно договориться?

12
TradeStation / TradeStation 10 + real time
« : 03 Август 2019, 17:22:24 »
Добрый день!
Разработка не сдвинулась с "мёртвой" точки?
Вероятность за какие то деньги получить такую программу ещё существует?

От разработки отказались из-за малой перспективности.
Жаль! А допилить уже существующий активатор от TS9.5 под  TS10 невозможно? Чтоб можно было также работать через текстовые файлы.

13
Попробуйте в hosts прописать переадресацию ts.com на 127.0.0.1. Должно перестать.
Испытания провожу с 10-00 до 17-40 (сейчас), ошибка сценария не появлялась, лекарство помогло! Спасибо!

14
Отследил, что при работе с TS9.1 у меня регулярно стало вылетать окно с ошибкой сценария, ориентировочно после 16:00 с периодичностью 3-5 мин. Использую Firefox, закрываю его, сообщение всё равно появляется, закрываю TS9.1 и всё норм. Кто-нибудь с подобными фокусами сталкивался?

15
Мож быть у кого-то такое приключалось. После форматирования или других манипуляций на мониторе остаюся хвосты прошлых действий.
Спасибо.
У меня такое иногда происходит, если запущен MS Word 2016, он каким-то образом влияет на отображение контекстного меню в моём случае: если MS Word 2016 запущен впервые с момента загрузки системы, то могут появляться такие залипания контекстного меню, но если MS Word 2016 запускался не впервые, т.е. был закрыт и заново запущен, то залипаний не происходит.

16
TradeStation / TradeStation 10 + real time
« : 23 Май 2019, 11:35:23 »
4. запускаем транслятор котировок из QuoteManager в TS10

У вас есть исходный код такого транслятора? Или есть документация как получить данные из QuoteManager? Лично у меня нет такой документации.

Данные по DDE получить просто без QuoteManager, да и для выгребания данных из QUIK или Transaq есть документация. Плюс ломанный MultiCharts - это не вариант, так как вложения в разработку надо будет как-то отбить, а для этого софт нужно продавать англоязычной аудитории и никакие заломы и костыли от MultiCharts тут не проходят. Работа хорошего программера обходится от 5000$ в месяц. Крутые профи берут от 10К. Вот и прикиньте, сколько нужно кодить и отлаживать, чтобы просто вернуть то, что будет инвестировано до самоокупаемости. А делать столько работы просто ради кайфа от TS 10 конечно может кто-то и может себе позволить, но лично у меня нет таких ресурсов.
Если бы такой код транслятора у меня был, мы бы уже этим кодом пользовались :) Я изложил возможный вариант, но как оказывается, он не оптимален. Надо придумать оптимальный вариант (цена/качество/удобство). Вполне приемлемо работать и через текстовые файлы (псевдо RealTime), к тому же инфраструктура кода для этого уже готова и отлажена. Но если есть более оптимальные идеи, надо их обдумать и реализовать.

17
TradeStation / TradeStation 10 + real time
« : 23 Май 2019, 11:03:21 »
QuoteManager может получать котировки практически из любого источника, что исключает специальное программирование под какой-либо терминал, найти нормальную рабочую версию мультика - дело минутное, сейчас посмотрел, есть пятая с простым лекарством, обычной заменой файлов и стабильной работой.

Интересная идея. У вас есть документация как получать данные из QuoteManager в свою программу?
1. запускаем Transaq

2. запускаем Winros.exe (возможно этот пункт не потребуется с другими терминалами)

3. запускаем QuoteManager от MC

4. запускаем транслятор котировок из QuoteManager в TS10

5. запускаем TS10

6. работаем с огромным удовольствием в TS10 :)

Трансляция котировок из Transaq в QuoteManager выполняется! Связка работает с версиями MC до 8, подтверждаю личными исследованиями, см. скрины. Все настройки очень простые.
В QuoteManager большой выбор поставщиков данных, также есть возможность настроить индивидуального поставщика данных (Квик, Транзак, Метатрейдер...), очень удобно организовано хранение данных и доступ к ним, возможность выгрузки и загрузки.


18
TradeStation / TradeStation 10 + real time
« : 22 Май 2019, 23:30:02 »
А как эта технология будет выглядеть? Так же как 9.1, посредством текстовых файлов?

Real time посредством текстовых файлов невозможен. Текстовые файлы - это offline. :)
Выглядеть будет примерно как real time типа QR -> TS 9.1. Только без QR, если не договоримся по поводу поддержки технологии на базе QR.
Через текстовые файлы возможен только псевдо Real time с обновлением времени компьютера в режиме offline :) технология не особо удобная, но на безрыбье...рабочая :D как мне представляется, идеальный вариант - это работа через MultiCharts - QuoteManager:
1. устанавливается MultiCharts
2. устанавливается TS10
3. запускается транслятор котировок из MultiCharts - QuoteManager в TS10, также удобно было бы  загружать транслятор посредством автозагрузки.
QuoteManager может получать котировки практически из любого источника, что исключает специальное программирование под какой-либо терминал, найти нормальную рабочую версию мультика - дело минутное, сейчас посмотрел, есть пятая с простым лекарством, обычной заменой файлов и стабильной работой.

19
TradeStation / TradeStation 10 + real time
« : 22 Май 2019, 23:09:03 »
А как эта технология будет выглядеть? Так же как 9.1, посредством текстовых файлов?

20
TradeStation / TradeStation 9.5 Update 22
« : 14 Апрель 2019, 16:16:27 »
Надо пробовать. Я просто не отменяю установку обновлений после инсталляции TS.9.1.


Спасибо. Уже поставил обновления в ручную. Если сейчас из T.S. 9.1 запустить поиск обновлений и их установку - ничего не слетит?

21
TradeStation / EasyLanguage
« : 14 Апрель 2019, 14:09:40 »
не встречал подобных утилит по снятию блокировок! хотя они не особо и нужны, если представляешь механизм, как он должен работать, то его проще написать самому, и понятней будет и для развития полезно :)


К сожалению код залочен. Но на 8.2 он работал.

Скрин:

(Ссылка на вложение)

Думал может где-то в интерфейсе есть ограничитель типа максбарсбэк.

Кстати, для старых версий выкладывали утилиту для просмотра залоченного кода. Вам не попадалась случайно для 9.1

22
TradeStation / TradeStation 9.5 Update 22
« : 12 Апрель 2019, 21:13:37 »
При установке TS.9.1 не обязательно ставить обновления отдельно, можно использовать обновление программы после инсталляции, посредством программы автоматического обновления, всё нормально будет работать!


С обновлением значит что-то перепутал (видимо с 29-м для 9.1)

23
TradeStation / EasyLanguage
« : 12 Апрель 2019, 20:18:21 »
Скриншот экрана покажите! Скорее всего с кодом проблемы...а лучше сделайте в коде подсчёт количества создаваемых трендовых линий!

Подскажите пожалуйста, как бороться с этой ошибкой при добавлении индикатора, можно ли как-то увеличить допустимое число трендовых линий, T.S. 8.2 не ругалась на добавляемый индикатор, а T.S. 9.1 выдает ошибку.

Error: Exceeded the maximum number of Trendlines allowed on this chart. Excessive use of Trendlines causes decreased performance. Please adjust analysis technique to dispose of unneeded Trendlines. Call Stack

24
TradeStation / TradeStation 9.5 Update 22
« : 12 Апрель 2019, 11:52:07 »
Ради благой цели, дело идёт к тестированию на виртуальной машине и переустановкой винды, или сразу переустановкой винды. В таких случаях, после переустановки винды, установки базовых программ (оффисы, браузеры и т.п.) до установки TS, делайте снимок системы посредством True Image или чем-нибудь другим, чтоб потом избежать траты времени на повторную установку и настройку системы с нужными программами! помогает ;)


Чувствую, что могут мешать прежние установки разных версий TS.
История такова: стояла T.S. 8.2, потом поставил T.S. 9.1, между ними переключение шло нормально, потом решил попробовать поставить T.S. 9.5 по первой инструкции (до того как Gelium ее обновил по моей просьбе). Не вставали обновления, но базовая версия запускалась. При этом слетела возможность переключения между версиями. Поскольку моей рабочей программой на тот момент была T.S. 8.2, я решил снести 9.1 и 9.5, снес, но T.S 8.2 больше не запустилась ссылаясь на то, что она не главная. Снес T.S. 8.2 и попытался поставить заново - не запускается, пишет что она не главная.

При этом все удаления выполнены не только средствами стандартного установщика, но и с чисткой реестра программой Revo Uninstaller.

Теперь и T.S. 9.5 не ставится.

25
TradeStation / TradeStation 9.5 Update 22
« : 12 Апрель 2019, 11:46:52 »
если после установки 18 обновления нормально установились 22 обновление, то предварительно устанавливать 12 обновление не надо! Оно было раньше на сайте, как видите, сейчас не актуально. Так как я давно этими вопросами занимался, то посоветовал установку всей цепочки обновлений, хотя достаточно 18+22. Как видно, обновления установились нормально, но программа не запускается. Возможные пути решения:
1. удалить все версии программы, почистить реестр от хвостов и повторить установку.
2. если п1 не дал результатов, то: создать виртуальную машину с аналогичной виндой и на неё установить TS, если всё пройдёт нормально, то проблема в системе Windows вашего компа, переустановка которой помогает ;)


После того как поставил patch из 18-го обновления 22-е поставилось. Но почему-то не запускается сама TS 9.5.

На короткое время появляется окошко:

Потом оно гаснет и тишина.

P/S

Два момента - Вы на стадии "а" устанавливали обновление 12. В текущей инструкции Гелиума его нет. Второй момент инструкция по установке, которая висела здесь до моего сообщения, содержала последним 29-е обновление.

Буду благодарен за помощь, спасибо.

26
TradeStation / TradeStation 9.5 Update 22
« : 12 Апрель 2019, 10:28:16 »
Может этот файл обновления "9.05.01.3284_Update22.msp" можно как-то поставить с помощью самой TS 9.5?

Припоминаю была у меня как-то аналогичная проблема, решалась она последовательной установкой обновлений, чистим все папки "темп":

а. Update 12\TradeStation 9.5 Update 9.05.00.2463_Update 12.msp

б. Update 18\TradeStation 9.5 Update 9.05.01.3239_Update18\Patch.msp,

с. Update 22\9.05.01.3284_Update22.msp

обратите внимание на такой момент: (б) обновление было зашито в установочный файл 2.TradeStation 9.5 Update 9.05.01.3239_Update18.exe, который я распаковал и устанавливал уже Patch.msp, я точно не скажу, т.к. давно это было, работаю в 9.1, но где есть возможность распаковать установочные архивы - распакуйте и устанавливайте напрямую Patch.msp обновлений

27
TradeStation / EasyLanguage
« : 25 Март 2019, 22:27:40 »
спасибо большое за ответ, но результат тот же.

опишу смысл словами:

формула должна просматривать 30 объемов (volume) назад и считать число их попаданий в границы, которые рассчитаны на текущем баре.

№бара  volume  границы нижн  границы верхн
...         ...         ...                     ...
25        10         20                    50
26        51         31                    35
27        15         40                    41
28        20         25                    30
29        21         12                    20
30        22         9                      15

мне нужно чтобы функция countif при проверке условия на последних тридцати барах использовала границы рассчитанные на тридцатом баре скользящего окна (т.е. в данном случае 9 - 15).

Спасибо.
для такой задачи countIF не подойдёт, её надо доработать...


LevelUp = значение верхней границы;
LevelDn = значение нижней границы;
Length = 30;
Sum = 0;
for Value1 = 0 to Length - 1 begin
   if tickvolume[Value1] <= LevelUp AND
      tickvolume[Value1] >= LevelDn
   then Sum = Sum + 1;
end;


28
TradeStation / EasyLanguage
« : 25 Март 2019, 21:45:11 »
Прошу помощи по такому коду:

frequency1=countIF((tickvolume>=tickvolumeStatL and tickvolume<value1), LeN);

код работает как нужно если заменить tickvolumeStatL и value1 на конкретные числа. Однако в представленном виде код дает не правильный результат. Видимо внутри функции countIF идет перебор от [ноля] до [LeN], не только переменой tickvolume, но также и границ (tickvolumeStatL, value1)  при попадании в которые срабатывает счетчик, что для моих целей неприемлемо.

Подскажите пожалуйста, как можно решить эту проблему.

Так будет верно работать! Condition0 - название переменной должно быть уникально с целью получения исторических значений переменной, например Condition0[1]:


Condition0=tickvolume>=tickvolumeStatL and tickvolume<value1;
frequency1=countIF(Condition0, LeN);

29
TradeStation / EasyLanguage
« : 10 Декабрь 2018, 11:51:15 »
Опишите чуть подробнее, что вы хотите делать в TS. Я подскажу какие функции WinAutomation оптимально использовать. Достаточно давно его использую для автоматизации с TS и в других проектах.


Спасибо! Задача такова, создаю функцию скриншота экрана. Посредством TS выполняется определение и центровка события на экране, а сторонним модулем сделать скриншот, т.к. посредством самой TS это сделать нереально, всвязи с тем, что TS не поддерживает работу со структурами dll. Была идея сделать метод скриншота на vba, а потом с помощью WinAutomation сгенерировать exe и в TS его запускать, но вспомнил про одну утилиту, в моём случае идеально подходящая...MiniCapPortable - программа для захвата изображения экрана с поддержкой командной строки, включая возможность запускать (а затем прерывать) приложения, фиксировать окна. Особенностью является возможность обходится без пользовательского интерфейса и делать всё из командной строки. Таким образом осталось всё только скомпановать в TS, весь вспомогательный материал имеется. Запуск командной строки в TS Easy:



DefineDLLfunc: "kernel32.dll",                                                                     // https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-winexec
               Long,                                                                               // https://www.vsokovikov.narod.ru/New_MSDN_API/Process_thread/fn_winexec.htm
               "WinExec",                                                                          // Запуск процесса: > 31 - процесс запущен, <= 31 - процесс не запущен
                                                                                                   //                   * 0                    -  0: Оперативной системе не хватает памяти или ресурсов.
                                                                                                   //                   * ERROR_BAD_FORMAT     - 11: .EXE файл не рабочий (не Win32 .EXE или ошибка в .EXE образе).
                                                                                                   //                   * ERROR_FILE_NOT_FOUND -  2: Указаный файл не найден.
                                                                                                   //                   * ERROR_PATH_NOT_FOUND -  3: Указаный путь не найден.
               String,                                                                             // * [in] lpCmdLine: Адрес процесса
               Int;                                                                                // * [in] nCmdShow:  Стиль отображения окна




WinExec("CMD /C "                                                                                                                                 +
                            "(Ping -n 1 www.google.com || "                                                                                                   +     // Интернет соединение отсутствует
                            "(Ping -n 1 www.yandex.ru  || "                                                                                                   +     // Интернет соединение отсутствует
                            "(Netsh Interface Set Interface Name=" + DoubleQuote + "Подключение по локальной сети" + DoubleQuote + " Admin=Disabled" + " & "  +     // Расключение сетевого интерфейса
                             "Netsh Interface Set Interface Name=" + DoubleQuote + "Подключение по локальной сети" + DoubleQuote + " Admin=Enabled"  + " && " +     // Включение   сетевого интерфейса
                             "For /L %i In (1,1,5) Do (W32Tm /Resync /Rediscover && Exit & TimeOut /T %i)"                                                    +     // Синхронизировать текущее время с сервером времени сети
                            ")))", 0)




30
TradeStation / EasyLanguage
« : 09 Декабрь 2018, 21:09:03 »
чуть больше код для скрина окна.Проблема в том, что я не знаю как в EL описывается структура параметров функции, например функция GetWindowRect(WindowHandle, Struc).
Объявляю:
DefineDLLfunc: "user32.dll", Long, "GetWindowRect",
               Long,                                                                               // * [in]  hWnd:   Дескриптор окна.
               Long{IEasyLanguageObject};                                        // что тут надо установить, чтобы получать значения??    * [out] lpRect: Указатель на структуру, которая принимает экранные координаты левого верхнего и нижнего правого углов окна.
как получить lpRect?в нём содержатся параметры окна: lpRect.Weight...

Когда вы хотите просто передать значение, объявляете к примеру Float. Если хотите получить, то объявляете LPFloat. Далее при вызове функции, для параметра с объявлением LPFloat, надо указать переменную с &, чтобы она приняла значение. Например, &Value1.

В вашем случае, по идее, должно быть так:

DefineDLLfunc: "user32.dll", Long, "GetWindowRect", Long, LPLong;

И вызов с переменными типа Long:

L1 = GetWindowRect(L2, &L3);

Вы получите указатель на структуру в L3, но вот что дальше с ним делать? Ведь Easy по-моему не даёт возможности определять структуры в коде. Не проще ли написать нужные функции в DLL и прицепить уже в подходящем для Easy виде?
Наверное, стены на то и существуют, чтоб иногда было с кем по бодаться :) Да, в Easy нет возможности работать со структурами, теперь я это знаю, исследовал на практике...хотя был уверен, что этот момент разработчиками продуман, так как есть возможность объявлять DLL, а многие из них используют структуру, а так получается неполноценная реализация работы с DLL, которая долгое время вызывала у меня интерес!
Но выход найден, думаю сделать так:- в WinAutomation  в VBA написать "фотоаппарат" на активное окно и сгенерировать File.exe- TS отображает событие на экране, активирует окно диаграммы посредством SetForegroundWindow(), запускает фотоаппарат посредством WinExec(), который фоткает активное окно диаграммы и сохраняет его.
Всё достаточно просто получается ;)
 

31
TradeStation / EasyLanguage
« : 09 Декабрь 2018, 12:53:30 »
Так это делается элементарно и как я описал, если есть соответствующие знания, в частности как организовать работу функции WinAPI. Это ж не долго, может чуть более написания скрипта в WinAutomation, хотя я более предпочитаю AutoMate! Всего один раз написать, а потом пользоваться.

Вы уверены, что всё так просто? Вот так примерно устроено окно чартинга:

(Ссылка на вложение)

Вы хотите писать свою собственную утилиту для разбора структуры TradeStation, вместо того, чтобы использовать готовое?

Automate в определённом плане полный отстой в сравнении с WinAutomation, так как части фишек в нём просто нет, а сам WinAutomation генерит машинный код, который работает в сотни раз быстрее интерпретатора Automate. Для одних задач может хватить Automate, для других без WinAutomation - большие времязатраты, которые стоят денег.
поиск любого окна:

   WindowHandlePrt = FindWindowA(0, 0);
   While WindowHandlePrt > 0 Begin
      GetClassNameA(WindowHandlePrt, WindowClassNam, WindowClassLen);
      If InStr(WindowClassNam, "ORPLAT.EXE TRADESTATION") > 0
      Then Begin
         WindowHandleChd = FindWindowExA(WindowHandlePrt, 0, 0, 0);
         WindowHandleChd = GetWindow(WindowHandleChd, GW_CHILD);
         While WindowHandleChd > 0 Begin
            GetClassNameA(WindowHandleChd, WindowClassNam, WindowClassLen);
            If InStr(WindowClassNam, "ORContainerMDIChildFrame") > 0
            Then Begin
               WindowTitleLen = GetWindowTextLengthA(WindowHandleChd) + 1;
               WindowTitleNam = Spaces(WindowTitleLen);
               GetWindowTextA(WindowHandleChd, WindowTitleNam, WindowTitleLen);

               If WindowHandle = 0
               Then Begin
                  If InStr(WindowTitleNam, WindowName) > 0
                  Then Begin
                     WindowHandle = WindowHandleChd;
                     If WindowUniq = 0 Then Return WindowHandle;
                  End;
               End;
            End;
            WindowHandleChd = GetWindow(WindowHandleChd, GW_HWNDNEXT);
         End;
      End;
      WindowHandlePrt = GetWindow(WindowHandlePrt, GW_HWNDNEXT);
   End;
чуть больше код для скрина окна.Проблема в том, что я не знаю как в EL описывается структура параметров функции, например функция GetWindowRect(WindowHandle, Struc).
Объявляю:
DefineDLLfunc: "user32.dll", Long, "GetWindowRect",
               Long,                                                                               // * [in]  hWnd:   Дескриптор окна.
               Long{IEasyLanguageObject};                                        // что тут надо установить, чтобы получать значения??    * [out] lpRect: Указатель на структуру, которая принимает экранные координаты левого верхнего и нижнего правого углов окна.
как получить lpRect?в нём содержатся параметры окна: lpRect.Weight...

32
TradeStation / EasyLanguage
« : 07 Декабрь 2018, 15:58:35 »
Цель: сделать функцию скриншота окна диаграммы,которая будет работать следующим образом:
- с 1 по последний бар сохраняются даты событий в массив- на последнем баре выполняются скриншоты этих событий прокручивая экран посредством charting.ChartingHost.Create().ScrollTo(BarDateTime из массива) - (некоторое число баров для центровки события на скришоте)
- привязка гиперссылкой соответствующего скриншота к реестру сделок (блокнот рейдера) в экселе

Зачем же это делать так сложно и с большими времязатратами, когда всё это делается элементарно в WinAutomation с получением в итоге рабочего экзешника? Вы вообще своё время ни во что не цените?
Так это делается элементарно и как я описал, если есть соответствующие знания, в частности как организовать работу функции WinAPI. Это ж не долго, может чуть более написания скрипта в WinAutomation, хотя я более предпочитаю AutoMate! Всего один раз написать, а потом пользоваться.

33
TradeStation / EasyLanguage
« : 07 Декабрь 2018, 12:41:18 »
Пост не понятен. У вас получилось или нет? Какова цель получения хэндла окна?
Цель: сделать функцию скриншота окна диаграммы,которая будет работать следующим образом:
- с 1 по последний бар сохраняются даты событий в массив- на последнем баре выполняются скриншоты этих событий прокручивая экран посредством charting.ChartingHost.Create().ScrollTo(BarDateTime из массива) - (некоторое число баров для центровки события на скришоте)
- привязка гиперссылкой соответствующего скриншота к реестру сделок (блокнот рейдера) в экселе
В WinAPI есть функции, которые возвращают несколько свойств через один параметр, доступ к свойствам осуществляется через ".".А у меня пока не получается придумать как эти параметры получать в TDE, один из примеров это функция GetWindowRect.Вообще, поняв как это можно делать, открываются несметные возможности в TS с помощью WinAPI без всяких дополнительных программ.Можно взять весь процесс трейдинга под контроль самой TS! Это удобно!У меня пока это не получается...
С обычными WinAPI функциями проблем нет, всё работает, а вот с теми у которых через один параметр можно получать несколько свойств, увы...

34
TradeStation / EasyLanguage
« : 06 Декабрь 2018, 17:57:44 »
 // Как получить параметры окна стороннего приложения посредством WinAPI, например "Калькулятор". Неделю бъюсь, всё безтолку...ХЕЛП!
// {***Obj} Указатель на структуру, которая принимает экранные координаты левого верхнего и нижнего правого углов окна.
// Как его описать, чтобы можно было получить параметры окна в TDE?
// Предполагаю, должно быть как-то так: Obj.left, Obj.right
// Думаю, разработчики не могли упустить возможность получения данных посредством структуры, но как это сделать? примеров не нашёл...
Using elsystem;
DefineDLLfunc: "user32.dll",                                                                       // https://www.vsokovikov.narod.ru/New_MSDN_API/Window/fn_findwindow.htm
Long,                                                                               // https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-findwindowa
"FindWindowA",                                                                      // Retrieves a handle to the top-level window whose class name and window name match the specified strings.

Long,                                                                               // * [in] lpClassName:  If lpClassName points to a string, it specifies the window class name.

String;                                                                             // * [in] lpWindowName: The window name (the window's title). If this parameter is NULL, all window names match.
DefineDLLfunc: "user32.dll",                                                                       // https://www.vsokovikov.narod.ru/New_MSDN_API/Window/fn_getwindowrect.htm
Long,                                                                               // https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-getwindowrect
"GetWindowRect",                                                                    // Retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
Long,                                                                               // * [in]  hWnd:   A handle to the window.
Long;  {***Obj}                                                                     // * [out] lpRect: A pointer to a RECT structure that receives the screen coordinates of the upper-left and lower-right corners of the window.
Vars:
String WindowName  ("Калькулятор"), // Предварительно необходимо запустить "Калькулятор"
Int    WindowHandle(0),
Int    Obj(0);        // ***Obj
Once Begin
Clearprintlog;
WindowHandle = FindWindowA(0, WindowName);
If WindowHandle > 0
Then Begin
GetWindowRect(WindowHandle, Obj {***Obj});
{
Print(Obj.left:0:0, Obj.right:0:0);
}
Print(WindowHandle:0:0);
End;
End;
 

35
TradeStation / EasyLanguage
« : 19 Сентябрь 2018, 23:52:18 »
Кто-нибудь интересовался новейшим чудом TradeStation 10?

36
TradeStation / EasyLanguage
« : 10 Август 2018, 15:02:03 »
На выходных переустановил Win7. Впервые, появилась проблема запуска TradingApp, кто-нибудь сталкивался с подобными фокусами?
Проблема решилась повторной переустановкой системы, но:
1. первоначально, после установки Win 7 не дожидаясь установки её обновлений, была установлена TS9.1, как следствие возникли проблемные моменты с TradingApp
2. впоследствии, после установки Win 7 были установлены её обновления до текущей даты, а после установлена TS9.1, проблемные моменты с TradingApp исчезли.

37
TradeStation / EasyLanguage
« : 30 Июль 2018, 12:17:48 »
На выходных переустановил Win7. Впервые, появилась проблема запуска TradingApp, кто-нибудь сталкивался с подобными фокусами?

38
TradeStation / EasyLanguage
« : 25 Июль 2018, 11:07:22 »
Не знаю по какой причине, но работа с файлами в AutoMate VBS модулях выполняется намного быстрее, чем в TS!Сделал загрузчик котировок, скорость работы которого в TS более чем в 2 раза медленнее в сравнении с VBS! API функции работают очень быстро, а чтение и запись в файл посредством TS очень медленная! Думаю попробовать и её сделать через API. И сравнить результат...

39
TradeStation / EasyLanguage
« : 25 Июль 2018, 01:11:38 »
Есть способ достаточно простой, можно в самой TS перебрать окна, определить их дескрипторы и классы, но это посредством цикла, хотелось бы без цикла, напрямую по дескриптору, ну чтож придётся циклом перебирать до нужного окна и останавливать цикл. Сторонний софт стараюсь обходить по возможности.

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

40
TradeStation / EasyLanguage
« : 24 Июль 2018, 23:49:38 »
Кто-нибудь знает как можно узнать дескриптор окна диаграммы в функции??

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

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