Форекс Советник Moving Average для формирования торговых сигналов использует одну скользящую среднюю. Открытие и закрытие позиций происходит, когда скользящая средняя пересекает цену на только-что сформировавшемся баре (индекс бара равен 1). Размер лота оптимизируется по специальному алгоритму. Форекс Советник Moving Average анализирует пересечение скользящей средней и рыночного графика цены. Проверка проводится функцией CheckForOpen(). Если скользящая средняя пересекает бар так, что она выше цены Open и ниже Close, то открывается позиция BUY. Если скользящая пересекает бар так, что линия ниже Open и выше Close, то происходит продажа.
В советнике применен очень простой, но эффективный Money Management: способ управления объемом каждой позиции в зависимости от результатов предыдущих сделок. Указанный алгоритм реализуется функцией LotsOptimized(). Расчет базового размера лота происходит на основе максимально допустимого риска:
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
Параметр MaximumRisk показывает базовое процентное значение риска на каждую сделку. Обычно принимает значение от 0.01 (1%) до 1 (100%). Например, если свободные средства (AccountFreeMargin) равны $20500 и правила управления капиталом рекомендуют использовать риск 2%, то размер базового лота будет 20500 * 0.02 / 1000 = 0.41. Очень важно контролировать точность размера лота и явно выравнивать результат до допустимых значений. Обычно допустимы дробные лоты с шагом 0.1. Сделка с объемом равным 0.41 не исполнится. Для выравнивания используется функция NormalizeDouble() с точностью до 1 знака после запятой. В результате получается базовый лот равным 0.4. Расчет базового лота на основе свободной маржи позволяет увеличивать объем операций в зависимости от успешности торговли, то есть вести торговлю с реинвестированием средств. Это есть базовый механизм при обязательном управлении капиталом для повышения эффективности трейдинга.
DecreaseFactor - степень уменьшения размера лота после неудачного трейда. Обычные значения - 2,3,4,5. Если предыдущие сделки были убыточными, то последующие объемы уменьшаются в DecreaseFactor раз, чтобы переждать неудачный период. В алгоритме управления капиталом это самый главный фактор. Идея очень простая: если торговля идет успешно в плюс, то советник работает базовым лотом, зарабатывая по максимуму. После первой же убыточной сделки "сбавляет обороты" до тех пор, пока не проведет положительную сделку. Алгоритм позволяет отключить "сбавление оборотов", если указать DecreaseFactor = 0. В истории сделок подсчитывается количество последних подряд идущих убыточных сделок. На их основе производится перерасчет базового лота:
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Таким образом алгоритм позволяет эффективно снизить риск из-за череды предыдущих неудачных сделок.
В конце функции производится обязательная проверка на минимально допустимый размер лота, так как в результате ранее проведенных расчетов можно получить lot = 0:
if(lot<0.1) lot=0.1;
Советник предназначен главным образом для работы на дневном периоде, а в режиме тестирования - по ценам закрытия. Советник торгует только при открытии нового бара, поэтому режимы детального потикового моделирования использовать не нужно.
Прикрепленный файл | Размер |
---|---|
Moving -Average.zip | 1.68 кб |
Будьте
Будьте добры,подскажите,почему советник не работает на демо-счёте?сумма 3000 USD.
Будьте
Будьте добры,подскажите,почему советник не работает на демо-счёте?сумма 3000 USD.