Суббота, 20.04.2024
Эксперты и сигналы Форекс
Меню сайта
Форма входа

Независимый форум трейдеров






 





Международное объединение Форекс трейдеров

massiveptr.com

Форекс каталог

Советник FxTrade 2

Принцип работы


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

FxTrade 2 - система, основанная на скальпинге. Необходимо сразу оговориться, что данная система относится, скорее, к "щадящему скальпингу", т.е. не оперирует целями, размер которых сопоставим со спрэдом. Такие системы очень быстро прогорают после первых же двух-трех стоп-приказов.

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

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



Рис. 1. Горизонтальные каналы - зоны переплетения средних скользящих линий.

Используемые параметры

Переплетение средних скользящих линий не обязательно должно включать несколько пересечений. Под переплетением можно понимать очень близкое расположение линий. Определение степени сближения линий перекладывается на пользователя, который при помощи специального параметра FlatPips советника может указать максимальную величину расхождения средних в пунктах. Если линии находятся на расстоянии, большем чем FlatPips пунктов, то такой участок не относится к флэту. Для фиксации флэта требуется, чтобы состояние переплетения просуществовало некоторое время. Этим фактом будет подтверждено вхождение цены в горизонтальный канал. Очевидно, что минимальный участок флэта - две свечи, но это действительно мало. На практике следует пользоваться значением 3 и более баров. Регулировать продолжительность участка утверждения канала пользователь может при помощи другого параметра - FlatDuration. На рис. 1 в качестве участка утверждения канала взято три бара.

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

На практике границы канала представляют собой не фиксированные уровни, а некоторую зону, серединой которой можно назвать границу канала. Поэтому необходимо вводить допуск (или погрешность) на достижение уровней стоп-приказа и профита. Параметр, указывающий погрешность для расчета уровня стоп-приказа в советнике FxTrade 2, называется StopMistake. Он измеряется в процентах от ширины канала. Для расчета стоп-приказа длинной сделки погрешность будет вычитаться из уровня нижней границы канала, а для расчета стоп-приказа короткой сделки погрешность будет прибавляться к уровню верхней границы канала. Погрешность, которую необходимо принимать во внимание при расчете уровня профита сделок, указывается при помощи параметра TakeProfitMistake. Указание производится в процентах от ширины канала и может принимать как положительные, так и отрицательные значения. Для длинных сделок погрешность профита прибавляется к верхней границе канала, а для коротких - к нижней.

С помощью оставшихся четыре параметра - FastPeriod, SlowPeriod, MAMethod и MAPrice пользователь может управлять скользящими средними линиями, используемыми для фиксации флэтового состояния рынка.

Автоматическое определение флэта и его границ

Задачи автоматического определение флэта и его границ решаются в небольшой функции FlatDetect,

Задачей первого блока функции является определение количества баров, на которых разность между быстрой и медленной средними скользящими линиями меньше или равна допустимому отклонению FlatPoints. Подсчет начинается с последнего сформированного бара - бара №1. Если расхождение линий составляет значение, большее чем FlatPoints, то цикл мгновенно прерывается.

Второй блок производит анализ количества баров, на которых зафиксирован флэт. Переменная цикла i всегда показывает значение, которое на единицу превышает реальное количество баров флэта. Поэтому флэт считается зафиксированным, если значение переменной i больше или равно значению FlatDuration, к которому прибавлена единица. Признаком фиксации флэта для других функций программы является состояние переменной Signal, которая в данном эксперте может принимать только два значения - true и false. Состояние true сигнализирует о наличии флэта необходимой протяженности, а false - об отсутствии оного. Вместе с сигнализацией нахождения участка флэта, рассчитываются границы полученного горизонтального канала. В переменную Maximum записывается максимальное значение цены на найденном участке, а в переменную Minimum - минимальное.

Если протяженность участка флэта составила меньшее количество баров, чем значение параметра FlatDuration, то переменная Signal принимает значение false, а переменные Maximum и Minimum не обновляются.

Учет собственных ордеров

Для учета собственных ордеров эксперт использует функцию с привычным названием FindOrders.

Функция имеет непривычно компактный вид. Все дело в том, что рассматриваемый эксперт оперирует лишь одним одновременно существующим ордером. Работа с ордерами упрощается еще по той причине, что во время существования сделки никакие другие операции не производятся. Сделка должна быть закрыта по стоп-приказу или профиту, принудительное закрытие не используется. Поэтому учет собственных ордеров заключается лишь в регистрации факта наличия ордера - есть или нет.

Именно таким образом работает функция FindOrders. Производится поиск по текущему списку ордеров. Если в этом списке обнаруживается ордер, принадлежащий текущему торговому инструменту с магиком, равным значению настроечного параметра эксперта MagicNumber, то функция возвращает результат true, т.е. ордер существует. Если свой ордер так и не был обнаружен, то возвращаемый результат - false, т.е. ордера нет.

Открытие сделки

Торговая функция Trade также отличается компактностью, если сравнивать ее с аналогичными торговыми функциями других экспертов:

Открытие сделки производится в четвертом блоке функции и только в том случае, если переменная type имеет значение, большее или равное нулю. Предшествующие блоки подготавливают данные о типе сделки, цене открытия (price), уровне стоп-приказа (sl) и уровне профита (tp).

В первом блоке производится расчет уровня середины канала, получаются текущие цены Bid и Ask, а также вычисляются значения погрешностей уровня стопа и профита, выраженные в ценовой категории.

Второй блок исполняется, если цена Bid находится ниже, чем уровень середины канала. В этом случае переменная type принимает значение OP_BUY (длинная сделка), переменная price - значение Ask (длинные открываются по Ask). Стоп-приказ длинной сделки располагается ниже уровня Minimum на величину slmistake, а профит - выше уровня Maximum на величину tpmistake. Необходимо помнить, что переменная tpmistake может принимать отрицательные значения. Поэтому уровень профита также может находиться ниже уровня Maximum. Последним аккордом блока 2 является проверка размера профита. Если предполагаемая прибыль меньше либо равна минимальному уровню стопов, то сделка не открывается, как не имеющая смысла. В таком случае переменной type возвращается значение -1.

Третий блок аналогичен второму. Он исполняется, если цена Bid располагается в верхней части канала. Переменная type принимает значение OP_SELL (короткая сделка), переменная price - значение Bid (короткие открываются по  цене Bid). Уровень стоп-приказа устанавливается выше уровня верхней границы канала на величину спрэда и погрешности slmistake. Уровень профита устанавливается ниже (в некоторых случаях - выше) нижней границы канала на величину tpmistake. К полученному значению прибавляется спрэд, т.к. короткие сделки закрываются по цене Ask.

Управление вызовом перечисленных функций производится в теле функции start:

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

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

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

Четвертый блок определяет наличие флэта. Переменная LastSignal следит за тем, чтобы на одном и том же баре вызов функции FlatDetect не был произведен повторно. Такое может произойти в том случае, если эксперту на протяжении нескольких попыток не удается произвести торговую операцию, что приводит к нескольким выполнениям блоков 3-5 на одной и той же свече.

Пятый блок исполняется, если переменная Signal содержит значение true (зафиксирован флэт достаточной протяженности) и нет открытых экспертом сделок (функция FindOrders вернула false). При таких обстоятельствах производится вызов функции Trade, которая совершает попытку открытия сделки. Если попытка оказывается неудачной, то функция start на текущем тике завершается. В итоге значение переменной LastBar не обновляется, что приводит к повторному выполнению блоков 3-5  в момент прихода новой котировки.

Тестирование советника

Тестирование советника FxTrade 2 отличается от тестирования других экспертов только таймфреймом. Вместо привычного Н1 в данном случае следует использовать М15. Параметры эксперта, используемые по умолчанию для всех тестируемых валютных пар, были следующими: Lots = 0.1, MAMethod = 1, MAPrice = 5, MagicNumber = 11259. Остальные параметры были индивидуально подобраны для каждой валютной пары. Результаты тестирования показаны на рис. 2-5.



 Рис. 2. Результаты тестирования эксперта на валютной паре EURUSD.

EURUSD. Значения настроечных параметров: FastPeriod = 13, SlowPeriod = 17, FlatDuration = 3, FlatPoints = 2, StopMistake = 70, TakeProfitMistake = 80. Кривая баланса близка к идеалу. Портит ее только начальный участок в 275 сделок. Остальные 1 000 сделок показывают ровный и стабильный рост баланса. Также стоит отметить общее количество сделок - 1 295. В этом случае о случайности полученного результата говорить не приходится, выборка достаточно глубокая. Чистая прибыль составила 6 047 долларов против максимальной просадки 800 долларов. Фактор восстановления 7.56, что в совокупности с видом кривой баланса и количеством сделок является прекрасным результатом.



 Рис. 3. Результаты тестирования эксперта на валютной паре USDCHF.

USDCHF
. Значения настроечных параметров: FastPeriod = 12, SlowPeriod = 17, FlatDuration = 5, FlatPoints = 3, StopMistake = 70, TakeProfitMistake = 80. Вид кривой баланса не такой уверенный, как у евро, но все же радует отсутствием глубоких провалов и ростом на заключительной стадии тестирования. Чистая прибыль 3 241 доллар, максимальная просадка 867 долларов. Фактор восстановления 3.74. Для франка это хороший результат.



Рис. 4. Результаты тестирования эксперта на валютной паре GBPUSD.

GBPUSD. Значения настроечных параметров: FastPeriod = 14, SlowPeriod = 17, FlatDuration = 10, FlatPoints = 2, StopMistake = 60, TakeProfitMistake = 90. Кривая баланса очень похожа на предыдущую рассмотренную кривую. Здесь лишь концовка не такая оптимистичная. Чистая прибыль 4 510 долларов, максимальная просадка 901 доллар. Фактор восстановления 5.01. Зная возможности фунта, нужно сказать: "ты можешь лучше".



Рис. 5. Результаты тестирования эксперта на валютной паре USDJPY.

USDJPY. Значения настроечных параметров: FastPeriod = 14, SlowPeriod = 27, FlatDuration = 9, FlatPoints = 3, StopMistake = 30, TakeProfitMistake = 90. Кривая баланса вновь имеет очень неплохой вид, но все портит последний участок из 100 сделок, что говорит об угасании тенденции. Чистая прибыль 2 583 доллара, максимальная просадка 510 долларов. Фактор восстановления 5.06. Для йены результат неплохой, но с оглядкой на последние 100 сделок, не стоит ему особенно доверять.

Размер лота

У каждого свое видение безопасной и прибыльной торговли. Я предлагаю совершать сделки с лотом:

ЛОТ = ДЕПОЗИТ / 1000

Т.е. для Вашего депозита в 20 USD размер лота должен составлять не более 0,02 USD (я бы рекомендовал, пока освоитесь, разделить размер лота на 2).

Скачать Советник FxTrade 2 (настройки для четырех отмеченных валютных пар в прилагаемых set-файлах).
Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Рекомендую



Forex Форум MT5 | Форум трейдеров рынка Форекс

<a href="http://instaforex.com/ru/">Форекс портал</a>






Copyright MyCorp © 2024