Статья. Что такое Metastock Developer's Kit?

В этой небольшой статье я постараюсь ответить на следующие вопросы?

Итак, что такое Metastock Developer's Kit?

Metastock Developer's Kit - это комплект разработчика для создания внешних dll и присоединения (линковки) их к программе Equis Metastock (http://www.metastock.com) . В динамические библиотеки можно вставлять дополнительные функции к метастоку. Эти внешние библиотеки называются MSX DLL (MetaStock eXternal DLL).

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

Если азы вы знаете, остается разобраться с MDK (Metastock Developer's Kit), надеюсь, что в этом моя статья вам немного поможет.

Для чего нужен Metastock Developer's Kit?

Как известно встроенный язык метастока вещь достаточно ущербная, но то, что позволяет делать MDK все же реабилитирует фирму Equis. Все прекрасно понимают, что для работы на бирже нужно быть вооруженным математико-статистическим аппаратом для проведения анализа графиков, создание и тестирования торговых систем и т.п. А поскольку "простой формулы жизни нет", то необходимо строить всевозможные "трехэтажные" вычисления, чтобы увидеть хоть какой-нибудь порядок. В этом и помогает MDK.

Если вы читаете эту статью, то, наверное, уже сами догадываетесь, зачем это все надо.

Где скачать Metastock Developer's Kit?

Это наверное самый главный вопрос. Ну что ж для полноты картины надо ответить и на него.

Скачать его можно в нескольких местах. Но приведу только одно, проверенное:

MDK

Как распространяется MDK?

Понятия не имею!

Что нужно знать и иметь, чтобы пользоваться Комплектом разработчика для Metastock?

Нужно иметь компилятор языка высокого уровня, например Delphi. Это как правило вещь серьезная в интернете ее не скачать, надо идти в магазин и покупать компашку. Затем нужно разобраться с этой программой, освоить и понять, так сказать, основные ее принципы и уж потом устанавливать MDK.

Следует помнить, что MDK - это в первую очередь "приложение" к компиляторам (типа Delphi), а вовсе не к метастоку!

 

Описание MDK

Описание будет направлено на пользователей компилятора Delphi.

Итак, что входит в комплект установки MDK.

  1. Пустой шаблон исходника программы (DLL) и всех необходимых модулей к нему
  2. Образец исходника с примерами функций
  3. Прорамма MSXtest для быстрой проверки созданных MSX DLL.

Во время установки MDK сам метасток надо закрыть иначе выдаст ошибку. После установки идете в каталог ...MDK\MSX\Delphi\..., там будет три файла:

DelphiSampleDLL.pas - образец исходника с примерами функций

MSXStruc.inc - файл структур переменных. Этот файл необходим для компиляции, иначе переменные не будут пониматься компилятором. Его желательно внимательно посмотреть, чтобы понимать структуру используемых переменных (типов).

MSXTmplt.pas - пустой шаблон исходника.

В идеальном случае работа с MDK выглядит так:

  1. Запускаете дельфи
  2. Открываете из него файл MSXTmplt.pas.
  3. Сохраняете его как проект (save as... и выбираете там .dpr)
  4. Закрываете дельфи и открываете только что созданный проект *.dpr теми же дельфями.
  5. И глядя на готовый шаблон, прописываете в него свою функцию
  6. Компилируете проект. (В каталоге с проектом должен появиться файл *.dll)
  7. Затем кладете этот файл в папку с программой для тестирования MSX DLL и тестируете. MSXTest очень хорошая тестилка, она прогонит через вашу функцию все возможные и невозможные варианты, а если ошибка не в функции, а в самой dll, то вы тоже об этом узнаете.
  8. После этого берете созданную вами библиотеку и кладете ее в папку \Equis\MetaStock\External Function DLLs\ запускаете метасток и можете вызывать свою функцию такой формулой:

ExtFml("DllName.FuncName", p1, p2 , ...,pn),

где:

DllName - имя вашей dll без расширения.

FuncName - имя вашей функции

р1, р2... - параметры, если они есть у вашей функции

 

Так можно действовать в идеальном случае. В нашем случае (не идеальном) нужно будет сперва разобраться как писать функции, а затем уже писать их. А разобраться MDK предлагает только по готовым примерам. Чтобы хоть как-то помочь вам в этом, я прилагаю исходник шаблона с переведенными на рус.яз. коментариями, и исходник (написанный мной) с функцией rnd (генератор случайных чисел).

Дело в том, сразу разобраться со штатным образцом (DelphiSampleDLL.pas) тяжело. А моя функция rnd очень простая, задействует минимум кода. К тому же я крайне обильно напичкал ее комментариями в помощь начинающим. Кстати эта функция по-своему интересна и позволит вам развеять миф о том, что шансы на рынке равны (50/50).

MyTmplt.zip

В заключение хочу добавить, что все, что здесь написано, а также комментарии к исходникам - это всего лишь мои домыслы, которые как ни странно работают. Если, возникли какие-то вопросы, на которые вам кажется, что я смогу ответить, то обращайтесь прямо ко мне xelay@narod.ru. Я обязательно постараюсь ответить на ваш вопрос. К тому же мне интересно насколько полезна моя статья, ну или просто познакомимся для дальнейшего плодотворного сотрудничества J .

 

Смотри также статью о формате хранения данных в Metastock 7  здесь

 

PS1. В результате очередного обмена опытом родилась еще одна DLL, с очень полезной функцией, которую я назвал True Value Since. Эта функция возвращает количество истинных значений DATAARRAY2 с момента последнего истинного значения DATAARRAY1. Архив с DLL и описанием здесь.

 

 

Hosted by uCoz