![]() |
|
||||||||||||||||||||||||||
| PDA-версия | Правила форума | Помощь | Пользователи | Портал трейдеров |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() |
Пишу на Delphi |
![]() |
Jun 2 2010, 16:19
Сообщение
#1
|
|
|
Здравствуйте, уважаемые (IMG:style_emoticons/default/smile.gif) Такой вопросик родился. Я программирую немного не Дельфи. Ничего серьезного. Так, просто: для души. Но мне любопытно было бы узнать, можно ли из Дельфи получить доступ к серверу (через СОМ-объект). Если да, то можно было бы попробовать какую-нибудь системку написать простенькую. Кто-нибудь что-нибудь может сказать по этому поводу?
|
|
|
|
Jun 2 2010, 16:33
Сообщение
#2
|
||||||||||||||||||||||||
Вполне возможно - ограничений по языкам нет. В практике такое встречается. |
||||||||||||||||||||||||
|
|
Jun 2 2010, 19:20
Сообщение
#3
|
|
|
Постараюсь помочь чем смогу. Поищу: где-то у меня были материалы.
|
|
|
|
Jun 8 2010, 16:33
Сообщение
#4
|
|
|
Материалов готовых найти не удалось... только какие-то обрывки кода кое-где встречаются в интернете. Служба поддержки отвечает всякое разное, но только не то, что могло бы помочь в этом деле.
Однако, мне уже кое-чего удалось добиться. Пришлось, правда, работать "методом научного тыка". Чуть-чуть попозже я отпишусь, что и как... скорее всего, завтра или послезавтра. |
|
|
|
Jun 9 2010, 07:25
Сообщение
#5
|
|
|
На мой взгляд использование чистого api - это долгий путь к реализации ТС, писать придется все нужные индикаторы, выаод информации от тс, и т.д. Лучший вариант использовать Wealth Lab 3, в нем уже имется множество встроенных функций и индикаторов, на все случаи жизни, а недостающие можно написать самому. Язык ВЛ основан на Паскале. А Делфи - это расширенный паскаль!
Спасибо сказали:
Vo_Ja_dger |
|
|
|
Jun 9 2010, 09:06
Сообщение
#6
|
|
|
Во многом согласен. Паскалевский транслятор довольно-таки распространен. Я даже где-то видел free-версию. А это говорит о том, что легко можно встраивать паскаль (или паскале-подобный язык) во многие программы, где требуется возможность написания собственных скриптов. И вот, например, ВЛ. Но максимальная гибкость достигается, конечно же, только при использовании полноценного языка (среды) программирования.
Возьмем, к примеру МТ-шный язык (внешне он похож на С). Но особенность программы такова, что скрипт отрабатывает по тику. И "повесить" его на какое-то другое событие нет никакой возможности. К чему это приводит? - Возникают определенные сложности, к примеру, при создании систем, работающих в реальном времени. Да и вообще не удается полностью реализовать событийно-ориентированную парадигму. Приходится придумывать какие-то циклы, условия и т.д. Такой подход... может многим не нравится. Ну, и потом, мне не сложно: вот просит Николаевич - ну, хочется ему, - пожалуйста. Я, например, тоже - за неограниченную свободу. А индюк написать... на полноценном языке программирования? - я вас умоляю... это 2-3 минуты делов. Вывод.... - для графики есть готовые компоненты, для текста - вообще проблемы не вижу. |
|
|
|
Jun 9 2010, 10:19
Сообщение
#7
|
|
|
В двух словах о технологии. В отличие от некоторых других терминалов, СмартТрейд дает прямой доступ к серверу (и, соответственно, к торговому счету) через СОМ-сервер. Преимущества такого подхода заключаются в большей гибкости пользовательского ПО и отсутствии ограничений, накладываемых использованием каких бы то ни было промежуточных звеньев.
Кроме того, в случае использования СОМ, исходный код компилируется, а не транслируется, что, в свою очередь, дает производительность. Она не всегда нужна. Часто скрипты, которые пишутся для реализации механической торговой системы представляют собой десятка два-три строк. Но когда она бывает НУЖНА - то требуется остро! И когда не хватает производительности языка, то это напрягает уже сильно. Что такое COM? COM является платформно-независимой, объектно-ориентированной технологией, позволяющей создавать бинарные компоненты. Эти компоненты можно использовать как локально, так и в распределенном сетевом окружении. COM служит основой для: OLE (технология составных документов), ActiveX-объектов и элементов управления ActiveX, DCOM, COM+. На базе COM создано большинство новейших продуктов (тот же MS Office, например) и технологий Windows (Automation, Drag & Drop, и т.д.). COM – это технология, позволяющая объектам взаимодействовать, несмотря на границы процесса или машины, так же легко, как и объектам внутри одного процесса. COM обеспечивает такое взаимодействие, определяя, что единственный путь управления данными, ассоциированными с объектом, лежит через интерфейс объекта. Термин «интерфейс», о котором речь пойдет чуть ниже, означает реализацию в коде COM-совместимого двоичного интерфейса, ассоциированного с объектом. Программисты все знают, а для "обычных пользователей" скажу, что на любом современном компьютере, где есть Windows, Office и десяток или два современных офисных, графических или девелоперских программ, - есть множество СОМ-серверов. СОМ-сервер - это компонент, который, собственно, позволяет пользоваться инкапсулируемым классом для создания в пользовательских программах объектов - экземпляров этого класса. Благодаря технологии COM такие классы могут располагаться в DLL. Именно в такой реализации это становится возможно. Потому что, вообще-то, стандартная DLL может экспортировать лишь процедуры и функции. DLL, содержащую СОМ-сервер требуется регистрировать в системе специальной программой, входящей в состав ОС. Часто, как и в случае с объектом СмартКОМ это делает установщик (при инсталляции). Что такое SmartCOM? SmartCOM – открытый программный интерфейс подключения приложений (API) с использованием компонентной объектной модели (Component Object Model, COM). Интерфейс специально разработан для создания на его основе собственных автоматизированных систем пользователей и позволяет строить полноценных торговых роботов, общающихся напрямую с торговым сервером брокера, разрабатывать собственные торговые терминалы, а также стыковать с торговым сервером уже имеющиеся механические торговые системы. Использование SmartCOM дает возможность: 1. Подключать робота к торговым серверам брокерской компании напрямую, минуя обычные клиентские интерфейсы. Это позволяет роботу не только оперативно получать информацию о торгах и состоянии счета, но и направлять торговые приказы прямо «в рынок» и отслеживать их исполнение. Скорость торговли при использовании SmartCOM зависит только от скорости самого робота и каналов связи. 2. Отслеживать все приказы и позиции, сформированные роботом, в корпоративных терминалах компании (например, через торгово-аналитический терминал SmartTrade). Эта возможность особенно актуальна при отладке робота, а также для трейдеров, не разрабатывающих роботов самостоятельно, а приобретающих их у сторонних разработчиков. 3. Использование компонентной объектной модели позволяет подключать к торговым серверам брокера механические торговые системы, разработанные практически на любых программных платформах, поддерживающих эту технологию. Например, C++, любой из.NET языков (C#, VB.NET и другие), Visual Basic, Visual Basic for Application (в частности из Microsoft Excel) и многих других. Я, в частности, покажу, как это делается на Delphi, потому что для других языков материал нарыть можно. А Дельфи, почему-то оказывается... как бы несколько в стороне от "мэйн-стрима". Ну, в философию вдаваться не будем. И говорить о том, кому и в чем разрабатывать программы - пустое. Это право каждого: выбрать себе язык. Ограничимся лишь тем, что для задач связанных с написанием МТС (механических торговых систем) Дельфи - это мощный, полнофункциональный, гибкий и производительный язык, способный реализовать любую фантазию трейдера. А учитывая то, что он еще и предельно прост в понимании и доступен для новичков программирования, можно сказать, что это один из лучших языков для написания торговых роботов. Сообщение отредактировал Vo_Ja_dger - Jun 9 2010, 10:26 Спасибо сказали:
_Николаевич_ |
|
|
|
Jun 9 2010, 11:48
Сообщение
#8
|
|
|
Во, как прикольно! Это я правильно понимаю, что трейдер может, в принципе, сделать терминал вообще 100% под себя (IMG:style_emoticons/default/wizard.gif) какой нравится и какой удобен?
И еще один вопрос: ведь можно же записывать текущие котировки, которые поступают с сервера в какой-нибудь файл, да? Я имею ввиду, для последующего анализа. Я правильно понимаю? Эхх... жаль, что я не умею программировать. (IMG:style_emoticons/default/umnik.gif) |
|
|
|
Jun 9 2010, 12:27
Сообщение
#9
|
|
|
Вояджер, спасибо!
Миленка, там ничего сложного нету. Если будешь сюда заглядывать, - быстро научишься (IMG:style_emoticons/default/smile.gif) |
|
|
|
Jun 9 2010, 12:37
Сообщение
#10
|
|
|
Да, собственно, не за что.
Кстати говоря, вот здесь: http://www.uwcbroker.ru/trading/developers (внизу страницы) можно скачать СОМ-сервер, о котором идет речь. Вот прямая ссылка |
|
|
|
Jun 9 2010, 12:57
Сообщение
#11
|
|
|
На всякий случай, для тех, кто очень ценит "порядок" и "чистоту" на своих машинах, - сообщаю, что объект корректно ставится инсталлятором. И также корректно и полностью удаляется, не "за***ая" машину.
Процесс инсталляции прост. И вряд ли у какого-то программиста вызовет сложности... Давим все время "Да", "Следующий", "Ок", "Согласен" и "Завершить" (IMG:style_emoticons/default/smile.gif) |
|
|
|
Jun 9 2010, 13:00
Сообщение
#12
|
|
|
|
Jun 9 2010, 13:04
Сообщение
#13
|
|
|
|
Jun 9 2010, 13:10
Сообщение
#14
|
|
|
Главная ДЛЛ-ка, которая нам потребуется для работы - это stcln-2.dll (на рисунке отмечена галочкой).
Прикрепленные изображения
|
|
|
|
Jun 9 2010, 13:32
Сообщение
#15
|
|
|
|
Jun 9 2010, 13:35
Сообщение
#16
|
|
|
|
Jun 9 2010, 13:38
Сообщение
#17
|
|
|
|
Jun 9 2010, 13:52
Сообщение
#18
|
|
|
|
Jun 9 2010, 13:57
Сообщение
#19
|
|
|
На следующем шаге, если хочется, можно поменять каталог, куда будет добавлен заголовочный файл для нашего СОМ-объекта, и который (этот юнит) впоследствии надо будет использовать в своих проектах. Больше ничего менять не надо.
Сообщение отредактировал Vo_Ja_dger - Jun 9 2010, 13:57 |
|
|
|
Jun 9 2010, 14:07
Сообщение
#20
|
|
|
|
![]() |
|
![]() |
![]() |
© ForexPeoples.com, 2008 |
Форекс форум | Forex Forum | форум брокеров |
Designed by Zaragraphics Forum Style by IPB Skins Team |
![]() |
![]() |