Коротко о том, что это 

Советник exp_iCustomNew позволят торговать с использованием любых пользовательских и стандартных индикаторов, используя их различные показания: стрелки, пересечение двух линий, пересечение уровня, экстремум, цвет. Для определения сигнала входа может использоваться один основной индикатор и до четырех индикаторов подтверждения по тренду и до четырех индикаторов подтверждения по волатильности. Подтверждающие индикаторы могут рассчитываться по любому другому символу и таймфрейму. Дополнительно сигналы входа отфильтровываются по времени (до трех сессий в день, торговые дни недели, ограничение торговой недели). 

Закрытие ордеров может выполняться по противоположным сигналам открытия, по дополнительным сигналам закрытия, по стоплосс и по тейкпрофит. Стоплосс и тейкпрофит могут быть фиксированными или могут определяться по индикаторам. Для определения стоплосса и тейкпрофита может использоваться два типа индикаторов: дающие величину стоплосса/тейкпрофита и дающие ценовой уровень стоплосса/тейкпрофита. 

Лот ордера может быть фиксированным, пропорциональным средствам и фракционный. Имеются функции увеличения лотов в случае убытков, три функции: Мартингейл (открытие по торговым сигналам, увеличение лота после убытка), Илан - открытие дополнительных ордеров в случае убытка заданного уровня, Стоп-Переворот - установка отложенного стоп-ордера увеличенного объема на уровне стоплосса ордера. Открытый ордер может сопровождаться функцией трейлинга, безубытка и трейлинга по индикатору.

Важное предупреждение 1. Не гарантируется, что советник возможно настроить на любой и каждый индикатор. На некоторые индикаторы советник невозможно настроить.

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

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

Общий обзор функций советника

Освоение советник стоит начать с применения его в тестере стратегий терминала. Если до этого вы никогда не пользовались тестером стратегий, обязательно научитесь им пользоваться. Для освоения тестера стратегий, в первую очередь следует почитать справку к терминалу, раздел "Автотрейдинг", подразделы: "Советники", "Тестирование стратегий", "Оптимизация советников", кроме этого, существуют интересные и полезные


Рис. 1. Окно свойств (верхняя часть)

Всего в окне свойств выделены следующие разделы:

1. Несколько переменных общего назначения, раздел не имеет названия.

2. Enter Signals (сигналы входа). Раздел имеет несколько подгрупп параметров для настройки различных вариантов торговых сигналов и подгруппу параметров закрытия ордеров по сигналу открытия.

3. Trend Confirm - 1 (трендовые сигналы подтверждения - 1). Возможно использование до 4-ех индикаторов подтверждения с различных символов и тайфмреймов.  

4. Trend Confirm - 2 (трендовые сигналы подтверждения - 2). 

5. Trend Confirm - 3 (трендовые сигналы подтверждения - 3). 

6. Trend Confirm - 3 (трендовые сигналы подтверждения - 4). 

7. Volatility - 1 - (подтверждение волатильностью - 1). Индикаторы волатильности (типа ATR, STD) не показывают направления, но могут использоваться для разрешения/запрета торговли в обеих направлениях. Всего может использоваться до четырех индикаторов волатильности  с различных символов и тайфмреймов.

8. Volatility - 2 - (подтверждение волатильностью - 2).

9. Volatility - 3 - (подтверждение волатильностью - 3).

10. Volatility - 4 - (подтверждение волатильностью - 4).

11. Close Signals (сигналы закрытия). Раздел идентичен разделу "Enter Signals" и имеет точно такой же набор параметров.

12. Optimization (оптимизация). Параметры используемых индикаторов задаются в строковых переменных, что не дает возможности использовать их при оптимизации советника в тестере. Однако в советнике имеются средства для оптимизации этих параметров. Всего может оптимизироваться до десяти параметров (конечно, не считая все остальные параметры). 

13. Lot (Объем ордера). Параметры определения объема начального ордера. В советнике имеется несколько различных функций усреднения ( Мартингейла, подобие Илана, стоп-переворот), они имеют свои параметры для настройки прогрессии лотов, в этом же разделе настраивается только начальный ордер.

14. Order (ордер). В этом разделе настраиваются основные параметры ордера (стоплосс, тейкпрофит).

15. Count (подсчет). Параметры ограничивающие допустимое количество открытых ордеров. При использовании функций усреднения, параметры данного раздела не действуют (кроме Мартингейла).

16. StopLoss by Indicator (стоплосс по индикатору). Раздел параметров для настройки стоплосса по индикатору.

17. TakeProfit by Indicator (тейкпрофит по индикатору). Раздел параметров для настройки тейкпрофита по индикатору.

18. Martin (Мартингейл). Функция увеличения лота после убытка.

19. Ilan (Илан). Включения усреднения как у всем известного советника "Ilan", но дополнительно может использоваться торговый сигнал. Открытие дополнительного ордера может выполняться не только по достижению заданного убытка, но и при наличие торгового сигнала.

20. Stop Reverse (стоп - переворот). После открытия ордера, на уровне его стоплосса устанавливается отложенных стоп-ордер увеличенного объема.

21. Trade Day Sessions (торговые дневные сессии). В этом разделе определяется время дня в которое советнику разрешается открывать начальные ордера. Можно определить от одной до трех сессий в день.

22. Orders per day or session (количество ордеров в день или за сессию). В этом разделе возможно установить ограничение на количество ордеров за торговую сессию или за день (если сессии не используются).

23. Trade Days (торговые дни). В этом разделе можно указать дни недели в которые разрешено/запрещено открывать ордера.

24. Trade Week (торговая неделя). Этот раздел позволяет определить торговую неделю - время в начале недели с которого разрешается открывать ордера и время в конце недели после которого запрещено открывать ордера.

25. Trailing by Indicator (трейлинг по индикатору). Функция трейлинга ордера (стоплосса ордера) по индикатору.

26. Trailing (трейлинг). Функция простого трейлинга.

27. Break Even (безубыток). Функция безубытка.

28. Other (прочее). Дополнительные параметры.

Индикаторы

В советнике могут использоваться все станадартные индикаторы терминала и большенство пользовательских индикаторов (за некотрым исключеним).

Параметры индикатра определяются в строковом параметре. Существуют отдельные переменые для индикаторов использующихся для покупки и отдельные для продажи. Например, для индикаторов открытия это строки EBuyMain, EBuySignal, ESellMain, ESellSignal. EBuyMain и ESellMain - это основные переменные, использующиеся для всех типов сигналов. EBuySignal и ESellSignal используются для сигналов пересечения двух линий. Не обязательно настраивать отдельно покупу и продажу, можно использовать только одну из переменных Buy/Sell, но в этом случае надо будет указать два буфера (об этом ниже в этом разделе). 

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

Во втором поле перечисляются параметры через знак ",". Параметры пользовательского индикатора перечисляются в том порядке, в каком они располождены в окне свойств. Параметры стандартных индикаторов в том порядке как они расположены в окне свойств построчно сверху вниз, например для индикатора Bollinger Bands (рис. 2.) параметры указываю.тся в следущем порядке: перод, сдвиг, отклонения, цена. 


Рис. 2. Окно свойств стандартного индикатора Bollinger Bands

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

Третье поле определяет буфер индикатора. Один индикатор может рисовать несколько линий, нужно указать какую конкретно линию использовать. Отсчет буферов выполняется с нуля. Для пользовательских индикаторов номер буфера можно узнать во окне свойств во вкладке "Цвета", если несколько буферов имеют одинаковые цвета, установите  всем буфером разные цвета, таким образом сможете определить номер требуемого буфера. Для стандартных индикаторов номера буферов приведены ниже в таблице 1. 

Если задействована только одна переменная Buy или Sell, необходимо указать два буфера через знак ",". Для строки Buy на первой позиции указывается буфер для покупки, на втором для продажи.  Если же задействована только строка Sell, то на первой позиции указывается буфер для продажи, на втором для покупки (на первой позиции свой буфер, на второй - противоположный).

Пример. Для индикатора Bollinger Bands, если задействованы обе строки они будут иметь следующий вид:

EBuyMain - iBands;20,0,2,0;2

ESellMain - iBands;20,0,2,0;1

Верхняя полоса индикатора Боллинджера имеет индекс 1, нижняя - 2.

Если задействовать только одну переменную, она будет иметь следующий вид:

EBuyMain - iBands;20,0,2,0;2,1

Таблица 1. Стандартные индикаторы.

Описание Имя 
(для ввода)
Параметры 
(в скобках указаны значения по умолчанию)
Буферы
Accelerator Oscillator iAC нет параметров  один с номером 0
Accumulation/Distribution iAD нет параметров  один с номером 0
Average Directional Index iADX период (14), цена (0) три буфера: 0 - линия ADX, 1 - линия +DI, 2 - линия -DI
Alligator iAlligator период челюсти (13), смещение челюсти (8), период зубов (8), смещение зубов (5), период губ (5), смещение губ (3), метод (2), цена (4) три буфера: 1 - челюсть (синяя), 2 - зубы (красная), 3 - губы (зеленая)
Awesome Oscillator iAO нет параметров один с номером 0
Average True Range iATR период (14) один с номером 0
Bears Power iBearsPower период (13), цена (0) один с номером 0
Bollinger Bands iBands период (20), смещение (0), ширина (2.0), цена (0). три буфера: 0 - центральная линия, 1 - верхняя линия, 2 - нижняя линия
Bulls Power iBullsPower период (13), цена (0) один с номером 0
Commodity Channel Index iCCI период (14), цена (5) один с номером 0
DeMarker iDeMarker период (14) один с номером 0
Envelopes iEnvelopes период (14), метод (0), смещение (0), цена (0), ширина (0.1) три буфера: 0 - центральная линия, 1 - верхняя линия, 2 - нижняя линия
Force Index iForce период (13), метод (0), цена (0) один с номером 0
Fractals iFractals нет параметров два буфера: 1 - верхние фракталы, 2 - нижние
Gator Oscillator iGator период челюсти (13), смещение челюсти (8), период зубов (8), смещение зубов (5), период губ (5), смещение губ (3), метод (2), цена (4) два буфера: 1 - верхняя гистограмма, 2 - нижняя гистограмма
Ichimoku Kinko Hyo iIchimoku период тенкан (9), период киджун (26), период сенкоу (52) 1 - линия тенкан (красная), 2 - линия киджун (синяя),3 - линия спан А (коричневая), 4 - линия спан B (розовая), 5 - линия чикоу
Market Facilitation Index by Bill Williams iBWMFI нет параметров один с номером 0
Momentum iMomentum период (14), цена (0) один с номером 0
Money Flow Index iMFI период (14) один с номером 0
Moving Average iMA период (14), смещение (0), метод (0), цена (0) один с номером 0
Moving Average of Oscillator (MACD histogram) iOsMA период быстрой МА (12), период медленной МА (26), период сигнальной линии (9), цена (0) один с номером 0
Moving Averages Convergence-Divergence iMACD период быстрой МА (12), период медленной МА (26), период сигнальной линии (9), цена (0) два буфера, 0 - гистограмма, 1 - сигнальная линия
On Balance Volume iOBV цена (0) один с номером 0
Parabolic Stop And Reverse System iSAR шаг (0.02), максимальный шаг (0.2) один с номером 0
Relative Strength Index iRSI период (14), цена (0) один с номером 0
Relative Vigor Index iRVI период (10) два буфера: 0 - главная линия, 1 - сигнальная линия
Standard Deviation iStdDev период (20), цена (0), метод (0), смещение (0) один с номером 0
Stochastic Oscillator iStochastic период K (5), период D - сигнальная линия (3), период S - замедление сновной линии (3), цена (0), метод сигнальной линии (0) один с номером 0
Williams' Percent Range iWPR период (14) один с номером 0

Примечания по стандартным индикаторам: 

1. По индикатору фракталов. Фракталы формируются на баре со смещением 2, на баре со смещением 3 находятся сформированные фракталы. Имейте это ввиду при установке значения параметра EShift.

2. По индикатору Ишимоку. Имейте ввиду, что линия чикоу смещена на значение параметра киджун, на текущем и еще нескольких последних барах ее значение отсутствует.

3. Возможные значения параметра определяющего цену для индикаторов кроме стохастика: 0 - Close, 1 - Open, 2 - High, 3 - Low, 4 - Median, 5 - Typical, Weighted. Для стохастика: 0 - High/Low, 1 - Close/Close.

4. Возможные значения параметра определяющего метод: 0 - Simple, 1 - Exponential, 2 - Smoothed, 3 - Linera Weighted.

Из пользовательских индикаторов могут подойти не все. Пользовательский индикатор не должен иметь строковых параметров. При вводе параметров в строку параметров, у параметров типа bool вместо значений true/false используется 1/0. Значения параметров типа datetime должно начинаться с "d:". Значения параметров типа color должны начинаться с "c:", далее указывается цвет, например c:clrYellow, или перечисляются компоненты RGB через пробел, например c:255 255 0. Для рисования пользовательский индикатор должен использовать только индикаторные буферы, а не графические объекты. Например, если индикатор рисует стрелки, щелкните мышкой на стрелке, если она выделилась (рис. 3), значит нарисована графическим объектом, такой индикатор не подходит.


Рис. 3. Срелка нарисованная графическим объектом

Также и линии могут быть нарисованы графическими объектами и они так же будут выделяться мышкой (рис. 4). 


Рис. 4. Канал из графических объектов "трендовая линия". Линию можно выделить, дважды щелкнув на ней мышкой, и переместить, во отличие от линии рисуемой при помощи индикаторного буфера

Особую категорию составляют пользовательские разноцветные индикаторы. Существует несколько способов раскрашивания индикатора. Если одна линия всегда имеет значения, а вторая линия периодически имеет или не имеет значений, такой индикатор не может быть использован. Чтобы узнать какой способ раскрашивания применяется в индикаторе, можно увеличить толщину нижней линии и увидеть, существует ли она всегда или исчезает (рис. 5).


Рис. 5. Двухцветный индикатор с увеличенной (для наглядности) толщиной красной линии. Видно, что красная линия всегда имеет значения

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

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

Индикаторы рисующие бары, например, индикатор Heiken Ashi можно использовать в режиме пересечения двух линий (буферы 0 и 1, или 2 и 3). 

Торговые сигналы

Индикаторы для определения сигналов входа (и для сигналов закрытия) могут использоваться различными способами. Для определения способа использования индикатора (типа торгового сигнала) используется параметр EType (с выпадающим списком). 

Особенность торгового сигнала в том, что он существует только в течение одного бара, на котором начали выполняться условия.

Возможны следующие типы: 

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

Sig_AlwaysExists - всегда существуют торговые сигналы в обеих направлениях. Этот режим может быть использован совместно с индикатором подтверждения по тренду, если кому-то так потребуется. При такой настройке торговый сигнал будет существовать всегда, поскольку ещо существование обусловлено трендовым индикатором.

Sig_Arrows - индикатор рисует стрелки (рис. 6).


Рис. 6. Индикатор рисует стрелки

Sig_TwoLinesCross - пересечение двух линий (рис. 7). Один индикатор может рисовать две линии, или же может использоваться два индикатора (например, две скользящих средних). В любом случае для этого режима должен быть задействован параметр EBuySignal и/или ESellSignal. 


Рис. 7. Пересечение двух линий 

Sig_Levels - пересечение линии индикатор и уровня (рис. 8). 


Рис. 8. Пересечение уровней

При использовании этого режима необходимо настроить параметры подраздела уровней (переменные ELevelMode, ELevelBuy, ELevelSell, ELevelMid).

Sig_Extremums - экстремум. Нижний экстремум - слева и справа от одного бара значения выше, верхний - ниже (рис. 9).


Рис. 9. Экстремум.

При использовании этого режима необходимо настроить параметры подраздела экстремума (переменные EExtrMode, EExtrLeft, EExtrRight).

Sig_Color - смена цвета индикатора (рис. 10).


Рис. 10. Смена цвета.

При использовании этого режима необходимо настроить параметры подраздела цвета (переменные EEmptyValue1 EEmptyValue2). В этом режиме возмодно исопльзование только пользовательских индикаторов. Страндартные двухцветные индикаторв (типа AO, AC) не подходят для этого режима, но они раскрашены в зависимости от наклона и поэтому их можно применять в режиме по экстремуму. 

Сигналы открытия могут использоваться для закрытия ордеров (закрытие противоположных ордеров перед открытием нового ордера). Включение закрытия выполняется переменной ECloseOnRev. При закрытие ордеров может выполняться дополнительная проверка прибыли каждого ордера. Закрытие модет выполняться только при наличие заданного убытка или прибыли.  Переменной ECheckProfit включается проверка прибыли, при этом используется переменная EProfitValue, определяющая минимальную прибыль ордера в пунктах. Переменой  ECheckLoss включается проверка убытка, при этом используется переменная ELossValue определяющая минимальный убыток в пунктах.

Сигналы подтверждения трендовые

Один и тот же индикатор может использоваться как для определения сигнала входа, так и для подтверждения. Например, две скользящих средний. Если использовать их для определения сигнала входа, сигнал будет существовать строго на одном баре в момент смены расположения быстрой линии относительно медленной (рис. 11). 


Рис. 11. Торговые сигналы в моменты пересечения двух скользящих средних.

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


Рис. 12. Сигналы подтверждения по двум скользящим средним.

Вариант сигналов подтверждения выбирается параметром T1Type, T2Type, T3Type, T4Type (разделы параметров T1, T2, T3, T4 идентичны, будет рассматриваться только один T1). Всего доступны следующие варианты сигналов подтверждения: 

T_LastArrow - по направлению последней стрелки стрелочного индикатора. Режим сделан только для идентичности с вариантами сигналов открытия. 

T_TwoLinesPos - по положению двух линий. 

T_Levels - по положению линии относительно уровня. В этом режиме дополнительно выполняется настройка параметров: T1LevelMode, T1LevelBuy, T1LevelSell, T1LevelMid.

T_Incline - по наклону. Проверяется положение индикатора на одном баре относительно положения на другом баре. В этом режиме дополнительно настраивается параметр: T1IncBars. 

T_Color - по цвету. В этом режиме дополнительно выполняется настройка параметров: T1EmptyValue1, T1EmptyValue2.

Сигналы подтверждения волатильности

Сигналы подтверждения не имеют направления, а только показывают, можно или нельзя открывать ордер. Например индикатор ATR, если индикатор выше заданного уровня, разрешается открытие ордеров, иначе открытие запрещено.

Вариант сигналов подтверждения волатильности выбирается параметрами V1Type, V2Type, V3Type, V4Type (разделы параметров V1, V2, V3, VT4 идентичны, будет рассматриваться только один V1). Всего доступны следующие варианты сигналов подтверждения: 

V_TwoLinesPos - положение двух линий относительно друг друга. Кода главная линия выше сигнальной, разрешается открытие.

V_Level - положение линии относительно уровня. Когда линия индикатор выше уровня, разрешается открытие. В этом режиме дополнительно выполняется настройка параметра V1Level.

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

V_Color - разрешается открытие, когда линия индикатора отображается каким-либо цветом (когда есть значения индикаторного буфера). В этом режиме дополнительно выполняется настройка параметров V1EmptyValue1 и V1EmptyValue2.

Оптимизируемые параметры индикаторов

Поскольку параметры индикаторов записываются в строковых переменных, значит нет возможности их оптимизировать обычным способом. Однако в советнике предусмотрена возможность оптимизации этих параметров. Для этого существует специальный раздел оптимизируемых параметров состоящий из двух подразделов. В одном подразделе находятся переменные для оптимизируемых значений (Opt01_Value - Opt10_Value). В другом разделе находятся переменные для указания оптимизируемой переменой индикатора (Opt01_SetTo - Opt10_SetTo). Допустим, надо оптимизировать первый параметр индикатора EBuyMain, в строке Opt01_SetTo записывается имя переменной с параметрами индикатора (это "EBuyMain") и через знак "-" указывается номер параметра индикатора (по порядку отсчет с единицы). Получается такая запись "EBuyMain-1". Если эта запись находится в переменной Opt01_SetTo, значит оптимизировать надо переменную Opt01_Value. Одно оптимизируемое значения можно направить любому количеству индикаторов, в этому случае пары "имя переменной параметров"-"номер параметра" перечисляются через запятую. Например значение первой оптимизируемой переменно Opt01_Value надо установить второму параметры индикатора EBuyMain и второму параметру индикатора ESellMain, в этом случае в переменной Opt01_SetTo записывается "EBuyMain-2,ESellMain-2".

Полный список оптимизируемых параметров приведен в таблице 2. в описании параметров Opt01_SetTo - Opt10_SetTo.

Объем ордера (лот)

Эксперт имеет функции увеличения лота после убытка (Martin, Ilan, StopReverse). Кроме этого, существуют отдельные параметры  для определения объема начального ордера (или просто ордера, если не используются функции увеличения лота после убытка), эти параметры расположены в разделе "Lot". 

Всего имеется три варианта определения начального лота (выбирается переменной MM_Method):

L_Fixed - фиксированный. Определяется переменной MM_Lots.

L_Proportional - пропорциональный средствам. Используется переменная MM_Risk определяющая долю задействованных средств (изменяется от 0 до 1). 

L_Fractional - фракционный метод. Используются параметры MM_StartMeans (начальный средства), MM_MeansStep (шаг средств), MM_LotsStep (шаг лота). Еслти3 средства превышают MM_StartMeans на величину MM_MeansStep или более, то на каждый шаг MM_MeansStep лот увеличивается на MM_LotsStep.

В вариантах L_Proportional и L_Fractional используется параметр MM_MeansType определяющий тип средств участвующих в расчете лота: 

M_FreeMargin - свободные средства.

M_Balance - баланс.

M_Equity - эквити.

Параметры ордера

Параметры ордера настраиваются в разделе "Order", к этим параметрам относится стоплосс и тейкпрофит ордера. Стоплосс и тейкпрофит могут быть фиксированные в пунктах, а могут определяться по индикатору. Может использоваться два типа индикаторов, индикаторы показывающие величину стоплосса или тейкпрофита (например, ATR) или индикаторы показывающие ценовое значение (например, полосы Боллинджера). 

Тип стоплосса выбирается переменной OStopLossType. Тип тейкпрофита выбирается переменной OTakeProfitType. При использовании вариантов по индикаторам, дополнительно выполняется настройка в разделах "StopLoss by Indicator" и/или "TakeProfit by Indicator".  

Учет ордеров

В разделе "Count" находятся параметры ограничения количества открытых ордеров и выключатель режима односторонней торговли (некоторые брокеры разрешают открытие нескольких ордеров только в одну сторону). 

В режимах Ilan и StopReverse эти параметры не действуют.

Режим Мартингейла

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

Параметров режима настраиваются в разделе "Martin". 

Включение функции выполняется параметров Mart_Method, может быть включен один из двух вариантов:

Mart_Mult - умножение лота (геометрическая прогрессия). В этом режиме дополнительно используется параметр Mart_K, определяющий коэффициент умножения лота.

Mart_Add - прибавление лота (арифметическая прогрессия). В этом режиме после каждого убытка к лоту добавляется величина начального лота. 

Переменой Mart_ProfVariant выбирается вариант определения того, что последовательность увеличения лота закончена. Здесь можно выбрать один из двух вариантов:

Mart_LastProfit - последний ордер закрыт с прибылью. Этот вариант подойдет в случае, если ордера закрываются только по стоплосс и тейкпрофит и при этом стоплосс и тейкпрофит имеют фиксированные значения.

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

Допустимое количество увеличений лота определяется параметров Mart_MaxCnt. Если допустимое количество увеличений лота исчерпано, а прибыль не получена, дальнейшие действия советника определяются параметром Mart_OnEnd. Можно выбрать два варианта:

Mart_KeepLast - продолжать с максимальным лотом.

Mart_BeginNew - начать последовательность заново.

Ордера на продажу и покупку могут учитывать вместе, или функция может работать раздельно для покупок и продаж, это выбирается переменной Mart_Together

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

Режим Ilan

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

Параметры этого режима настраиваются в разделе "Ilan".

Включение функции выполняется параметром Ilan_ON. При работе этой функции не действуют параметры раздела Count. Допустимое количество ордеров определяется параметром Параметром Ilan_MaxCnt. Ilan_BuySell разрешается или запрещается одновременное существование ордеров buy и sell.

Параметром Ilan_AddLevel определяется шаг в пунктах через которых допускается открытие новых ордеров. Шаг может увеличиваться по мере открытия новых ордеров. Коэффициент увеличения шага определяется параметром Ilan_AddLevelK.

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

Увеличение лота может происходить по геометрической прогрессии или по арифметической. Вариант увеличения лота выбирается параметром Ilan_LotsMethod: Mult - умножение на Ilan_LotsK, Add - прибавление начального лота.

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

Режим Стоп-переворот

При открытии рыночного ордера по торговому сигналу, на уровне его стоплосса устанавливается отложенный стоп-ордер увеличенного объема. При срабатывании стоплосса срабатывает отложены ордер и на уровне его стоплосса устанавливается другой отложенный ордер  еще большего объема и т.д. пока не будет взята прибыль.

Параметры этого режима настраиваются в разделе "StopReverse".

Функция включается переменной SR_ON. Переменой SR_MaxCnt определяется максимальное количество ордеров в последовательности. Параметром SR_LotsK устанавливается коэффициент умножения лота.

Стоплосс и тейкпрофит переворотных ордеров устанавливается параметрами SR_StopLoss и SR_TakeProfit, кроме значения в пунктах в этих параметрах могут указываться значения -1 или -2. При SR_StopLoss=-1, для вновь устанавливаемого ордера копируется величина стоплосса с предыдущего ордера. При SR_StopLoss=-2 копируется значение параметра OStopLoss из раздела "Order".

При SR_TakeProfit=-1 для расчета тейкпрофита используется величина стоплосса ордера, умножается на SR_TakeProfitMult и прибавляется SR_TakeProfitAdd. SR_TakeProfit=-2 - копируется значение параметра OTakeProfit.

Рекомендуется использовать SR_StopLoss=-1 и SR_TakeProfit=-1.

Работа по времени

Настройка работы эксперта по времени выполняется в разделах: "Trade Day Sessions", "Trade Days", и "Trade Week". В разделе "Trade Day Sessions" определяется торговое время в течение дня (от одной до трех сессий). Если не нужно использовать все три сессии, для выключения ненужных сессий надо установить одинаковое время начала и окончания.

В разделе "Trade Days" определяются дни недели в которые разрешено/запрещено торговать. 

В разделе "Trade Week" определяется начало и конец торговой недели. 

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

Ограничение ордеров за день или сессию

Кроме ограничения количества открытых ордеров находящихся в рынке (раздел "Count") возможно ограничить количество исполненных ордеров за один дель или одну торговую сессию определяемую в разделе "Trade Day Sessions". Настройка выполняется в разделе "Orders per day or session".

Трейлинг по индикатору

Функция трейлинга по индикатору управляет уровнями стоплосса ордеров в соответствии со значением индикатор. Так же как со стоплоссом и тейкпрофитом по индикаторам, здесь тоже может использоваться два типа индикаторов: показывающие величину стоплосса (типа ATR) и показывающий ценовой уровень (типа полос Боллинджера или Parabolic SAR). 

Настройки функции выполняются в разделе "Trailing by Indicator". 

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

Параметром TS_IndMode выбирается тип используемого индикатора (величина стоплосса или ценовое значение).

Определенная по индикатор величина стоплосса дополнительно умножается на коэффициент TS_K и дополнительно прибавляется величина TS_Add. После этого выполняется коррекция значения с использованием параметров TS_MinVal и TS_MaxVal. 

Стоплосс может сразу перемещаться по линии индикатора, или же  только когда оказывается в прибыли, этот вариант выбирается переменно TS_InProfit.

При использовании индикатора типа Parabolic SAR может оказаться полезной переменная TS_CheckPrice (проверка положения цены). При этой проверке трейлинг для ордеров buy срабатывает только когда цена находится выше индикатора, а для sell - ниже.

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

Простой трейлинг

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

Функция включается параметром TR_ON. При достижении прибыли указанной параметром TR_Start стоплосс переносится на уровень TR_Level (минимальный уровень  прибыли после срабатывания функции равен TR_Start-TR_Level). Далее, по мере движения цены в стороны прибыли ордера стоплосс перемещается, но на величину не менее чем TR_Step.

Параметром TR_FirstOnly включается работа функции только с первым ордером последовательности увеличения лотом для обеспечения правильно работы функций  "Ilan" или "StopReverse".

Параметром TR_EachTick включается работа функции на каждом тике или раз на бар. 

Безубыток

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

Включение функции выполняется параметром BE_ON. При достижении прибыли указанной параметром BE_Start стоплосс переносится на уровень BE_Level (минимальный уровень  прибыли после срабатывания функции равен BE_Start-BE_Level).

Параметром BE_FirstOnly включается работа функции только с первым ордером последовательности увеличения лотом для обеспечения правильной работы функций  "Ilan" или "StopReverse".

Параметром BE_EachTick включается работа функции на каждом тике или раз на бар. 

Прочие параметры

Для упрощения настройки эксперта при работе на котировка с пятью знаками после запятой имеется параметр Auto5Digits. При значении параметра true, все параметры эксперта измеряемые в пунктах умножаются на 10.

Некоторые брокеры не допускают открытия рыночного ордера с заранее установленными стоплоссом и/или тейкпрофитом. При включении режима MWMode, установка стоплосса и тейкпрофита выполняется после открытия ордера. 

Практикум по настройке эксперта

Для каждого из шагов практикума сохранены файлы настроек, файлы расположены в папке additional_files/setup_practices. В файле read.txt находится описание файлов (какой из файлов относится к какому шагу), а сами файлы настроек расположены в папке set_files. В папке additional_files/indicators находятся все пользовательские индикаторы использующиеся в примерах.

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

Сигналы входа

Для настройки сигналов входа необходимо выбрать тип сигнала переменной EType, и заполнить переменные с параметрами индикаторов. Выберем тип сигнала Sig_Arrows, для этого типа сигналов используются переменные EBuyMain и ESellBuy, но можно ограничиться настройкой только одной переменной EBuyMain. В переменной надо указать указать имя индикатора, перечислить его параметры и указать буферы. Настроим эксперта на сигналы пользовательского индикатора imacross (индикатор можно найти в архиве на странице обсуждения, там же находятся set файлы практикума).

Индикатор рисует стрелки при пересечении двух скользящих средних. Значит в переменную EBuyMain вводим "imacross;5,0,4,0,34,0,4,0;0,1". 

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

Прежде, чем переходить к следующему шагу, обратите внимание, сначала ордер открывается без стоплосс и тейкпрофит, но сразу после открытия ордер модифицируется. Это связано с тем, что включен режим MWMode (раздел "Other"). Если установить MWMode = false, ордера будут сразу открываться сто стоплоссом и тейкпрофитом.

Количество ордеров 

Если снять ограничения на количество ордеров, ордера будут открываться на всех стрелках. В разделе "Count" параметрам CNMaxTotalCount, CNMaxBuyCount, CNMaxSellCount установите значения -1.   

Pакрытие обратным сигналом

В разделе "Order" установите OStopLoss=0 и OTakeProfit=0, в разделе "Enter Signals" включите ECloseOnRev. С этими настройками эксперт будет открывать ордера без стоплосс и без тейкпрофит, а закрывать их будет перед открытием ордера в противоположном настроение.

Сигналы подтверждения трендовые 

Для сигналов подтверждения попробуем использовать две стандартных скользящих средних, с большим параметрами, чем у индикатора imacross.

В разделе "Trend Confirm - 1" в переменной T1Type выберите T_TwoLinesPos. Теперь по таблице 1 смотрим имя для скользящих средних и количество параметров. Значит в строку T1BuyMain вводим "ima;50,0,0,0;0" (средняя с периодом 50), в переменную T1BuySignal вводим "ima;200,0,0,0;0"  (средняя с периодом 200).

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

Сигналы закрытия 

Отключим закрытие на развороте (переменная ECloseOnRev). Настроим сигналы закрытия по индикатору imacross с точно такими же параметрами как у индикатора открытия. В разделе "Close Signals" в переменной выберем Sig_TwoLinesCross, скопируем строку из переменной EBuyMain в переменную CBuyMain. В переменной CBuyMain должна быть следующая строка: "imacross;5,0,4,0,34,0,4,0;0,1". Обратите внимание на номера буферов, они точно такие же как для сигналов открытия, параметры этого раздела настраиваются полностью точно так же как параметры раздела открытия. Ордера buy закрываются по сигналам sell, а ордера sell по сигналам buy.

Теперь после тестирования на графике видно, что ордера закрываются по ближайшей стрелке противоположного направления.

Oптимизация

Для определения сигналов открытия используется индикатор imacross и две скользящих средних. Для закрытия используется еще один индикатор imacross. Было бы хорошо чтобы параметры индикатора imacross использующегося для открытия соответствовали параметрам индикатора imacross использующегося для закрытия. Всего будем оптимизировать четыре параметра: периоды быстрой и медленной средних индикатора imacross и периоды средних используемых для подтверждения. Значит будет задействовано четыре оптимизируемых параметра. Настройка выполняется в разделе "Optimization".  Параметры Opt01 будем использовать для периода быстрой средней индикатора imacross, Opt02 - для медленной. Opt03 - для быстрой средней подтверждения,  Opt04 - для медленной. Поскольку индикатор imacross используется для сигналов открытия и для сигналов закрытия, значит в переменную Opt01_SetTo записываем: "EBuyMain-1,CBuyMain-1" (значение переменной Opt01_Value отправляется первому параметру индикатора imacross). В переменную Opt02_SetTo - "EBuyMain-5,CBuyMain-5" (значение переменной Opt01_Value отправляется пятому параметру индикатора imacross). В переменную Opt03_SetTo - "T1BuyMain-1", в переменную Opt04_SetTo - "T1BuySignal-1". В переменные Value введем соответствующие значения по умолчанию: 5? 34, 50, 200. Параметры раздела оптимизации должны выглядеть следующим образом:

Opt01_Value = 5
Opt02_Value = 34
Opt03_Value = 50
Opt04_Value = 200

Opt01_SetTo = EBuyMain-1,CBuyMain-1
Opt02_SetTo = EBuyMain-5,CBuyMain-5
Opt03_SetTo = T1BuyMain-1
Opt04_SetTo = T1BuySignal-1

С этими настройками эксперт будет работать точно так же, как и прежде, но теперь можно оптимизировать параметры Opt01_Value, Opt02_Value, Opt03_Value, Opt04_Value. 

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

Сигналы подтверждения волатильности

Можно попробовать входить в рынок только на активном движении цены, для этого попробует задействовать проверку волатильности. Используем индикатор ADX. В разделе "Volatility - 1" в переменной V1Type выберите V_Level, в переменную V1Main введите "iadx;14,0;0". Переменной V1Level установите значение 20. 

Начальный лот

В разделе "Lot" переменной MM_Method выберите вариант L_Proportional. Во вкладке "Тестирование" установите начальный депозит в размере 10000. У параметра Risk по умолчанию стоит значение 0.1 (10% от средств), при таком значении и с депозитом  10000 первый ордер откроется с лотом 1.0. Лот рассчитывается без учета залоговых требований, но так удобней для понимания, очевидней и наглядней.

Стоплосс и тейкпрофит

Отключим рыночной закрытие и попробуем установить стоплосс и тейкпрофит по индикатору. Тейкпрофит по индикатора ATR, а стоплосс по индикатору Боллинджера.

Для настройки тейкпрофита в разделе "Order" переменной OTakeProfitType установите TP_ByIndicator. В разделе "TakeProfit by Indicator" переменной TP_IndMode выберите вариант TP_Value. В строку TP_Ind введите "iATR;14;0". 

Для настройки стоплосса в разделе "Order" переменной OStopLossType установите SL_ByIndicator. В разделе "StopLoss by Indicator" переменной SL_IndMode выберите вариант SL_Price. В строку SL_Ind введите "iBands;20,0,2,0;2,1". Обратите внимание на номера буферов, для ордеров buy используется нижняя граница, для sell - верхняя. 

Трейлинг

Функции безубытка и трейлинга достаточно простые, их достаточно включить переменными BE_ON и TR_ON, поэтому не будем с ними экспериментировать. Настроим функцию трейлинга по индикатору, будем использовать индикатор Боллинджера. В разделе "Trailing by Indicator" включите TS_ON, переменной TS_IndMode выберите TS_Price. В строку TS_Ind введите "iBands;20,0,2,0;2,1". Трейлинг только в прибыли (TS_InProfit) надо отключить, потому-что у ордеров небольшй тейкпрофит и скорее всего он сработает раньше, чем начнется перемещение стоплосса в прибыли.

Мартингейл

Для включения функции мартингейла установите Mart_Method=Mart_Mult. Поскольку стоплосс и тейкпрофит не фиксированные, переменной Mart_ProfVariant выберите вариант Mart_SumProfit. Данная функция очень сильно нагружает депозит, поэтому надо снизить риск, в разделе "Lot" установите переменной MM_Risk значение 0.01 (1%).

Илан

В этом режиме нужно открывать ордера без стоплосс или с фиксированным стоплосс. С фиксированным стоплосс должно быть ограничено количество ордеров последовательности. При фиксированном стоплоссе, цена стоплосса будет рассчитываться для последнего ордера последовательности, при открытии очередного ордера стоплосс может корректироваться (модифицироваться), поскольку ордер может открыться не строго по расчетной цене, а немного дальше. В этом режиме не действуют параметры раздела "Count", у функции есть свои параметры: Ilan_MaxCnt - размер последовательности (количество ордеров) и Ilan_BuySell - допускается одновременное существование ордеров buy и sell.

Отключите функцию Мартингейла и трейлинг по индикатору. Трейлинг можно и оставить, но тогда включить TS_InProfit, что бы небыло стоплосса стоящего в убытке и он не нарушил последовательность ордеров. В разделе "Ilan" включите Ilan_ON. По умолчанию переменная Ilan_MaxCnt=-1, т.е. количество ордеров в последовательности не ограничено, в этом случае у ордеров не будет стоплоссов. Если же в Ilan_MaxCnt ввести положительное число, т.е. ограничить последовательность, необходимо сделать соответствующие настройки стоплосса, необходимо выбрать фиксированный стоплосс (в разделе "Order" установить OStopLossType=SL_StopLoss и ввести нужное значение или ноль в переменную OStopLoss.

Стоп-переворот

Отключите функцию Илана. Эксперт должен открывать ордера со стоплоссом. Если на предыдущем шаге (с настройкой Илана) вы не меняли допустимое количество ордеров и соответственно ничего не меняли с настройками стоплосса, то при отключении функции Илана эксперт должен открывать ордера со стоплоссом. В разделе "Stop Reverse" включите SR_ON. 

Примеры настроек сигналов входа со стандартными индикаторами

Для каждого из примеров имеется файл настроек. Файлы располагаются в папке additional_files/setup_examples/enter_signals/standart. В файле read.txt находится описание файлов, а сами файлы расположены в папке set_files.

iAC. Вход по экстремуму

EType = Sig_Extremums
EBuyMain = iAC;;0

iAD. Вход по экстремуму

EType = Sig_Extremums
EBuyMain = iAD;;0

EExtrLeft = 5
EExtrRight = 5

iADX. Пересечение PDI и MDI

EType = Sig_TwoLinesCross
EBuyMain = iADX;14,0;1
EBuySignal = iADX;14,0;2

iAlligator. Пересечение быстрой (зеленой) и средней (красной)

EType = Sig_TwoLinesCross
EBuyMain = iAlligator;13,8,8,5,5,3,2,4;3
EBuySignal = iAlligator;13,8,8,5,5,3,2,4;2

iAlligator. Пересечение средней (красной) и медленной (синей)

EType = Sig_TwoLinesCross
EBuyMain = iAlligator;13,8,8,5,5,3,2,4;2
EBuySignal = iAlligator;13,8,8,5,5,3,2,4;1

iAlligator. Пересечение быстрой (зеленой) и медленной (синей)

EType = Sig_TwoLinesCross
EBuyMain = iAlligator;13,8,8,5,5,3,2,4;3
EBuySignal = iAlligator;13,8,8,5,5,3,2,4;1

iAO. Вход по экстремуму

EType = Sig_Extremums
EBuyMain = iAO;;0

iBearsPower/iBullsPower. Вход по экстремуму (покупка по Bulls, продажа по Bears)

EType = Sig_Extremums
EBuyMain = iBullsPower;13,0;0
ESellMain = iBearsPower;13,0;0 

iBands/iMA. Вход по пересечению скользящей средней полос Боллинджера

EType = Sig_TwoLinesCross
EBuyMain = iMA;1,0,0,0;0
EBuySignal = iBands;20,0,2,0;2,1

iCCI. Вход по пересечению уровня 

EType = Sig_Levels
EBuyMain = iCCI;14,5;0

ELevelMode = Lev_BuyLevel
ELevelBuy = -100
ELevelMid = 0

iDeMarker. Вход по пересечению уровня 

EType = Sig_Levels
EBuyMain = iDeMarker;14;0

ELevelMode = Lev_BuyLevel
ELevelBuy = 0.3
ELevelMid = 0.5

iEnvelopes/iMA. Вход по пересечению скользящей средней Envelopes

EType = Sig_TwoLinesCross
EBuyMain = iMA;1,0,0,0;0
EBuySignal = iEnvelopes;14,0,0,0,0.1;2,1

iForce. Вход по пересечению уровня 

EType = Sig_Levels
EBuyMain = iForce;13,0,0;0

ELevelMode = Lev_BuyLevel
ELevelBuy = 0.01
ELevelMid = 0.0

iFractals. Режим по стрелкам

EType = Sig_Arrows
EBuyMain = iFractals;;0,1

EShift = 3

iIchimoku. Пересечение тенкан и киджун

EType = Sig_TwoLinesCross
EBuyMain = iIchimoku;9,26,52;1
EBuySignal = iIchimoku;9,26,52;2

iIchimoku. Пересечение СпанА и СпанБ

EType = Sig_TwoLinesCross
EBuyMain = iIchimoku;9,26,52;3
EBuySignal = iIchimoku;9,26,52;4

iIchimoku. Экстремум тенкан

EType = Sig_Extremums
EBuyMain = iIchimoku;9,26,52;1

iMomentum. Вход по экстремуму

EType = Sig_Extremums
EBuyMain = iMomentum;14,0;0

iMFI. Вход по пересечению уровня 

EType = Sig_Levels
EBuyMain = iMFI;14;0

ELevelMode = Lev_BuyLevel
ELevelBuy = 20
ELevelMid = 50

iMA. Пересечение двух скользящих средних

EType = Sig_TwoLinesCross
EBuyMain = iMA;13,0,0,0;0
EBuySignal = iMA;21,0,0,0;0

iOsMA. Вход по экстремуму

EType = Sig_Extremums
EBuyMain = iOsMA;12,26,9,0;0

iMACD. Вход по пересечению гистограммы и сигнальной линии

EType = Sig_TwoLinesCross
EBuyMain = iMACD;12,26,9,0;0
EBuySignal = iMACD;12,26,9,0;1

iOBV. Вход по экстремуму

EType = Sig_Extremums
EBuyMain = iOBV;;0

EExtrLeft = 5
EExtrRight = 5

iSAR/iMA. Вход по пересечению скользящей средней и параболика 

EType = Sig_TwoLinesCross
EBuyMain = iMA;1,0,0,0;0
EBuySignal = iSAR;0.02,0.2;0

iRSI. Вход по пересечению уровня 

EType = Sig_Levels
EBuyMain = iRSI;14;0

ELevelMode = Lev_BuyLevel
ELevelBuy = 30
ELevelMid = 50

iRVI. Вход по пересечению главной и сигнальной линии

EType = Sig_TwoLinesCross
EBuyMain = iRVI;10;0
EBuySignal = iRVI;10;1

iStochastic. Вход по пересечению главной и сигнальной линии

EType = Sig_TwoLinesCross
EBuyMain = iStochastic;5,3,3,0,0;0
EBuySignal = iStochastic;5,3,3,0,0;1

iStochastic. Вход по пересечению уровня 

EType = Sig_Levels
EBuyMain = iStochastic;5,3,3,0,0;0

ELevelMode = Lev_BuyLevel
ELevelBuy = 20
ELevelMid = 50

iWPR. Вход по пересечению уровня

EType = Sig_Levels
EBuyMain = iWPR;14;0

ELevelMode = Lev_BuyLevel
ELevelBuy = -80
ELevelMid = -50

Примеры настроек сигналов входа с пользовательскими индикаторами

Для каждого из примеров имеется файл настроек. Файлы располагаются в папке additional_files/setup_examples/enter_signals/custom. В файле read.txt находится описание файлов, а сами файлы расположены в папке set_files.

По стрелкам

Индикатор imacross. По синим стрелкам покупка, по красным продажа.

EType = Sig_Arrows
EBuyMain = imacross;5,0,4,0,34,0,4,0;0,1

Пересечение двух линий

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

EType = Sig_TwoLinesCross
EBuyMain = imacol;25,21,1,0;0
EBuySignal = imacol;25,34,1,0;0

По цвету

Индикатор imacol. Покупка в начале синей полосы, продажа в начале красной полосы.

EType = Sig_Color
EBuyMain = imacol;25,21,1,0;1,2

По экстремуму

Индикатор imacol. Используется буфер 0, сплошная линия желтого цвета расположенная под синей и красными линиями

EType = Sig_Extremums
EBuyMain = imacol;25,21,1,0;0

По уровню

Индиктор ivhfvar2.

EType = Sig_Levels 
EBuyMain = ivhfvar2;14;0 

ELevelMode = Lev_BuyLevel
EBuyLevel = 0.1
EMidLevel = 0

Примеры настроек сигналов подтверждения трендом

Для каждого из примеров имеется файл настроек. Файлы располагаются в папке additional_files/setup_examples/trend_confirm. В файле read.txt находится описание файлов, а сами файлы расположены в папке set_files.

В качестве сигналов входа используется индикатора imacross:

EType = Sig_Arrows
EBuyMain = imacross;5,0,4,0,34,0,4,0;0,1

По направлению последней стрелки

T1Type = T_LastArrow  
T1BuyMain = imacross;50,0,4,0,200,0,4,0;0,1

По положению двух линий 

T1Type = T_TwoLinesPos
T1BuyMain = iMA;50,0,0,0;0
T1BuySignal = iMA;200,0,0,0;0

По уровню

T1Type = T_Levels
T1BuyMain = iRSI;14,0,0

T1LevelMode = T1LevelBuy
T1LevelBuy = 50
T1LevelMid = 50

По наклону

T1Type = T_Incline
T1BuyMain = iMA;50,0,0,0;0

По цвету

T1Type = T_Color
T1BuyMain = imacol;25,21,1,0;1,2

Примеры настроек сигналов подтверждения волатильностью

Для каждого из примеров имеется файл настроек. Файлы располагаются в папке additional_files/setup_examples/volatility_confirm. В файле read.txt находится описание файлов, а сами файлы расположены в папке set_files.

В качестве сигналов входа используется индикатора imacross:

EType = Sig_Arrows
EBuyMain = imacross;5,0,4,0,34,0,4,0;0,1

По положению двух линий

V1Type = V_TwoLinesPos
V1Main = iStdDev;20,0,0,0;0
V1Signal = iStdDev;40,0,0,0;0

По уровеню

V1Type = V_Level
V1Main = iADX;20,0;0
V1Level = 20   

По наклону

V1Type = V_Incline
V1Main = iATR;14;0

По цвету

V1Type = V_Color
V1Main = irangesemafor;20;0

Описание всех параметров

Таблица 2. Все параметры эксперта

Название праметраНазначение параметра
TimeFrameРабочий таймфрейм эксперта. 0 - таймфрейм графика или выбранный в тестере или значение, 1, 5, 15, 30, 60, 240, 1440 (D1), 10080 (W1), 43200 (MN1). В тестере W1 и MN1 не используются
MagicИдентификатор ордеров "мэджик". Если на одном символе работает несколько экспертов, у них должно быть разное значение мэджика, чтобы каждый эксперт работал только со своими ордерами
EachTickОсновная торговая часть срабатывает на каждом тике, иначе раз на бар. Поскольку индикаторы бывают очень разные, есть такие индикаторы, у которых значение на формирующемся баре не меняется, нужно смотреть значения на формирующемся баре, но можно выполнять это раз на бар, что значительно экономит время тестирования и оптимизации
Enter Signals
ETypeТип торгового сигнала: Sig_OFF - выключено, Sig_AlwaysExists - всегда включены, Sig_Arrows - стрелки, Sig_TwoLinesCross - две линии (быстрая и медленная), Sig_Levels - пересечение уровня, Sig_Extremums - экстремум, Sig_Color - смена цвета
EBuyMainСтрока для ввода параметров индикатора покупки
EBuySignalСтрока для ввода параметров второго индикатора покупки (используется для сигналов пересечения двух линий)
ESellMainСтрока для ввода параметров индикатора продажи
ESellSignalСтрока для ввода параметров второго индикатора продажи (используется для сигналов пересечения двух линий)
 
ELevelModeВариант использования переменных определяющих уровни: Lev_BothLevels - используется обе переменные ELevelBuy и ELevelSell, Lev_BuyLevel - используется переменная ELevelBuy, второй уровень рассчитывается симметрично с использованием переменной ELevelMid, Lev_SellLevel - используется переменная ELevelSell, второй уровень рассчитывается симметрично с использованием переменной ELevelMid, Lev_MidLevel - для покупки и продажи используется одна переменная ELevelMid
ELevelBuyУровень покупки
ELevelSellУровень продажи
ELevelMidУровень "середины" для расчета второго уровня или использующийся самостоятельно в зависимости от варианта ELevelMode
 
EExtrModeВариант использования переменных определяющих параметры экстремума: Extr_LeftRight - используется обе переменные EExtrLeft и EExtrRight, Extr_Left - используется только переменная EExtrLeft, экстремум симметричен, Extr_Right - используется только переменная EExtrRight, экстремум симметричен
EExtrLeftКоличество баров слева от вершины
EExtrRightКоличество баров справа от вершины
 
EEmptyValue1Переменная используется при EType = Sig_Color. Раскрашивание индикаторов выполняется за счет того, что в какие-то промежутки времени индикаторный буфер имеет значения, а в какие-то не имеет. На самом деле буфер всегда имеет значения, но когда он не отрисовывается, он имеет особые значения, чаще всего это значение константы EMPTY_VALUE (значение 2147483647) или 0. Выполняется проверка значения индикатора на равенство одной переменной и второй, если не равно ни одной из переменных, значит, линия отрисовывается. Если на одном баре линия отрисовывается, а на предыдущем нет - значит есть торговый сигнал.
EEmptyValue2См. описание EEmptyValue1
 
EInvertПереворот сигналов. Сигналы покупки становятся сигналами продажи и наоборот
EShiftБар на котором проверяются индикаторы. 1 - первый сформированный, рекомендуется. 0 - формирующийся, не рекомендуется, по мере формирования бара сигнал может исчезнуть
ECloseOnRevЗакрывать противоположные ордера по сигналу входа
ECheckProfitПри закрытии проверять прибыль ордеров, закрывать только прибыльные
EProfitValueПрибыль в пунктах
ECheckLossПри закрытии проверять прибыль ордеров, закрывать только убыточные
ELossValueУбыток в пунктах
Trend Confirm - 1
T1TypeТип подтверждения по тренду: T_LastArrow - по направлению последней стрелки стрелочного индикатора, T_TwoLinesPos - по положению двух линий, T_Levels - по положению линии относительно уровня, T_Incline - по наклону, T_Color - по цвету
T1SymbolСимвол по которому рассчитывается индикатор
T1TimeFrameТаймфрейм про которому рассчитывается индикатор
T1BuyMainСтрока с параметрами индикатора для подтверждения покупки
T1BuySignalСтрока с параметрами второго индикатора для подтверждения покупки (для режима T_TwoLinesPos)
T1SellMainСтрока с параметрами индикатора для подтверждения продажи
T1SellSignalСтрока с параметрами второго индикатора для подтверждения продажи (для режима T_TwoLinesPos)
 
T1LevelModeВариант использования переменных определяющих уровни: Lev_BothLevels - используется обе переменные T1LevelBuy и T1LevelSell, Lev_BuyLevel - используется переменная T1LevelBuy, второй уровень рассчитывается симметрично с использованием переменной T1LevelMid, Lev_SellLevel - используется переменная T1LevelSell, второй уровень рассчитывается симметрично с использованием переменной T1LevelMid, Lev_MidLevel - для покупки и продажи используется одна переменная T1LevelMid
T1LevelBuyУровень покупки
T1LevelSellУровень продажи
T1LevelMidУровень "середины" для расчета второго уровня или использующийся самостоятельно в зависимости от варианта ELevelMode
 
T1IncBarsОтступ в брах для определения наклона для режима T_Incline
T1EmptyValue1"Пустое" значение-1 для режима T_Color
T1EmptyValue2"Пустое" значение-2 для режима T_Color
 
T1InvertПереворот сигналов. Сигналы покупки становятся сигналами продажи и наоборот
T1ShiftБар на котором проверяются индикаторы. 1 - первый сформированный, рекомендуется. 0 - формирующийся, не рекомендуется, по мере формирования бара сигнал может исчезнуть
Trend Confirm - 2
Параметры второго индикатора подтверждения по тренду. См. описание переменных раздела Trend Confirm - 1
Trend Confirm - 3
Параметры третьего индикатора подтверждения по тренду. См. описание переменных раздела Trend Confirm - 1
Trend Confirm - 4
Параметры четвертого индикатора подтверждения по тренду. См. описание переменных раздела Trend Confirm - 1
Volatility - 1
V1TypeВариант использования индикатора подтверждения волатильности: V_OFF - выключен, V_TwoLinesPos - положение двух линий, V_Level - положение относительно уровня, V_Incline - наклон, V_Color - цвет
V1SymbolСимвол на котором рассчитывается индикатор
V1TimeFrameТаймфрейм на котором рассчитывается индикатор
V1MainСтрока с параметрами индикатора
V1Signal
 
V1LevelУровень для режима V_Level
V1IncBarsСмещение для режима V_TwoLinesPos
V1EmptyValue1"Пустое" значение-1 для режима V_Color
V1EmptyValue2"Пустое" значение-2 для режима V_Color
 
V1InvertПереворот сигналов. Сигналы покупки становятся сигналами продажи и наоборот
V1ShiftБар на котором проверяются индикаторы. 1 - первый сформированный, рекомендуется. 0 - формирующийся, не рекомендуется, по мере формирования бара сигнал может исчезнуть
Volatility - 2
Параметры второго индикатора подтверждения волатильностью. См. описание переменных раздела Volatility - 1
Volatility - 3
Параметры третьего индикатора подтверждения волатильностью. См. описание переменных раздела Volatility - 1
Volatility - 4
Параметры четвертого индикатора подтверждения волатильностью. См. описание переменных раздела Volatility - 1
Close Signals
Параметры сигналов закрытия. Набор параметров полностью идентичен набору параметров индикатора открытия. См. описание параметров раздела Enter Signals
Optimization
Opt01_ValueПеременные для значений оптимизируемых параметров
Opt02_Value
Opt03_Value
Opt04_Value
Opt05_Value
Opt06_Value
Opt07_Value
Opt08_Value
Opt09_Value
Opt10_Value
 
Opt01_SetToВ этих переменных указывается имя переменной с параметрами индикатора и номер параметра индикатора, значение которого будет подменяться на значения соответствующей оптимизируемой переменной. Пары "имя"-"номер" перечисляются чрез знак ",", в паре имя и номер параметра разделяются знаком "-". Пример: "EBuyMain-1,ESellMain-1" - для индикаторов BuyMain и SellMain значение первого параметра будет подменено значением переменной Opt01_Value. Возможно указание следующих переменных: EBuyMain, EBuySignal, ESSellMain, ESellSignal, CBuyMain, CBuySignal, CSellMain, CSellSignal, T1BuyMain, T1BuySignal, T1SellMain, T1SellSignal, T2BuyMain, T2BuySignal, T2SellMain, T2SellSignal, T3BuyMain, T3BuySignal, T3SellMain, T3SellSignal, T4BuyMain, T4BuySignal, T4SellMain, T4SellSignal, V1Main, V1Signal, V2Main, V2Signal, V3Main, V3Signal, V4Main, V4Signal, TS_Buyind, TS_Sellind, SL_Buyind, SL_Sellind, TP_Buyind, TP_Sellind. Отсчет параметров выполняется с 1.
Opt02_SetTo
Opt03_SetTo
Opt04_SetTo
Opt05_SetTo
Opt06_SetTo
Opt07_SetTo
Opt08_SetTo
Opt09_SetTo
Opt10_SetTo
Lot
MM_MethodСпособ определения лота: L_Fixed - фиксированный, L_Proportional - пропорциональный средствам, L_Fractional - фракционный
MM_LotsОбъем ордера при фиксированном MMMethod=Fixed
MM_RiskДоля средств при MMethod=Proportional (от 0 до 1)
MM_StartMeansНачальные средства для MMMethod=Fractional. При превышении начальный средств на величину MeansStep лот увеличивается на LotsStep
MM_MeansStepВеличина прироста средств при которой увеличивается лот
MM_LotsStepШаг увеличения лота
MM_MeansTypeТип средств используемых при расчета лота: M_FreeMargin - свободные средства, M_Balance - баланс, M_Equity - эквити.
Order
OStopLossTypeТип стоплосс: SL_StopLoss - по переменной OStopLoss, SL_ByIndicator - стоплосс по индикатору (используется раздел параметров StopLoss by Indicator)
OStopLossСтоплосс в пунктах. 0 - без стоплосс
OTakeProfitTypeТип тейкпрофит: TP_TakeProfit - по переменной OTakeProfit, TP_ByIndicator - тейкпрофит по индикатору (используется раздел параметров TakeProfit by Indicator)
OTakeProfitТейкпрофит в пунктах. 0 - без тейкпрофит
Count
CNMaxTotalCountМаксимальное количество открытых ордеров (buy и sell вместе). -1 - не ограничено
CNMaxBuyCountМаксимальное количество открытых ордеров buy. -1 - не ограничено
CNMaxSellCountМаксимальное количество открытых ордеров sell. -1 - не ограничено
CNOneSideДопускаются открытые ордера только в одном направлении
StopLoss by Indicator
SL_TimeFrameТаймфрейм на котором рассчитывается индикатор для стоплосса
SL_IndModeРежим использования индикатора: SL_Value - величина стоплосса (например, индикатор ATR), SL_Price - непосредственно ценовое значение (например, полосы Боллинджера)
SL_IndСтрока параметров индикатора
SL_KКоэффициент умножения значения
SL_AddДобавка в пунктах
SL_MinValМинимальная величина. -1 - выключено, не корректируется
SL_MaxValМаксимальная величина. -1 - выключено, не корректируется
SL_ShiftБар с которого берется значение индикатора: 0 - формирующийся бар, 1 - сформированный
TakeProfit by Indicator
TP_TimeFrameТаймфрейм на котором рассчитывается индикатор для тейпрофита
TP_IndModeРежим использования индикатора: TP_Value - величина тейкпфрофита (например, индикатор ATR), TP_Price - непосредственно ценовое значение (например, полосы Боллинджера)
TP_IndСтрока параметров индикатора
TP_KКоэффициент умножения значения для режима TS_Value
TP_AddДобавка в пунктах для обеих режимов
TP_MinValМинимальная величина уровня. -1 - выключено, не корректируется
TP_MaxValМаксимальная величина. -1 - выключено, не корректируется
TP_ShiftБар с которого берется значение индикатора: 0 - формирующийся бар, 1 - сформированный
Martin
Mart_MethodВключение функции и выбор метода прогрессии лота
Mart_KКоэффициент увеличения лота (при методе Mult)
Mart_MaxCntМаксимальный размер последовательности увеличения лота
Mart_ProfVariantВариант определения того, что последовательность увеличения лота закончена: Mart_LastProfit - последний ордер закрыт с прибылью, Mart_SumProfit - суммарная прибыль за всю последовательность прогрессии положительна. Использовать Mart_SumProfit только если разрешено не более одного ордера
Mart_OnEndВариант действий при достижении максимального лота прогрессии, но прибыль не получена: Mart_KeepLast - продолжать с максимальным лотом, Mart_BeginNew - начать последовательность заново
Mart_TogetherПрогрессия лота для покупок и продаж совместно (true) или раздельно (false)
Ilan
Ilan_ONВключение режима "Илан"
Ilan_MaxCntРазмер последовательности (количество ордеров)
Ilan_BuySellДопускается одновременное существование ордеров buy и sell
Ilan_AddLevelУровень убытка последнего ордера при котором выполняется открытие следующего ордера
Ilan_AddLevelKКоэффициент увеличения уровня
Ilan_TakeProfitТейкпрофит группы ордеров одного направления от уровня нулевой прибыли
Ilan_UseSignalsДобавочные ордера открываются только при наличие торгового сигнала
Ilan_LotsMethodВключение прогрессии лота: Mult - умножение на Ilan_LotsK, Add - прибавление начального лота
Ilan_LotsKКоэффициент увеличения лота (при методе Mult)
Ilan_EachTickПроверка условий выполняется на каждом тике или на каждом баре
Stop Reverse
SR_ONВключение режима Stop-Revers
SR_MaxCntРазмер последовательности (количество ордеров)
SR_LotsKКоэффициент умножения лота
SR_StopLossСтоплосс переворотных ордеров. -1 - копируется значение стоплосс с предыдущего ордера. -2 - Копируется значение параметра OStopLoss
SR_TakeProfitТейкпрофит переворотных ордеров. -1 - копируется значение своего стоплосса, умножается на SR_TakeProfitMult и прибавляется SR_TakeProfitAdd. -2 - Копируется значение параметра OTakeProfit
SR_TPMultТейкпрофит рассчитывается как умножение стоплосса на значение этой переменной
SR_TPAddДобавка к тейкпрофиту в пунктах
Trade Day Sessions
TMDayTimeONВключение проверки времени дня. Для выключения отдельной сессии надо ввести одинаковое время начала и окончания сессии, по умолчанию сессия 2 и 3 выключены
TMStartHour_1Час начала сессии 1
TMStartMinute_1Минуты начала сессии 1
TMEndHour_1Час окончания сессии 1
TMEndMinute_1Минуты окончания сессии 1
TMStartHour_2Параметры сессии 2
TMStartMinute_2
TMEndHour_2
TMEndMinute_2
TMStartHour_3Параметры сессии 3
TMStartMinute_3
TMEndHour_3
TMEndMinute_3
Orders per day or session
TMMaxDayTotalCountМаксимальное количество ордеров за день (если выключено DayTimeON) или одну сессию (если включено DayTimeON) (buy и sell вместе). -1 - не ограничено
TMMaxDayBuyCountМаксимальное количество ордеров buy за день или сессию. -1 - не ограничено
TMMaxDaySellCountМаксимальное количество ордеров sell за день или сессию. -1 - не ограничено
TMForFirtsOnlyОграничение ордеров в день действует только для начальных ордеров последовательности (если используется Мартин)
Trade Days
TMSundayРазрешение работать в воскресенье
TMMondayРазрешение работать в понедельник
TMTuesdayРазрешение работать во вторник
TMWednesdayРазрешение работать в среду
TMThursdayРазрешение работать в четверг
TMFridayРазрешение работать в пятницу
TMSaturdayРазрешение работать в субботу
Trade Week
TMTradeWeekONВключение использования торговой недели
TMStartDayOfWeekДень недели начала торговли. 1 - понедельник... 5 - пятница. Суббота - 6, Воскресенье - 0.
TMStartHourЧас начала работы.
TMStartMinuteМинуты начала работы.
TMEndDayOfWeekДень недели окончания работы. 1 - понедельник... 5 - пятница. Суббота - 6, Воскресенье - 0.
TMEndHourЧас окончания работы.
TMEndMinuteМинуты окончания работы.
Trailing by Indicator
TS_ONВключение трейлинга по индикатору
TS_TimeFrameТаймфрейм индикатор для трейлинга
TS_IndModeРежим использования индикатора: TS_Value - величина стоплосса (например, индикатор ATR), TS_Price - непосредственно ценовое значение (например, полосы Боллинджера)
TS_IndСтрока параметров индикатора
TS_KКоэффициент умножения значения для режима TS_Value
TS_AddДобавка в пунктах для обеих режимов
TS_InProfitМодифицировать стоплосс только если он встает в безубыток или прибыль
TS_MinValМинимальная величина уровня. -1 - выключено, не корректируется
TS_MaxValМаксимальная величина. -1 - выключено, не корректируется
TS_ShiftБар с которого берется значение индикатора: 0 - формирующийся, 1 - сформированный
TS_FirstOnlyТрейлинг срабатывает только для первого ордера последовательности увеличения лота
TS_EachTickФункция срабатывает на каждом тике или на каждом баре
TS_CheckPriceПроверяется положение цены относительно индикатора, трейлинг срабатывает если цена выше индикатора для бай и если ниже индикатора для селл
Trailing
TR_ONВключение функции трейлинга
TR_StartПрибыль ордера при которой начинает перемещаться стоплосс
TR_LevelУровень от текущей цены (в пунктах) на котором тралится стоплосс. При значении -1 равно TR_Start (получается стандартный трейлинг)
TR_StepШаг трейлинга (минимальная дистанция в пунктах на которую "перепрыгивает" стоплосс)
TR_FirstOnlyТрейлинг срабатывает только для первого ордера последовательности увеличения лота
TR_EachTickВыполнять проверку на необходимость перемещения стоплосса на каждом тике, при false - раз на бар
Break Even
BE_ONВключение функции безубытка
BE_StartПрибыль ордера при которой перемещается стоплосс
BE_LevelУровень от текущей цены (в пунктах) на который ставится стоплосс. При значении -1 равно BE_Start
BE_FirstOnlyБезубыток срабатывает только для первого ордера последовательности увеличения лота
BE_EachTickВыполнять проверку на необходимость перемещения стоплосса на каждом тике, при false - раз на бар
Other
Auto5DigitsЕсли true, то при работе на 5-ти или 3-ех значных котировках, значения всех параметров измеряющихся в пунктах умножается на 10
MWModeУстановка стоплосс и тейкпрофит выполняется после открытия ордера. Есть некоторые брокеры, не разрешают открывать ордера с заранее установленными стоплоссом и тейкпрофитом, необходимо открыть ордер без столплосс и тейкпрофит и затем установить их.