Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Улучшеный комплект "Торговля в канале" - эксперт для MetaTrader 4

Просмотров:
12817
Рейтинг:
(13)
Опубликован:
2010.09.30 07:41
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

эксперт "ТОРГОВЫЙ КАНАЛ"

Автор:

alecask

V4.0

Последняя модернизация из некоммерческих.

Резюме.

Описание.

Состав комплекта:

• Эксперт TradeInChannel (советник для работы в направленном канале);


• Скрипт FlipEradeInChannel (для изменения направления торговли в канале);


• Скрипт Sound_On-Off (для включения-отключения звука советников, работающих во всех ТаймФреймах);

Предварительное описание.

Советник работает в Равноудалённом Канале или Канале Фибоначчи "от зоны открытия, до зоны закрытия ордеров". Ширина зон регулируется в настройках эксперта. Для того, чтобы поменять местами зону открытия с зоной закрытия предназначается скрипт FlipEradeInChannel. Для включения-отключения звуковых предупреждений служит скрипт Sound_On-Off. Для того, чтобы звуковые предупреждения имели место вам нужно создать (скачать, записать, взять готовые и переименовать) 4 звуковых файла в формате .wav:


OrderClose.wav, OrderBuyOpen.wav, OrderSellOpen.wav

и StopLoss.wav.


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


Эксперт запоминает свои текущие настройки, кроме режима ЭКСПЕРТ-ИНДИКАТОР и параметра ЗВУК.

Подробное описание.

Внешние и глобальные переменные.


Присоединив советника к таймфрейму и нарисовав канал с именем TradeChannel вы увидите примерно такую картинку:



Советник нарисует дополнительно 5 линий в дополнение к нарисованным по точкам 1, 2 и 3 линиям канала и текстовый блок, который можно сдвинуть в удобную для вас позицию на экране задав ненулевое значение параметру align.

Но сначала о режиме работы эксперта. Режим работы выбирается параметром expert. Если expert=true, то включается режим ЭКСПЕРТ; если expert=false - включается режим ИНДИКАТОР. Если Вы отключили MetaTrader или компьютер, то последнее значение режима остаётся на компьютере, а при входе - переписывается в параметры эксперта. Поэтому, отключая терминал, предварительно отключите на нём торговлю или просто удалите эксперта из рабочего таймфрейма иначе при входе можно "наловить лосей". Загруженный же вновь после удаления из окна эксперт загрузит значение режима по-умолчанию, то есть expert=false, загрузит по-умолчанию же переменную readpresets=true, в результате чего советник включится в режиме эксперта, загрузив при этом ваши последние (которые были вами записаны) предустановки всех остальных параметров, за исключением expert, readpresets и SoundOn. Первые два параметра будут по-умолчанию, третий - считается из голбальной переменной Sound, текущее значение которой можно узнать нажав клавишу F3 при работе MetaTrader. Если Sound=0 или не создана, звук выключен; если Sound=1 - включён.
При первом подключении, когда файл предустановок ещё не создан, эксперт создаст файл предустановок самостоятельно, записав в него те значения параметров, которые указаны в списке внешних переменных. Для того, чтобы установить свои параметры включите запись параметров, присвоив переменной readpresets значение false. Тогда, установленные в окне параметров значения подгружаемых переменных запишутся в файл предустановок. После записи ещё раз войдите в диалоговое окно установки параметров и отключите режим записи параметров (readpresets=true).

Теперь о линиях, которые рисует эксперт.
• LineOpenлиния открытия ордеров. Ордера открываются достигнув зоны открытия ордеров, которая определяется, как зона, находящаяся между LineOpen и LineOpen+?. Параметр ? является настраиваемым параметром эксперта DELTA (он задаётся в пунктах)
• LineRealOpenлиния цены открытия ордеров. Ордера, открываемые в зоне открытия будут открываться по этой цене. В данном случае по цене Ask, поэтому при пересечении ценой Bid этой линии ничего не происходит – цена Bid должна достигнуть зоны открытия ордеров, тогда ордер (в данном случае BUY) откроется по цене Ask, соответствующей линии LineRealOpen.
• LineStopLoss линия Stop Loss открываемого ордера. Открываемые ордера будут выставлять Stop Loss по уровню этой линии. Уровень же самой линии задаётся параметром STOPLOSS эксперта в пунктах и отсчитывается (в данном случае вниз) от линии LineOpen.
• LineClose линия закрытия ордеров. Ордера закрываются, достигнув зоны закрытия ордеров, находящейся между уровнями линии LineClose и LineClose-Δ×Ψ, где Ψ – фактор расширения зоны закрытия, безразмерный коэффициент, определяемый пераметром эксперта Factor.
• LineRealClose линия цены закрытия ордеров, то есть линия уровня, по которому ордера закрываются (в данном случае по цене Bid)
• LineTakeProfit – линия Take Profit открытого ордера. Значение Take Profit открытого ордера постоянно сдвигается по уровню этой линии. Уровень линии TakeProfit отсчитывается от уровня линии LineClose и задаётся параметром эксперта TAKEPROFIT в пунктах. Линия TakeProfit будет находиться вне канала, если TAKEPROFIT - положительное число; и внутри, если TAKEPROFIT число отрицательное.
• LineMiddle средняя линия канала – служит для индикации его середины.
• Текстовый блок – информирует о режиме работы эксперта. Их два: ЭКСПЕРТ, когда эксперту разрешены торговые операции; и ИНДИКАТОР, когда торговые операции запрещены. Режим ЭКСПЕРТ служит для торговли, режим ИНДИКАТОР служит для визуальной коррекции канала и предотвращает нежелательные открытия/закрытия ордеров во время этого процесса.
Кроме того, в текстовом блоке дополнительно выводится информация о направлении тренда и режиме торговли в канале.
В следующей строке выводится информация о ширине канала. Выводимых значений два. Первое (слева) информирует о ширине d канала между линиями LineOpen и Line Close. Эта информация будет полезна, если Вы пожелаете выставить Take Profit внутрь ванала, например на уровень LineMiddle. Тогда это значение нужно просто разделить пополам и присвоить это (половинное) значение параметру TAKEPROFIT с отрицательным знаком. Второе – реальная ширина канала между текущими ценами открытия (в данном случае Ask) и закрытия (в данном случае Bid). Если реальная ширина канала меньше swap – эксперт прекращает торговлю и выводит информационное сообщение:

Канал слишком узок для торговли.

Значение линии открытия указывает на то, по какой цене будет отправлен брокеру запрос на открытие ордера, значения линии SL и линии TP – о запросе на выставление в этом ордере Stop Loss и Take Profit.
И наконец значение средней линии – о текущем значении уровня линии LineMiddle.
Значение TrailingStop задаётся в процентах от ширины канала и задаёт уровень цены Bid, на котором начнёт перемещаться StopLoss в сторону безубытка. Перемещение StopLoss при работающем TrailingStop происходит только ПО ТРЕНДУ и по уровню LineRealOpen. Уровень начала работы TrailingStop никак не индицируется но, при желании его визуализировать - используйте в качестве TradeChannel фигуру Канал Фибоначчи, соответственно настроив его уровни.
При работе ПРОТИВ ТРЕНДА Stop Loss ордера остаётся на месте, сдвигается только уровень Take Profit, поэтому, открытый против тренда ордер будет закрыт либо по Stop Loss, либо по Take Profit (если линия TakeProfit выставлена внутрь канала), либо достигнув зоны закрытия ордеров, если TakeProfit вне канала.
Из внешних переменных, которые ещё не описаны остались две: MaxRisk и FlipFACTOR.

• FlipFACTOR
- При реверсе торговли в канале лучше сразу куда-то ставить и TakeProfit. Параметр FlipFACTOR показывает куда будет установлен TakeProfit ордера при смене направления торговли с ПО ТРЕНДУ на ПРОТИВ ТРЕНДА. Это значение задаётся в процентах от ширины d канала. FlipFACTOR=25% означает, что TakeProfit при торговле против тренда будет выставлен на удалении d*25% от линии открытия ордеров.
• MaxRisk Выставлен на 2%. Если у вас огромный депозит, то MaxRisk будет устанавливать максимальный размер лота в сделке с риском не превышающим 2%, Если рассчитанный риск больше 2%, но требования по свободным средствам позволяют вам выставить ордер, то будет открыт ордер с минимальным лотом. перь, когда назначение линий описано, запустим эксперта в работу (на иммитаторе, конечно, в крайнем случае на демо-счёте) и посмотрим как он будет исполняться. На рисунке 4 видно, что эксперт выполнил своё назначение – закрыл сделку по нами установленному Stop Loss.

Сделка, открытая в 01:53 по цене покупки 1,26830 (событие 1) в 03:53 была закрыта по StopLoss по цене 1,26513 (событие 4), завершившись потерей $247.26 первоначального депозита $10 000, что составило 2.47%, что, в общем-то, укладывается в рамки приемлемых потерь.
Кроме того, произошли ещё два события 3 и 4, где ордер модернизировался – Take Profit ордера сдвигался: 1.29504 > 1.29506 и 1.29506 > 1.29508, как это и требовалось
Для канала шириной 2691 пункт STOPLOSS в 150 пунктов оказался явно недостаточным. Stop Loss ордера выставляется каждым трейдером по-своему, но его значение зависит от ширины канала, (обычно рекомендуют 10-15%) поэтому выставим на советнике 10% отступ для Stop Loss в 269 пунктов (параметр STOPLOSS).
И ещё. Дойдёт цена до зоны закрытия или не дойдёт – бабушка надвое сказала, поэтому увеличим ширину зоны закрытия в 2 раза (как сказала бабушка), задав параметру FACTOR значение 2. И проверим ещё раз:

Со времени открытия ордера 2010.09.10 00:21 произошли следующие события:
1. Ордер чуть было не закрылся по Stop Loss, но цена только образовала новый минимум, что дало повод для коррекции канала (в самом ордере изменений не произошло).
2. Цена пересекла уровень средней линии канала (3) и включился Trailing Stop, перенеся Stop Loss ордера в сторону минимизации потерь, но всё же ниже цены открытия ордера.
4. В текстовом блоке появился новый субблок с информацией об открытом ордере.



Продолжим:




Ордер закрылся на линии LineRealClose.
За это время (2010.09.10 00:21 – 2010.13 17:48) произошло следующее:
1. Ордер модифицировался 42 раза, сдвигая:
а) Stop Loss ордера на 368 пунктов в сторону безубытка
б) Take Profit ордера на 70 пунктов, отслеживая уровень линии TakeProfit.
2. В результате получена прибыль $1415.15, что увеличило начальный депозит $10 000 на ~14% (: спасибо бабушке :)
Время для тестирования было специально выбрано не самое удачное для работы по стратегии «Торговля в канале», но тем не менее ...
К сожалению оптимизация советника чрезвычайно затруднена вследствие того, что ВСЕ тесты приходится проводить в режиме визуализации и каждый прогон требует уйму времени.

Теперь о некоторых переменных, хотя и не являющихся внешними, но объявленных на глобальном уровне.
tic - хранит номер последнего из открытых ордеров;
magic - "магический" номер ордера. Все ордера открытые советником по одному валютному инструменту имеют одинаковые "магические" номера. По ним эксперт узнаёт "свои" ордера. Номера генерируются библиотечной подпрограммой GetMagic() и использует при генерации код эксперта code. Поэтому, если увидите, что ордера открытые другим советником управляются советником TradeInChannel или наоборот - просто поменяйте в листинге эксперта значение кода эксперта code на любое другое число.
code - код эксперта, используется для распознавания "своих" ордеров;
dir - название директории, в которой хранится файл предустановки эксперта;
fileName - имя файла, в котором хранятся предустановки эксперта;
ext - расширение имени файла, в котором хранятся предустановки эксперта;

УДАЧИ.

Торговля фунтом Торговля фунтом

Проверка стратегии торговли фунтом "по часам".

EA_RSI_MA_001a EA_RSI_MA_001a

Советник работает на основе индикатора RSI-MA (EURUSD, D1).

Nova Nova

Эксперт проверяет в какую сторону движется цена за последние 10 секунд и открывает позицию в соответствии с движением, сразу выставляется стоп и профит. При срабатывании стопа позиция переворачивается с лотом, умноженным на коэффициент.

Moving Average мультипериодный Moving Average мультипериодный

Мультипериодная скользящая средняя.