Програмування Зовнішніх Dll Для Equis Metastock

Написання (програмування) зовнішніх функцій для Метастока можна здійснити з допомогою Metastock developer’s Kit. Metastock developer’s Kit – це комплект розробника для створення зовнішніх dll і приєднання (лінкування) їх до програми Equis Metastock ).
Тому для написання dll потрібно встановити Metastock developer’s Kit.
MDK – є додатком до компиляторам.
У комплект установки MDK також включає:
Порожній шаблон макета програми (DLL) і всіх необхідних модулів
Зразок макету з прикладами функцій
Прорамми MSXtest для швидкої перевірки створених MSX DLL.
Під час установки MDK сам метасток треба закрити інакше видасть помилку.
Програмування зовнішніх dll можна здійснювати на наступних мовах: С, Delphi і PBasic. Але програмування на С має більше можливостей при створення зовнішніх фунції.
Після установки каталог С: EquisMDKMSX буде містити три папки з іменами С, Delphi і PBasic містять файли зразка джерела з прикладами функцій, файл структур змінних і порожній шаблон макета.
В ідеальному випадку робота з MDK виглядає так:
Запускаєте дельфі
Відкриваєте з нього файл MSXTmplt.pas.
Зберігаєте його як проект (save as… ” і вибираєте там .dpr)
Закриваєте дельфі і відкриваєте тільки що створений проект *.dpr тими ж дельфями.
І дивлячись на готовий шаблон, прописуєте в нього свою функцію
Компилируете проект. (В каталозі з проектом повинен з’явитися файл *.dll)
Потім кладете цей файл в папку з програмою для тестування MSX DLL і тестуєте. MSXTest дуже хороша тестилка, вона прожене через вашу функцію всі можливі і неможливі варіанти, а якщо помилка не на функції, а в самій dll, то ви теж про це дізнаєтеся.
Після цього берете створену бібліотеку і кладете її в папку EquisMetaStockExternal Function DLLs запускаєте метасток і можете викликати свою функцію такою формулою:
ExtFml(“DllName.FuncName”, p1, p2 , …,pn),
де:
DllName – ім’я вашої dll без розширення.
FuncName – ім’я функції
р1, р2… – параметри, якщо вони є у вашій функції
Так можна діяти в ідеальному випадку. В нашому випадку (не ідеального) потрібно спершу розібратися як писати функції, а потім вже писати їх. А розібратися MDK пропонує тільки за готовими прикладами. Щоб хоч якось допомогти вам в цьому, я докладаю ісходник шаблону з переведеними на рос.яз. коментарями, і вихідний (написаний мною) з функцією rnd (генератор випадкових чисел).
Справа в тому, відразу розібратися зі штатним зразком (DelphiSampleDLL.pas) важко. А моя функція rnd дуже проста, задіює мінімум коду. До того ж я дуже рясно напхав її коментарями на допомогу початківцям. До речі ця функція по-своєму цікава і дозволить вам розвіяти міф про те, що шанси на ринку дорівнюють (50/50).