Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26113
Рейтинг: 2126
#16: 2011-09-09 11:26:28 ЛС | профиль | цитата
Aziz писал(а):
Его преимущество еще и в том что наверное он быстрее работает

По крайней мере, файлы копирует со скоростью операционной системы и гораздо быстрее чем обычные схемы. В принципе, для передачи информации между приложениями используют именованные каналы (PIPE), они гораздо удобнее и работают на том же принципе проекций
карма: 22

0
Ответов: 1291
Рейтинг: 47
#17: 2011-09-09 16:27:40 ЛС | профиль | цитата
Да, это здорово. Надо тоже научиться asm применять.. Но у пайпов свой внутренний протокол еще есть, что иногда замедляет обмен, также не всегда нужна вся его кухня для синхронизации. Также они порой глючат, судя по отзывам и моему небольшому опыту их использования. Пайпы - вроде как надстройка над Файл Маппингом, поэтому для скоростного обмена лучше наверное использовать более низкоуровневый ФМ. А еще лучше - "настоящие" расшаренные переменные в С++ (подробнее в теме "Как вызывать функцию из dll?":
http://forum.hiasm.com/forum.html?q=3&t=57961). Хотя задержка у ФМ не так уж велика, на моем компе в среднем - 100-200 мкс. - что более чем достаточно. Кстати, кто тестил задержку с помощью моей схемы, отпишитесь, у кого какая, кто сможет.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#18: 2011-09-09 17:08:47 ЛС | профиль | цитата
Aziz писал(а):
Также они порой глючат, судя по отзывам и моему небольшому опыту их использования

А не попадались ли тебе криво реализованные PIPE элементы
Aziz писал(а):
поэтому для скоростного обмена лучше наверное использовать более низкоуровневый ФМ

Там что, гигабайты передаются
У PIPE есть одна очень интересная фича -- экземпляр канала (Instance) называется, от их количества зависит кол-во одновременных потоков обработки у одного именованного канала (до 255), фактически -- количество одновременно подключенных клиентов. Можно данные разбить на количество экземпляров, сунуть их серверу, он начнет их параллельно обрабатывть в режиме перекрытия (OverLaped), затем данные собрать. При правильно подобранном буфере обмена, скорость передачи будет приличная
карма: 22

0
Ответов: 1291
Рейтинг: 47
#19: 2011-09-09 17:28:20 ЛС | профиль | цитата
nesco писал(а):
А не попадались ли тебе криво реализованные PIPE элементы
Пока -нет. Только прямой вызов API Pipe из kernel32.dll в Metatrader. В принципе, работает, глюки наблюдались только если сервер Pipe некорректно завершал свою работу, падая с терминалом. Тогда клиент не мог установить связь с сервером. Оставались видимо незакрытые соединения. Ну и toropchin чего-то говорил что глючит. А так штука конечно удобная. Где-то читал что все ухищрения на основе ФМ - это тот же Pipe, только самопальный, со своими семафорами и т.п. И что зачем изобретать велосипед, когда уже есть его реализация причем на уровне ядра, что сказывается на скорости и надежности... Надо значит SharedVar на основе пайпов тоже замутить как нибудь. Для разнообразия. ))
nesco писал(а):
Там что, гигабайты передаются
- нет, просто котировки надо ловить моментально и реагировать тоже моментально. Иначе арбитраж не выйдет.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#20: 2011-09-24 18:14:08 ЛС | профиль | цитата
SharedVar 1.1: подправил - теперь более корректно инициализирует память и удаляет из нее. См. шапку.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#21: 2013-09-21 19:57:48 ЛС | профиль | цитата
Обновил SharedVar 1.2 См. шапку.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#22: 2013-10-11 11:10:37 ЛС | профиль | цитата
ogl_interactive1.1 Обновлен для совместимости с SVN, спасибо MAV. См. шапку. Старый уже не работает.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#23: 2024-07-30 10:13:40 ЛС | профиль | цитата
Недавно с участием чата ГПТ написал свой компонент для рисования японских торговых свечей, для создания финансовых программ понадобилось. Но он похоже имеет какой-то глюк, тк если частоту перерисовки таймером сделать в районе 100 мс, то программа через некоторое время падает. Просто закрывается без ошибки. Раньше там была утечка памяти, но я ее локализовал в диспетчере винды, смотря как растет память и устранил. Это я просто не дописал в конце уничтожение картинки bmp.clear bmp.free. После этого перестала есть память, стабильно 1- 2 мб. Если кто знает в чем проблема и поправит, будет здорово.. После двойного ковида в 2020 и одиночной женщины в 2019 и набранных годков (почти 49) похоже мой разум и память резко сдали.. ( Но, когда Бог что-то забирает, Он дает взамен другое - появился ChatGPT ))

Форум не дает даже 8 кб архив zip загрузить, пишет что файл должен быть не больше 54000 байт.. Поэтому на ЯД залил - компонент с примером. Зум по колесу мыши. Потом хочу переделать, чтобы свечу отрисовывал непосредственно по самой динамике цены.

https://disk.yandex.ru/d/zyL_NYKZ-szBaw

Редактировалось 3 раз(а), последний 2024-07-30 10:32:49
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 773
Рейтинг: 168
#24: 2024-08-01 07:10:11 ЛС | профиль | цитата
Aziz писал(а):
Но он похоже имеет какой-то глюк, тк если частоту перерисовки таймером сделать в районе 100 мс, то программа через некоторое время падает. Просто закрывается без ошибки.

В твоей схеме есть компонент, которого у меня нет. (курсор?)
Попытался распутать твою схему, плюнул, запустил EXE. Минут двадцать работало, ничего не произошло. Краша не было.
Насколько я знаю, для отрисовки свечей нужны следующие данные:
timestamp : 1692489600
symbol : BTC-USD
interval : 1d
open : 26096,86
high : 26260,68
low : 26004,31
close : 26189,58
volume : 9036580420
Смотрел я компонент, так и не понял, откуда берётся высокая и низкая цена? Где задаётся интервал?
По-моему, цвет должен зависеть от того выше цена закрытия цены открытия или нет.
OHLC-candlestick-data-in-chart

Почему не воспользоваться чем-то сторонним?
https://disk.yandex.ru/d/NJh_A4qK5NO0Ng
только разархивируй всё в одну папку.

Редактировалось 4 раз(а), последний 2024-08-01 07:19:43
карма: 15

0
Ответов: 1291
Рейтинг: 47
#25: 2024-08-01 16:12:04 ЛС | профиль | цитата
Gunta, спасибо большлое за наводку. Круто. Просто хотелось полностью контролировать вид свечей и оформление графика. А чего там распутывать схему из 10 компонентов примерно) Там компонент только отрисовывает свечу, и ценовые уровни на самом деле определяют высоту и форму свечи в пикселях. Это ГПТ4 так решил) Я пока не не переделывал, но уже собирался прикрутить вычисление этих пиксельных данных в зависимости от дельты (изменения) цены.
Да, отсутсвующий у тебя компонент - это FormIconCursor. Он менял вид курсора на крестик при правом клике по графику.
Да, у меня тоже не крашится, но попробуй таймер сделать 100, а еще лучше 10 мс. И позумить туда сюда.
Буду думать какой тип свечей применить, но твоя библа сильно ускорит конечно процесс. Создаю что-то типа рандомного генератора идеальных тиковых котировок и одновременно тестера торговых стратегий на них. Там можно и рандомные тренды создавать, как бы странно это не звучало)

--- Добавлено в 2024-08-01 16:13:16

А как отобразить твои свечи в родном хиасмовском окне?

Редактировалось 3 раз(а), последний 2024-08-02 00:55:30
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 1291
Рейтинг: 47
#26: 2024-08-01 17:39:21 ЛС | профиль | цитата
И как удалить унаследованные Point1 Point2 в элементе? Мне они не нужны, но хочется чтобы трансформация работала..
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 2236
Рейтинг: 676
#27: 2024-08-01 20:40:34 ЛС | профиль | цитата
Aziz писал(а):
И как удалить унаследованные Point1 Point2 в элементе?

Можно посмотреть к примеру как у кнопки то реалезовано: Button.ini у него свойство Color отключено (не наследуется)
карма: 11

0
Ответов: 1291
Рейтинг: 47
#28: 2024-08-02 00:54:17 ЛС | профиль | цитата
sla8a, да, помогло, спасибо. Если сделать
Point1= |0|
Point2= |0|
Point2AsOffset= |0|
то они не отображаются.

--- Добавлено в 2024-08-02 01:08:19

Поторопился.. Не пропадают, просто превращаются в верхние точки, включаемые галочками. Только Point2AsOffset полностью скрылось.

Редактировалось 2 раз(а), последний 2024-08-02 01:08:19
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 773
Рейтинг: 168
#29: 2024-08-02 04:46:33 ЛС | профиль | цитата
Aziz писал(а):
А как отобразить твои свечи в родном хиасмовском окне?

https://disk.yandex.ru/d/49wVsi8w7KV97Q

Редактировалось 3 раз(а), последний 2024-08-02 06:54:55
карма: 15

0
Ответов: 2236
Рейтинг: 676
#30: 2024-08-02 09:26:35 ЛС | профиль | цитата
Aziz писал(а):
Не пропадают, просто превращаются в верхние точки

В ini файле компонента смотрим вкладку:[Type]
Там: Inherit=ImgDrawPoint - это означает что будет унаследовано все из файла ImgDrawPoint.ini
От файла ImgDrawPoint.ini наследуются как Свойства [Property], так и Методы [Methods]
Такой припиской: = |0| можно блокировать как свойства, так и методы (точки).
Судя по вашему описанию вы заблокировали только Свойства.

Очень полезно использовать такие файловые менеджеры как TotalComander, DoubleComander и т.п.
Зайдя в папку HiAsm\Elements\delphi\conf\ и начать поиск (Alt+F7) с маской по тексту = |0| можно увидеть сколько файлов использует такой способ блокировки наследования и как это реализовано.
Так же очень удобно искать в папке \HiAsm\Elements\delphi\code\ реализацию нужной процедуры или функции или интересующего участка кода.
Ставим фильтр файлов*.pas, текст WM_, включаем поиск, выводим найденные файлы на панель. И если заранее ввести в буфер обмена нужный текст WM_, то достаточно пробежаться используя клавиши стрелок и клавишу F3 чтобы быстро найти нужное.

Редактировалось 1 раз(а), последний 2024-08-02 09:30:16
карма: 11

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)