МТС «EA_NET»
Советник без отложенных ордеров, все происходит с рынка.
Если очень грубо, то работает так:
Цена идет вверх ставим Buy, развернулась и прошла половину шага сетки, ставим Sell.
В результате создается сетка ордеров в разных направлениях.
Вариантов закрытия десятки, все перечислит не смогу, но в процессе думаю разберемся.
Magic ордеров Buy и Sell выставляются отдельно.
Это для того, чтобы советник мог считать прибыль закрытия ProfitClose по Buy и по Sell отдельно.
Как прибыль отдельного направления ордеров достигает ProfitClose в валюте депозита, все ордера данного направления закроются.
Если установите один и тот же Magic, то прибыль закрытия ProfitClose будет считаться по всем ордерам.
Как общая прибыль достигает ProfitClose в валюте депозита, все ордера закроются.
Параметры:
extern bool Buy = true; //разрешить сделки Buy extern bool Sell = true; //разрешить сделки Sell extern int MagicBuy = 888; //уникальный номер ордеров этого советника для ордеров Buy extern int MagicSell = 777; //уникальный номер ордеров этого советника для ордеров Sell extern int STEP = 0, //если 0 то по размеру среднечасовой свечи Stoploss = 0, Takeprofit = 0; extern bool level.of.zero = true; //включать тралл и безубыток от уровня общего безубытка extern int TrailingStop = 0, NoLoss = 0; //перевод в безубыток extern double FixLot = 0.1; //если=0 то лот будет расчитан как процент от свободных средств по risk % extern int DigitsLot = 1; //кол-во знаков после запятой в размере лота (2 - 0,01) (1 - 0,1) extern int risk = 5; extern double K_Lot = 1.0; //увеличение лота extern double ProfitClose = 20; //закрывать все ордера при получении профита extern double TrailingPercent = 20; //если 0 то ордера закрываются по ProfitClose иначе они тралятся, //начиная от ProfitClose с откатом в TrailingPercent процентах от текущей прибыли extern int slippage = 1; //Максимально допустимое отклонение цены для рыночных ордеров extern int TimeStart = 0 , //ограничение времени работы советника TimeEnd = 24; //не открываем ордера и закрываем отложки если время не между TimeStart и TimeEnd extern double UpBuy = 0; //верхний уровень выставления ордеров Buy (выше установить Buy нельзя) Если 0, то ограничение отсутствует extern double DnBuy = 0; //нижний уровень выставления ордеров Buy (ниже установить Buy нельзя) Если 0, то ограничение отсутствует extern double UpSell = 0; //верхний уровень выставления ордеров Sell (выше установить Sell нельзя) Если 0, то ограничение отсутствует extern double DnSell = 0; //нижний уровень выставления ордеров Sell (ниже установить Sell нельзя) Если 0, то ограничение отсутствует extern bool DrawInfo = true; //вывод информации на экран |
Установив level.of.zero = true; тралл TrailingStop и безубыток NoLoss будут расчитаны от уровня общего безубытка каждого направления.
если level.of.zero = false, то тралл и безубыток будут считаться для каждого отдельного ордера.
Лот может быть фиксированным, для этого значение FixLot должно быть больше 0, иначе лот будет рассчитан, как процент от свободных средств.
Каждый последующий лот отдельного направления может быть увеличен на коэффициент K_Lot
Ордера открываются только в промежутке времени с TimeStart по TimeEnd, но если серия не закрыта, то ордера могут открываться до закрытия серии.
Параметры UpBuy, DnBuy, UpSell,DnSell ограничивают диапазон ордеров Buy и Sell.
Советник условно бесплатный. Вы можете использовать его в тестере и на демо счетах без всяких ограничений. Для работы на реальном счете нужен ключ. Подробнее….
На форуме МТ5 по данному советнику есть тема, в которой вы сможете найти более подробное описание его работы, обсуждение и все сделанные доработки.