воскресенье, 1 февраля 2015 г.

Как робот может помочь трейдеру. Часть 1 - Подключение к серверу и работа с торговым счетом.

Всем привет!
Давайте посмотрим, какие действия может производить трейдер в форекс-терминале Metatrader и какие из них терминал посредством роботов (экспертов), индикаторов и скриптов может делать автоматически.

В этой статье, точнее в серии статей, я буду упоминать имена различных функций встроенного в Metatrader языка программирования MQL версии 4. Подробности по каждой функции можно получить в Help-е редактора кода MetaEditor, который вызывается из Метатрейдера нажатием F4 (или через меню Сервис > Редактор MQL). Примеры реального использования будем разбирать в будущих статьях. Набор функций, перечисленных здесь определяется соответствием теме и моим личным опытом их использования. Это я к тому, что полный набор функций гораздо обширнее - постепенно сами его освоите, если станете всерьез заниматься программированием на MQL.
Предупреждая вопросы про MQL версии 5, скажу, что пятую версию Метатрейдера не использую, почти ничего про нее не знаю, но предполагаю, что набор функций в MQL4 и MQL5 должен плюс/минус совпадать. В любом случае, кто знаком с одной версией, с другой разберется легко.

Пойдем по основным группам действий трейдера в терминале. Всего этих групп будет приблизительно 10, в этой статье рассмотрим первые две. Итак, начинаем:

  1. Подключиться к серверу брокера и контролировать наличие коннекта (соединения) терминала с сервером.

Ручное действие
Возможность его автоматизировать
Подключение к серверу
Это исключительно ручное действие, роботам не позволено самопроизвольно производить подключение, да это и не требуется.
Проверка статуса соединения с сервером
Для выполнения такой проверки терминал может использовать функцию IsConnected.

Дополнительные функции:

IsDemo - через нее терминал может определить является ли текущий счет демонстрационным или реальным.

IsExpertEnabled - говорит разрешена ли автоматическая торговля на текущем счете. Да, брокер имеет возможность взять и отключить вам такую возможность. Прикольно, да? Говорят, что так брокеры поступают, например, со скальперами, генерирующими интенсивный поток ордеров. Сам никогда на это не попадал, подтвердить не могу.

IsTradeAllowed и IsTradeContextBusy - обе функции с небольшими отличиями сообщают терминалу готов ли брокер принимать торговые приказы. Да, бывает так, что и соединение с сервером есть, и автоторговля разрешена, а торговый канал (trade context) по какой-то причине закрыт. Часто так бывает при высокой волатильности на рынке и большом потоке ордеров, например, после выхода важных новостей.
Этот момент с одной стороны было бы неплохо учитывать при выборе брокера, с другой - заранее проверить устойчивость инфраструктуры брокера непросто, точнее время-ёмко. Но это хорошая тема для отдельной статьи, подумаю.


  1. Просмотреть баланс и другие параметры своего счета.

Ручное действие
Возможность его автоматизировать
Узнать баланс счета
AccountBalance
Узнать валюту счета
AccountCurrency
Узнать размер кредитного плеча
AccountLeverage

Что такое кредитное плечо?
Представим ситуацию, когда у трейдера дефицит собственных средств, но торговать страсть как хочется. Причем не просто торговать, а с расчетом на приличную прибыль.

Общее правило такое - чем больше вы вкладываете в сделку собственных средств, тем на большую прибыль можете рассчитывать.

И что теперь делать? Средств то нет, точнее мало. Вот тут на помощь приходит сияющий брокер и говорит: “А давай, дорогой трейдер, будем сделки в складчину делать? Ты из своих кровных даешь копеечку, а я к ним добавляю, например, 9 копеек за свой счет, и ты сможешь совершить сделку на целых 10 копеек, следовательно и заработать больше. Из прибыли обратно отдашь мне 9 копеек, а остальное, так и быть, забирай себе. Давай, соглашайся!”. Ну и подмигивает так лукаво.
Трейдер хоть и чувствует подвох, но соглашается, по сути берет кредит. Кредит с плечом 1 к 10 (обозначается 1:10).
Таким образом, кредитное плечо - это соотношение собственных средств трейдера к общей сумме, на которую была произведена сделка.

Так в чем подвох?
Все действительно хорошо до тех пор, пока цена идет в нужную вам сторону, т.е. ваша позиция уходит в плюс. Получается, что, вкладывая немножко, можно заработать множко. Но на сколько увеличиваются ваши шансы получить большую прибыль, на столько же увеличиваются и шансы схлопотать большой убыток.
Кстати, плечо 1:10 - не самое популярное. Гораздо чаще трейдеров разводят на 1:100, 1:500, а то и все 1:1000.

Размер кредитного плеча трейдер выбирает при открытии счета. Сам факт применения плеча не влечет за собой обязательный “слив” счета, он просто позволяет трейдеру “мечтать о большем”. Вот трейдер берет и заходит в сделку огромным лотом (размер сделки). А цена берет и утаскивает позицию в минус (а еще, помните, бывают “шпильки”?) и привет депозиту.

Дело в том, что брокеры очень удобно устроились, они всегда “в плюсе” вне зависимости от того, была сделка клиента прибыльной или убыточной. Свою комиссию за “услуги” они всегда заберут. Более того, трейдер может рисковать только в пределах суммы своего депозита, ниже нуля брокер просто не позволит ему уйти - брокер в этом случае принудительно закроет убыточную позицию. А скорость достижения нуля увеличивается пропорционально размеру плеча и объему сделки.

Итак, если вы знаете, что делаете, и уверены в успехе сделки, то вполне можете использовать большие плечи. Но на рынке гарантий никто не дает, так что, если вы уверены не очень, то минимизируйте плечо. В идеале торгуйте только на “свои”, т.е. с плечом 1:1. Конечно, если размер собственных средств позволит вам при этом соблюсти приемлемый уровень риска. А если и тут уверенности нет, то лучше тогда не торговать вообще, а подкопить на больший депозит.
Узнать номер счета
AccountNumber

Для управления риском дополнительно к вышеозначенным функциям рекомендую также ознакомиться с вот этими:
  • AccountFreeMargin
  • AccountFreeMarginCheck
  • AccountFreeMarginMode
  • AccountMargin
  • AccountStopoutLevel
  • AccountStopoutMode

Как можно увидеть на примере первой части обзора функций, терминал вполне себе может заменить ручную работу автоматикой.
Пока! Увидимся во второй части.


С уважением,
Игорь Шепелев

2 комментария: