English 中文 Español Deutsch 日本語 Português
Статистический анализ рыночных движений и их прогнозов

Статистический анализ рыночных движений и их прогнозов

MetaTrader 4Примеры | 2 июня 2008, 10:46
5 693 31
---
---

Вместо вступления

В данной статье рассматриваются широкие возможности статистического подхода к изучению рынка. К сожалению, трейдеры-новички сознательно не используют эту поистине могущественную науку – статистику. А ведь, во-первых, это - единственное, чем они пользуются подсознательно при анализе рынка, а во-вторых, статистика может дать ответы на многие вопросы. Можно более глубоко анализировать сделки и их условия и найти оптимальный и более гибкий вариант торговли.
В действительности, любой мало-мальски знакомый с азами экспертописания трейдер пользуется встроенной оптимизацией тестера. Но, увы, на наш взгляд, он не всегда полностью понимает то, какое мощное средство у него в руках – сбор и анализ статистики.


Постановка задачи

Не будет ошибкой предположить, что минимум 99,9% трейдеров для анализа рынка и его прогноза используют индикаторы или их комбинации. Процесс «знакомства» трейдера с любым индикатором поначалу проходит в чисто визуальном контакте. Трейдер анализирует показания индикатора, сопоставляя его с графиком цены, и пытается найти устойчивые закономерности. Если эти визуальные закономерности не будут найдены, то такой индикатор откладывается трейдером в корзину. Если же будут явно просматриваться устойчивые связи между изменением показаний индикатора и движением цены, то дальнейшая работа переходит на второй этап – количественный поиск успешных предсказаний цены и, возможно, разработка советника.
После длительного периода ознакомления с конкретным индикатором или их комбинацией трейдер начинает интерпретировать их сигналы по дискретному принципу - «открываем вверх», «открываем вниз» или «нет сигнала». То есть трейдер ограничивает все множество показаний индикатора только однозначными трактовками, упрощая для себя прогноз рынка.

Например, на рисунке 1 изображена комбинация двух ЕМА с периодами 5 и 7.

Рисунок 1. Пример дискретизации сигналов – пересечение двух МА.

Внизу под графиком цены мы имеем индикатор, построенный по дискретному принципу. Для наглядности мы реализовали не «0» и «1», а цветовое различие. «Зеленые» сигналы на покупку (когда быстрая ЕМА5 пересекает медленную ЕМА7 вверх), «красные» сигналы на продажу (когда быстрая ЕМА5 пересекает медленную ЕМА7 сверху вниз).


Можно еще добавить такой же зелено-красный «семафор», например комбинацию SAR и ADX (рисунок 2).

Рисунок 2. Комбинация 4 индикаторов – EMA(5), EMA(7), SAR(0.02, 0.2) и ADX(14)

В результате будем иметь отфильтрованные сигналы пересечения ЕМА. Что, например, даст возможность избежать ложного входа 10 сентября в 3:00, а с другой стороны мы запоздаем с входом в рынок 7 сентября.
Если мы будем продолжать наращивать такое количество «семафоров», то это приведет к системе, которая будет просто входить по последнему из самых медленных индикаторов. На рисунке 3 можно наблюдать промежутки, в которых доминируют зеленые или красные полосы по всем индикаторам, что свидетельствует о точном прогнозе направления движения. Краткосрочные же участки просто-напросто выпадают из такого подхода, так как один из индикаторов не успевает отреагировать на это изменение.

Конечно, можно придумать такой ММ, когда каждому «семафору» будет соответствовать своя доля лота и по мере подтверждения позиции все новыми и новыми семафорами, у нас будет увеличиваться количество лотов с перевесом в определенную сторону – продажа или покупка. Или, как альтернатива, можно ждать сигнал входа/выхода до тех пор, пока общая сумма долей вероятностей всех семафоров будет больше некоего порогового значения (например 50/50). В первом случае, на наш взгляд, мы не только не получим прибыли, но и придем к полному расходу средств на покрытие ложных входов/выходов с убытком. Во втором же (альтернативном) случае, вход и выход будет осуществляться по индикатору, который не является ни самым быстрым, ни самым медленным из всех. А это значит, что все равно останутся ложные входы/выходы.

Рисунок 3. Суперпозиция семафоров – «Однажды лебедь, рак и щука…»

Итак, с одной стороны дискретизация сигналов приводит к точному выстраиванию алгоритма входа и выхода из рынка, но с другой стороны – к негативным последствиям – ложным входам в рынок. К сожалению, ПРИЧИНУ ложных входов НЕВОЗМОЖО понять, наблюдая дискретные (интерпретированные) значения индикатора. Это возможно только на его ИСХОДНЫХ данных – множестве непрерывных значениях. Именно в последних можно видеть не только дискретность, но также силу и характер этих сигналов, их сопоставимость с прошлыми показаниями и относительным расположением. Но вот проблема. Как научить машину «видеть», а не только реагировать?

ГЛАВНЫМИ ЗАДАЧАМИ данной работы являются:
1) нахождение множества статистически обоснованных значений (комбинаций) индикаторов, которые с большой вероятностью предсказывают дальнейшее движение тренда.
2) разработка примеров скриптов, с помощью которых трейдер сможет проверять и анализировать предполагаемые тенденции без написания советников.

В результате решения первой задачи мы попытаемся также расширить стандартный набор сигналов от известных индикаторов и доказать их статистическую верность.
Поиск решения может иметь три пути, в зависимости от того, какие причинно-следственные связи мы хотим найти:
а) от прошлых значений индикаторов к статанализу будущих баров
б) от будущих характеристик баров к статанализу прошлых значений индикаторов
в) объединяет два первых и является как бы системой с обратной связью. То есть, например, сначала определяется зависимость между будущими барами и прошлыми показаниями индикаторов, а за вторым проходом уточняется (статистически проверяется) найденная наилучшая зависимость индикатора и прогноза баров.
Ниже приведена блок-схема анализа.

Реализацию первого этапа размещаем в скрипте. Грубо говоря, скрипт будет выполнять функцию конвертера преобразованных данных в файл для дальнейшего его анализа. Это позволит избежать повторного анализа и даст общее ускорение обработки данных.
Для решения нам следует разобраться в тех условиях, которые мы будем накладывать на анализируемую цену. Вариантов может быть множество:
- например, по рекомендациям торговли с помощью MACD мы должны ждать пересечения гистограммы с сигнальной линией и затем открываться в соответствующую сторону. Чтобы дать статистическую оценку такому входу мы должны знать минимальное и максимальное достижимое значение прибыли/убытка на следующих барах после появившегося сигнала. В результате составим график зависимости между тейкпрофитом, стоплосом и вероятностью их срабатывания.
- или мы можем поставить задачу другого типа: как будет соотноситься максимум и минимум цены в течение последующих 5 баров после пересечения Стохастиком линии 80 вниз. Результат – статистическое обоснование смены тенденции и определение вероятности взятия прибыли после такого сигнала.
- или выяснить на сколько пунктов и в какую сторону изменяется цена после трех подряд идущих бычьих (медвежьих) баров (https://www.mql5.com/ru/code/7262). Результат – определение вероятности направления движения цены после таких баров.
- или узнать поведение цены относительно первого значения (00:00) внутридневной (Н1) 20-периодной скользящей средней. Попытаться найти зависимость между расположением МА и направлением движения цены. Выяснить достижимость профита или возможные убытки.
- также хотим обратить внимание на принципиальную возможность анализа японских свечей. Например, ищем разворотную модель и анализируем дальнейшее движение цены. Результат – подтверждение и выяснение вероятности получения прибыли на некоторой модели разворота.
В общем, как и говорилось, подходов к анализу может быть огромное количество. Но в отличие от экспертов, мы можем видеть работу не только с четко заложенными условиями входа и выхода, а и более широкую картину.
Результаты таких статоценок позволяют оптимизировать торговую систему быстрее и гибче!


Тяжело в учении – легко в бою

Для самого простого примера мы решили выбрать анализ японских свеч и на примере количественно оценить одну из моделей разворота. Тем более, что этот вопрос регулярно поднимается на форумах: https://www.mql5.com/ru/forum/100493, https://www.mql5.com/ru/forum/107681, https://www.mql5.com/ru/forum/102975 и другие.
Как гласят авторитетные источники («Кому светят японские свечи?» под ред. В.И. Сафина или «Японские свечи: графический анализ финансовых рынков» автор Нисон Стив) существует 15 основных моделей разворота. Мы решили остановиться на одной из популярных – молот.

Для справки. Молот (белая или черная свеча). Характеризуется тем, что ее тело находится в верхней части бара, верхняя тень очень короткая или отсутствует, нижняя тень в два раза длиннее тела. Появление этой свечи при нисходящей тенденции – сигнал того, что господство медведей на рынке подходит к концу.

При появлении такой свечи мы должны ожидать роста цены. Поэтому, чтобы количественно оценить правдивость такого предположения, соберем следующую информацию:
- максимальную и минимальную цену в течение последующих Z баров
- возможный убыток L при зафиксированном тейкпрофите N пунктов, для нахождения оптимального стоплоса.
- возможная прибыль N при зафиксированном стоплосе L пунктов, для нахождения оптимального тейкпрофита.

Результаты статанализа
Выборка выполнялась на парах GBPUSD, EURUSD, GBPJPY для H1 и M15.
На рисунке 4 изображено количество распределений значений достижимых экстремальных цен на 10 последующих барах после появления «молота» в GBPUSD.

Как видим, в положительную область идет небольшое смещение, но, к сожалению, такое, которое не позволяет со 100% уверенностью говорить о приоритетном направлении на покупку после появления «молота»!


Результаты второго и третьего пункта анализа выглядят более оптимистично. Нам все-таки удалось найти наилучшее соотношение между тейкпрофитом и стоплосом. После появления «молота» производился поиск наименьшего и наибольшего значения свечи. Причем так как «молот» подразумевает открытие позиции на покупку, то приоритетным было нахождение минимума цены (убытка), а уж затем максимума. Полный код скрипта !Bar2Csv.mq4 вы можете найти внизу статьи.

Главное следствие, которое видно из рисунка 5 то, что реакция рынка на появление такой свечи на графиках Н1 явно слабое. И нисходящая тенденция, в которой появляется «молот», все же сохраняет свое первоначальное движение.

Теперь, когда мы определились с оптимальными параметрами выхода можно написать примитивнейший советник и проверить полученную оптимизацию в тестере.

Как видно, полученная прибыль оказалась даже больше прогнозируемой на 700 пунктов. Это связано с тем, что мы приоритетным выбрали первоочередное определение возможного убытка. А на тестере часть убыточных позиций вывелись в плюс.
Для 15-минутного периода вид зависимости стоплос/тейкпрофит осталась такой же. Единственное, количество таких найденных «молотов» в 2,5 раза больше, а оптимальные параметры: тейкпрофит = 150, стоплос = 65, прогнозируемая прибыль 2305 пт.
А это работа советника для М15. Как видим прибыль также больше прогнозируемой.

Для других валютных пар «молот» не оказался «кузнецом счастья». Для EURUSD (H1) вообще не было прибыльных проходов. Для GBPJPY сигналы «молота» были положительными только после 2006 года (анализ с 2004). Хотя в целом потом пара GBPJPY дала прибыль большую, чем GBPUSD.


Главный шаг Вашего понимания - Систематизация

Теперь давайте обобщим нашу задачу о прогнозировании поведения цены относительно любого набора индикативных величин (различные индикаторы, их комбинации или те же «японские» модели разворота).
Мы не будем рассматривать изощренные методы открытия позиций (хеджи, усреднения, гридерство) – это тема для следующих исследователей. А остановимся на простой торговле с фиксированными стоплосом и тейкпрофитом.

Аксиома 1. Для КАЖДОГО бара существует однозначный график достижимости максимальной и минимальной цены.

На рисунке 6 зеленая линия – максимально достигнутая цена для бара за 20 ноября 2007 года (EURUSD). Красная – минимальная цена. Как видно эти две лини постоянно удаляются друг от друга по мере фиксирования новых экстремумов.

Математически можно обозначить P(t) - зеленая линия, L(t) - красная линия, где t – номер бара от начального (в сторону возрастания времени).
Тогда для фиксированного тейкпрофита (TP) и стоплоса (SL) можно записать условие достижимости тейкпрофита tP<tL (при условии входа на покупку). А это значит, что P(tP)=TP, L(tP)<SL (в момент tP значение тейкпрофита уже достигли, а стоплоса – еще нет).


Аксиома 2. Анализ ЛЮБОГО индикативного сигнала сводится к количественной оценке выполнения условия tP<tL. Или, говоря по-другому, единственное и достаточное условие для успешной торговли есть отсеивание тех баров, для которых это условие не выполняется.

Таким образом, мы приходим к самому главному выводу - анализ рынка должен происходить не от сигналов индикатора к результату прогноза цены, а от нужной цены к сбору показаний индикатора.

То есть не нужно часами полировать монитор, чтоб понять на каких крутых виражах индикатора нам следует покупать или продавать. А наоборот – проверьте индикатор на устойчивость «его взглядов» - определите как часто вход по тому или иному показанию приводит к положительному результату.
Допустим, мы зафиксировали тейкпрофит (TP) и стоплос (SL). Значит, для каждого бара i мы имеем значения tP и tL. Выбираем только те бары, на которых выполняется условие tP<tL и создаем первый массив – М1. Этот массив для каждой валютной пары остается ПОСТОЯННЫМ независимо от исследуемых индикаторов. Он является КОНСТАНТОЙ валютной пары.
Далее определяем второй массив баров М2 – на которых входим по сигналам индикатора. И теперь, находя общие бары из массива М1 и М2, можем рассчитать исход торговли для любого набора индикаторов. Примечание: в принципе эту операцию можно проделать и для таких методов торговли как мартингейл или усреднение.

В качестве «бонуса» к статье выкладываем – индикатор-эксперт. Для быстрого теста по истории (закрытых баров) Вашей сигнальной системы с тейкпрофитом (TP) и стоплосом (SL). Принцип действия очень прост:
Проход по массиву М2 и подсчет прибыльных и убыточных баров из массива М1.«ИндоЭксперт» на графике обозначает бары, вход на которых был прибыльным, а на каких убыточным и в комментарии выводит полученную прибыль или убыток. Код обильно приправлен комментариями, поэтому с ним будет несложно разобраться даже новичку по MQL. Благодаря этому индикатору наверно любой новичок избавит себя от навязчивых идей просить кого-либо «закодить эту супер прибыльную идею», а выяснит все сам. Берем внизу статьи !IndEx.mq4.
Еще раз повторите, и вникните в суть аксиом и главный вывод.


И опыт - сын ошибок трейда

На практике массив М2 не будет полностью покрывать все удачные входы М1, а тем более будет захватывать еще не мало убыточных. Поэтому, если мы не хотим терять желанные пункты, то нам придется пересмотреть интерпретацию используемого индикатора и расширить/сузить его сигналы.

Но что делать, если эти искомые «сигналы» при визуальном анализе вообще неопределимы? В таком случае мы должны в соответствии со всеми элементами М1 собрать показания индикатора и классифицировать их. (Не хотим проводить аналогию с нейросетями, но нечто подобное происходит и с ними, они тоже занимаются сбором и анализом статистики «затачивая» веса на лучший результат. Поэтому мы считаем, что статанализ является достойной альтернативой). Количество показаний индикатора должно быть достаточно велико, следовательно, все опыты желательно проводить на графиках с большим числом баров истории (не менее 100 000).

Варьируя параметрами расчета индикатора (при фиксированном TP и SL), будем иметь N-мерное пространство графика изменения депозита (где N – число параметров всех сигналов индикаторов).
Например, вариационными параметрами в «молоте» есть не только соотношения между графическими характеристиками бара – тени и тела – коэффициенты отношения верхней тени к телу и нижней тени к телу свечи. По определению «молот» находится в медвежьем тренде, а это значит, что для его идентификации нужно еще как минимум два предыдущих бара. Как вы помните, в первом примере мы закрепили соотношения между тенями и телом и определили тренд как угол наклона MA5. В результате получили «точку» на графике. Но чтоб увидеть весь спектр прогнозирования цены, нам следует дать полную свободу этим соотношениям. И возможно мы получим отличную устойчивость системы и стабильную прибыль с большой вероятностью.


Эксперимент мы решили провести со всем известными подопытными - машками(скользящими средними - МА). План исследования таков:
1. Для каждого бара i рассчитаем веер, состоящий из N скользящих средних.
2. Проходя по истории от начала до исследуемого бара, ищем идентичные веера и сохраняем их номера баров.
3. Проходя по ТП и СЛ в некотором диапазоне, подсчитываем количество прибыльных/убыточных выбранных баров. Определяем сумму прибыли/убытка, полученную в результате входов.
4. При положительном расчете суммы записываем найденную конфигурацию веера как такую, что дает, вероятно, положительный результат входа в рынок. И обязательно рассчитываем результат входа по исследуемому бару i.
5. Далее можно производить разнообразные исследования с полученной таблицей.

Тем, кому интересен сам код – смотрим его внизу статьи OptimMA.mq4. А здесь находятся непосредственно детальный отчет о выполненном исследовании.

1. Вид таблицы полученных данных, которые дальше исследовался был следующим:

  • Бар – номер анализируемого бара
  • Время – время анализируемого бара
  • Вееров – сколько всего найдено идентичных вееров
  • TP – размер тейкпрофита в пунктах
  • nTP – количество взятых тейкпрофитов среди всех найденных идентичных вееров
  • SL – размер стоплоса в пунктах
  • nSL – количество взятых стоплосов среди всех найденных идентичных вееров
  • Прибыль – сумма всех прибылей и убытков идентичных вееров
  • Ожидание – отношение nTP / (nTP+nSL)
  • Профитный – является ли исследуемый бар профитным при входе на нем в рынок с TP и SL.
  • ПрибыльБара – полученная прибыль/убыток исследуемого бара в результате входа в рынок на нем с TP и SL.


2. Ограничение выборки.
Мы сразу решили на первом этапе отсеять бары, которые не удовлетворяют некоторым условиям.

  • - Вееров>10. Ситуация такова, что есть бары, веера которых практически уникальны и встречаются на чарте только несколько раз (а есть и вообще которые не повторяются ни разу). Хотя прибыль на них берется, мы решили не входить по ним по причине скудности исторических данных.
  • - Ожидание>80%. Это должно привести к поднятию общей прибыльности входов. В дальнейшем анализе было обнаружено, что ожидание равное 100% (когда отсутствуют убыточные входы на протяжении истории) тоже нежелательно, так как параметр «Профитный» в этой ситуации чаще отрицательно.
  • - Прибыль>0.


3. Анализ.
Анализ таблицы проводился по следующим графикам:
а) зависимость ПрибыльБара от nTP в разрезе «Профитный»
б) зависимость ПрибыльБара от nSL в разрезе «Профитный»
в) зависимость ПрибыльБара от Ожидание в разрезе «Профитный»
Все графики строились в вариантах по общей сумме полученной прибыли и по количеству баров. Также для них были построены нормированные графики.

4. Отчет
Проанализирован график М5 для GBPUSD для 125 000 баров истории (434 дня).



Диапазон TP и SL20..120 пт
Число скользящих средних в веере40
Шаг веера3 периода
Найдено уникальных баров, удовлетворяющих условиям1153
Найдено всего подходящих условий48259
Прибыльных сделок991
Убыточных391
Ожидание 71,71%
Получено убытка1 172 705 пт
Получено прибыли1 571 420 пт
Итого прибыли398715


График 1. Зависимость суммы прибыли (красный) /убытка(синий) от nTP.


График 2. Отношение сумм прибыли и убытка в зависимости от nTP. Значения <1 говорят о прибыли.


Как видно из графика, для nTP=24, 42, 44 убыток оказался больше чем прибыль. Для всех остальных случаях он удерживался в районе 0,6.


График 3. Нормирование суммы прибыли. Значение 50% - равность прибыли (красный) и убытка (синий).



Не менее интересны и остальные зависимости, которые вы сможете посмотреть в таблице GBPUSD_5_fan.xls

Как уже говорилось это всего лишь один вариант в бесчисленном море возможностей статанализа, так что дерзайте. Успехов вам в начинании и больших профитов.


Внимание! Прежде чем переносить скрипт или индикатор на график настоятельно рекомендуем ознакомиться с принципом вычислений. Так как выполняется обработка большого числа данных, то возможна приостановка работы терминала на несколько секунд.

P. S.
Если кто желает поделиться своими наработками и/или высказать критические замечания, то желательно создать ветку на форуме.

Прикрепленные файлы |
fIndoExp.mq4 (6.22 KB)
Bar2Csv.mq4 (2.27 KB)
files.zip (1701.43 KB)
OptimMA.mq4 (10.75 KB)
Последние комментарии | Перейти к обсуждению на форуме трейдеров (31)
azik
azik | 6 сент. 2008 в 19:59

я, наверное, опоздал к беседе. И я не профессионал. Мне просто хотелось понять, возможно с помощью вашей статьи или прикрепленных данных определить, например, время, когда та или иная валюта вообще становится более активна. Не важно, в каком направлении. Просто активна. Если да, то напишите, пожалуйста, как это сделать. Или может есть какой-то другой способ. Мне это, к сожалению, нужно, и я не могу решить этот вопрос. Мне надо определить статистически время ативности валюты, не направление и точку входа, а время входа.

с уважением, Азер.

Alkor135
Alkor135 | 26 февр. 2009 в 17:52

Хорошая статья. Особенно подход необычен.

Что интересно, функция IsProfitFan, зачем там вставлена? Раз стоит значит что-то делала.

Денис Орлов
Денис Орлов | 10 дек. 2009 в 23:41

Спасибо за статью, хоть и давно это было.

обнаружил неточность в коде !IndoExp.mq4

// 3. Блок сравнения массивов М1 и М2. Вывод результатов в комментарии
//**********************************************************************************
....
if (M2[i]==1.0 && BuyTP[i-1]==1.0) nBuy++;//число совпавших профитных баров и сигналов на покупку
if (M2[i]==-1.0 && SellTP[i-1]==-1.0) nSell++;//число совпавших профитных баров и сигналов на продажу
if (M2[i]!=0.0 && (BuySL[i-1]==1.0 || SellSL[i-1]==-1.0)) N++;//число полученных убыточных баров 

последняя строка сработает если M2[i]==1.0 и SellSL[i-1]==-1.0 (и наоборот)

т.е. сигнал на покупку и убыток от продажи, а зачем продавать если сигнал на покупку? )))

надо расписать это условие

if (  (M2[i]>0 && BuySL[i-1]==1.0) || (M2[i]<0 && SellSL[i-1]==-1.0) ) N++;//число полученных убыточных баров 

Alkor135
Alkor135 | 15 окт. 2010 в 11:48

Жаль, что так никто и не создал ветку на форуме. А ведь обсудить есть что.

Интересный факт, если строку 96 заменить на: op=(High[i]+Low[i])/2.0;

а строку 98 заменить на: Ma.Sub[0][i]=op-Ma[0];

то результат получается намного скромнее.

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

Alkor135
Alkor135 | 15 окт. 2010 в 14:33

Попробовал без МА с мелкими периодами, и получил результат на 5 файлов (4 файла на 4Мб и 1 на 2Мб).

Вопрос в применении полученных результатов. Как бы из этого советника сделать. Уж больно долго весь анализ происходит.

Записки дилетанта. ZigZag… Записки дилетанта. ZigZag…
Наверняка каждого начинающего трейдера, впервые увидевшего “загадочную” ломаную, посещала “шальная” мысль торговать вблизи экстремумов. Ведь это так “просто”. Вот максимум. А здесь был минимум. Красивая картинка на истории. А что на деле? Луч нарисовался. Казалось бы, вот она - вершина. Пора продавать. Сейчас пойдем вниз. Но - нет. Цена по-прежнему предательски идет вверх. М-да! Ерунда, а не индикатор. На помойку его!
Show Must Go On... или очередное возвращение к ZigZag'у Show Must Go On... или очередное возвращение к ZigZag'у
Об одном очевидном и, одновременно, нестандартном методе построения ZigZag'а и о том, что из этого получилось - индикаторе Мультифреймовый Фрактальный ZigZag, отображающем на одном, рабочем, таймфрейме (ТФ) ZigZag'и, построенные на трех старших. В свою очередь, величины старших ТФ могут быть нестандартными, в диапазоне от M5 до MN1.
Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Часть 6) Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота (Часть 6)
В этой статье автор предлагает способы улучшения торговых систем, представленных в его предыдущих статьях. Статья будет интересной для трейдеров, уже имеющих опыт в написании экспертов.
Интеграция MetaTrader 4  с MS SQL-сервером Интеграция MetaTrader 4 с MS SQL-сервером
В статье показан пример интеграции клиентского терминала MetaTrader 4 и сервером MS SQL посредством использования dll. Приложены как исходные коды на С++ и MQL4, так и готовый скомпилированный проект Visual C++ 6.0 SP5.