Главная » Форекс » Форекс обучение » Автоматические торговые системы форекс.
{sort}

Автоматические торговые системы форекс.

2011 Мая 22 : | Просмотров: 958
       Сегодня абсолютно каждый может получить доступ к торговле на валютном рынке форекс и почувствовать себя трейдером. Такие слова как - заработок на рынке форекс, советники, стратегии - уже никого не пугают. Есть возможность работать как с небольшим капиталом, так и на бесплатных счетах. Вариантов и тактик торговли разработано не мало. Однако большинство трейдеров теряют деньги в конечном итоге.         Основная причина потери денег, вернее одна из них кроется в психологии. Человек боится держать позицию, или боится войти. К примеру. Обычно когда сделка идёт в минус, никто не закрывается, все ждут, а вдруг пойдёт куда надо. А она не пошла и трейдер потерял одну сделку. Однако когда прибыльная сделка, то ждать соотношение один к трём многим не под силу. С одной стороны охота взять плюс, хоть и не большой, а с другой стороны вдруг сделка развернётся и пойдёт в минус. И трейдер снимает прибыль, даже если она меньше потенциального риска.         Второй пример это торговля в канале. Всем известно, что на восходящем канале нужно покупать у линии поддержки, но когда цена к ней будет подходить, то свеча будет чёрная и создаётся впечатление, что линия пробьётся. Трейдер ждёт подтверждений и если входит, то по менее выгодной цене и с повышенными рисками.         Из описанного выше становится ясно, что при торговле желание заработать и страх перед потерей оказывают большое психологическое давление на трейдера. Этим можно объяснить тот факт, что на демонстративных счетах 60% трейдеров успешны, а на реальных только 5%.         Негативное влияние, которое оказывает на нас наша психика можно минимизировать, написав программу, которая будет выполнять то, что, выполняли мы, когда работали на демо счёте и перестали выполнять, перейдя на реальный. Идея такой программы не заменить трейдера. Ни одна программа не сможет заменить человека, а рынок является эмоциональным. Идея в том, что, проанализировав рынок, пока нет открытых сделок, трейдер делает вывод, где именно следует запустить программу, которая после запуска начнёт отслеживать состояние рынка и войдёт при выполнение каких то условий.         Далее подобные программы будем называть советниками. Советники пишутся на встроенном в МТ4 языке программирования. Они могут только подавать сигналы или им можно разрешить открывать и модифицировать ордера. В сети можно найти множество советников, платных и бесплатных, но я бы не рекомендовал их использовать. Или если советник делает примерно то, что бы Вы хотели чтоб он делал, перед его запуском следует изучить его алгоритм работы и параметры. Это нужно для того, чтобы при возникновение внештатных ситуаций Вы бы смогли его отключить и продолжить сопровождать уже открытые сделки самостоятельно.        Итак, мы разобрались, зачем нужны советники и какие у них могут быть преимущества. Главное не забывать, что нет такого советника, который бы торговал вместо Вас без Вашего участия. В противном случае, если бы это было возможно, то никто бы на бирже не проигрывал. Также следует осознавать, что деньги можно потерять как с советником, так и без него. Повторюсь, задача советника быстро и без эмоций совершать или модифицировать сделки так, как это необходимо трейдеру. Можно ходить за водой на речку, но гораздо приятнее открыть кран и получить её в необходимом объёме у себя дома.         Перед тем, как написать советник, нам нужно создать на листке бумаги алгоритм, который будет выполнять наш советник. Алгоритм это наша торговая система описанная пошагово на листочке. Всё должно быть чётко, так как придется вводить нашу ТС шаг за шагом в редакторе программ. Для примера рассмотрим простой советник, который, конечно же, не будет торговать успешно, но сейчас нам это не важно. Важен сам процесс. Торговая система будет простая. Если МА13 идёт вверх, то покупаем, если вниз, то продаём. Причём когда цена пройдёт уровень +30 пунктов мы переставим стоп в +5 пунктов. Первый шаг мы сделали. Описали алгоритм работы советника. В идеальном случае он рисуется структурно, но наша задача не удивить кого-то своими знаниями, а написать программу, которая будет работать.         Сейчас посмотрим, как войти в среду программирования и куда что писать. А потом вернёмся к написанию непосредственно кода. Для того чтобы начать программировать нужно, открыть терминал МТ4 и нажать на F4. После этого откроется окно. На панели инструментов как обычно выбираем «файл/создать новый». После этого откроется окно, в котором нужно указать тип файла. В нашем случае это «Эксперт». Нажимаете «Ок». В следующем окне достаточно ввести имя эксперта и подтвердить «Готово». Всё. Открылось окно и можно приступать к программированию. «Заготовка» под программу имеет вид:           Программировать следует следующим образом. Переменные следует объявлять после слова «#property link». А саму программу следует размещать между словами «int start()» и «return(0);». Дальше я напишу код и разберём что там и как. Для лучшего восприятия структуру программы соблюдать не будем. Если объявляем переменную то в начало, если пишем текст то после «start()» как описано выше. Сам по себе язык не сложный, задача статьи начать программировать. Информации и учебников в сети достаточно. Непонятные вопросы можно задавать на форумах.         Итак, условие для открытия ордера является направление мувинга. Для работы с мувингами есть соответствующая уже готовая функция «iMA», остаётся просто задать ей параметры.         iMA(инструмент,период,период для мувинга,сдвиг индикатора,метод усреднения,используемая цена,значение фенкции n баров назад)          Рассмотрим её подробнее. Первый параметр определяет, на какой валютной паре будет работать мувинг. Если поставить значение NULL  то мувинг будет работать на валютной паре, на которую установится советник. Следующий параметр это таймфрейм пары. Можно поставить «0» тогда будет использоваться текущий активный таймфрейм. Далее за ним идёт период для расчёта мувинга и сдвиг индикатора по отношению к графику. Следующие два параметра это метод усреднения и цена, которая будет использоваться. Ну и последний параметр используется для определения значение, какого бара мы хотим узнать. Вот такие не сложные параметры.         Для нашего советника понадобится ещё и оператор выбора «if». Используется он просто.         if (условие верно) {выполняется действие в скобках}.         Ну и естественно нужна функция для открытия сделки.         OrderSend(инструмент,операцияобъём,цена, отклонение, стоп,профит,коментарий,магическое число=0, срок истечения=0, цвет сделки).         Параметры понятные, нет смысла комментировать. Единственное это магическое число.  Используется тогда, когда работает несколько советников и если есть необходимость различать их, то тогда его и применяют. Теперь используя, описанные операторы и функции можно составить простой код нашего советника.  

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

 

      Основная причина потери денег, вернее одна из них кроется в психологии. Человек боится держать позицию, или боится войти. К примеру. Обычно когда сделка идёт в минус, никто не закрывается, все ждут, а вдруг пойдёт куда надо. А она не пошла и трейдер потерял одну сделку. Однако когда прибыльная сделка, то ждать соотношение один к трём многим не под силу. С одной стороны охота взять плюс, хоть и не большой, а с другой стороны вдруг сделка развернётся и пойдёт в минус. И трейдер снимает прибыль, даже если она меньше потенциального риска.

 

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

 

      Из описанного выше становится ясно, что при торговле желание заработать и страх перед потерей оказывают большое психологическое давление на трейдера. Этим можно объяснить тот факт, что на демонстративных счетах 60% трейдеров успешны, а на реальных только 5%.

 

      Негативное влияние, которое оказывает на нас наша психика можно минимизировать, написав программу, которая будет выполнять то, что, выполняли мы, когда работали на демо счёте и перестали выполнять, перейдя на реальный. Идея такой программы не заменить трейдера. Ни одна программа не сможет заменить человека, а рынок является эмоциональным. Идея в том, что, проанализировав рынок, пока нет открытых сделок, трейдер делает вывод, где именно следует запустить программу, которая после запуска начнёт отслеживать состояние рынка и войдёт при выполнение каких то условий.

 

      Далее подобные программы будем называть советниками. Советники пишутся на встроенном в МТ4 языке программирования. Они могут только подавать сигналы или им можно разрешить открывать и модифицировать ордера. В сети можно найти множество советников, платных и бесплатных, но я бы не рекомендовал их использовать. Или если советник делает примерно то, что бы Вы хотели чтоб он делал, перед его запуском следует изучить его алгоритм работы и параметры. Это нужно для того, чтобы при возникновение внештатных ситуаций Вы бы смогли его отключить и продолжить сопровождать уже открытые сделки самостоятельно.

 

     Итак, мы разобрались, зачем нужны советники и какие у них могут быть преимущества. Главное не забывать, что нет такого советника, который бы торговал вместо Вас без Вашего участия. В противном случае, если бы это было возможно, то никто бы на бирже не проигрывал. Также следует осознавать, что деньги можно потерять как с советником, так и без него. Повторюсь, задача советника быстро и без эмоций совершать или модифицировать сделки так, как это необходимо трейдеру. Можно ходить за водой на речку, но гораздо приятнее открыть кран и получить её в необходимом объёме у себя дома.

 

      Перед тем, как написать советник, нам нужно создать на листке бумаги алгоритм, который будет выполнять наш советник. Алгоритм это наша торговая система описанная пошагово на листочке. Всё должно быть чётко, так как придется вводить нашу ТС шаг за шагом в редакторе программ. Для примера рассмотрим простой советник, который, конечно же, не будет торговать успешно, но сейчас нам это не важно. Важен сам процесс. Торговая система будет простая. Если МА13 идёт вверх, то покупаем, если вниз, то продаём. Причём когда цена пройдёт уровень +30 пунктов мы переставим стоп в +5 пунктов. Первый шаг мы сделали. Описали алгоритм работы советника. В идеальном случае он рисуется структурно, но наша задача не удивить кого-то своими знаниями, а написать программу, которая будет работать.

 

      Сейчас посмотрим, как войти в среду программирования и куда что писать. А потом вернёмся к написанию непосредственно кода. Для того чтобы начать программировать нужно, открыть терминал МТ4 и нажать на F4. После этого откроется окно. На панели инструментов как обычно выбираем «файл/создать новый». После этого откроется окно, в котором нужно указать тип файла. В нашем случае это «Эксперт». Нажимаете «Ок». В следующем окне достаточно ввести имя эксперта и подтвердить «Готово». Всё. Открылось окно и можно приступать к программированию. «Заготовка» под программу имеет вид:

 

 

      Программировать следует следующим образом. Переменные следует объявлять после слова «#property link». А саму программу следует размещать между словами «int start()» и «return(0);». Дальше я напишу код и разберём что там и как. Для лучшего восприятия структуру программы соблюдать не будем. Если объявляем переменную то в начало, если пишем текст то после «start()» как описано выше. Сам по себе язык не сложный, задача статьи начать программировать. Информации и учебников в сети достаточно. Непонятные вопросы можно задавать на форумах.

 

      Итак, условие для открытия ордера является направление мувинга. Для работы с мувингами есть соответствующая уже готовая функция «iMA», остаётся просто задать ей параметры.

 

      iMA(инструмент,период,период для мувинга,сдвиг индикатора,метод усреднения,используемая цена,значение фенкции n баров назад)

 

       Рассмотрим её подробнее. Первый параметр определяет, на какой валютной паре будет работать мувинг. Если поставить значение NULL  то мувинг будет работать на валютной паре, на которую установится советник. Следующий параметр это таймфрейм пары. Можно поставить «0» тогда будет использоваться текущий активный таймфрейм. Далее за ним идёт период для расчёта мувинга и сдвиг индикатора по отношению к графику. Следующие два параметра это метод усреднения и цена, которая будет использоваться. Ну и последний параметр используется для определения значение, какого бара мы хотим узнать. Вот такие не сложные параметры.

 

      Для нашего советника понадобится ещё и оператор выбора «if». Используется он просто.

 

      if (условие верно) {выполняется действие в скобках}.

 

      Ну и естественно нужна функция для открытия сделки.

 

      OrderSend(инструмент,операцияобъём,цена, отклонение, стоп,профит,коментарий,магическое число=0, срок истечения=0, цвет сделки).

 

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

 

 

      Для того чтобы наш советник не открывал с каждым тиком новый ордер используем ещё одну функцию. Работает она просто. С теми параметрами, которые я вставил она выбирает первый открытый или отложенный ордер из списка, а если ордеров нету она принимает значение «-1». Сама функция простая и рассматривать её подробно нету смысла. Называется функция OrderSelect  и находится в начале программы.

 

      Давайте рассмотрим работу программы. В первой строке функция OrderSelect  присваивает переменной tiket значение, равное порядковому номеру первого в списке открытого ордера. Если открытых ордеров нету, то переменной присваивается значение равное «-1». Переменная объявлена в самом верху кода. Где именно описано в начале статьи. Такая ситуация происходит тогда, когда ордер ещё не открылся или уже закрылся по стопу или профиту. Следующие два оператора if непосредственно определяют, какую сделку открывать, на покупку или продажу. Но одним из условий является обязательное значение переменной tiket равное «-1». Если это не так, то и рассматривать остальные условия нет смысла.

 

      Если же ордеров нету и переменной tiket присвоено «-1» то проверяется второе условие, куда же направлен мувинг. Определить это очень просто. Если значение мувинга на последнем баре больше чем, например, на расстояние четырёх баров назад, то мы считаем что мувинг направлен вверх и открываем сделку на покупку по текущей цене. Если же текущее значение мувинга меньше чем четвёртое сзади, то мувинг направлен вниз, соответственно нужно продавать.

 

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

 

      Кроме таких простых логических замечаний, при написание и тестирование советника на торговле на демо счету начнутся проблемы с качеством котировок, в программе мы использовали просто текущую цену, а её следует привести к стандартному виду. Для этого есть своя функция. Есть проблема с тем, что сервер может не успеть ответить на запрос и обработать его и соответственно сделка не откроется. Также не стоит списывать со счетов и проскальзывание, благодаря которому ордер окажется не там где он должен быть, в некоторых стратегиях это может оказаться критичным. Есть и другие проблемы, но они все решаемые. Сам язык рассчитан не для программиста, а для трейдера.

 

      Итак, вот мы собственно и создали советник. Теперь необходимо его протестировать и пустить в работу. Для тестирования есть в терминале МТ4 специальная функция, которая называется «Тестер стратегий». Он годится для проверки логической части советника. Можно быстро проверить работоспособность алгоритма и посмотреть на результат работы в стандартной статистике. После того, как Вы настроите все параметры необходимо запустить его тестирование на демо счету. Может случиться так, что в тестере советник работает четко, а на счету не хочет. Обычно демо счета все позволяют торговать советниками, но если сделки не будут открываться вообще, то прежде чем лезть в код программы следует выяснить разрешает ли брокер запускать советник. Довольно часто запрет вешается на конкурсные счета.

 

      Вот в принципе и всё. В конце напомню, что не стоит оставлять советник без присмотра надолго. Умных советников нет. Все советники это Ваши мысли без эмоций. Если вдруг Вы поймёте, что советник работает как-то не так, то его следует выключить и вести торговлю без него.

 

 

Источник: youcapital.ru

Источник: youcapital.ru
Это интересно
Комментарии к статье
Вконтакте
Комментарии (0)
Информация
 
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.