2

The Expert Advisor trades breakouts and bounces off price levels. It determines these levels on the basis of candlesticks, fractals or sets them at the pre-determined distance from the current price. The “StartOrders” variable allows setting a type of levels, at which pending orders are placed, by the closest fractals, candlesticks or setting the levels at a distance expressed in points. (1 – Candle, 2 – Fractals, 3 – ATR >3 points).

Example:

If StartOrders = 1, then the Expert Advisor will place a Buy Stop order at the high of one of the previous candlesticks (within a set of candles used to place the order, i.e. between a StartCandle and a EndCandle). It is required that the high is not closer than the minimum possible STOPLEVEL. Sell Stop order will be placed at the low of one of the previous candlesticks.

Afterwards these open orders will be accompanied by a trailing stop, which value can be set not only in a fixed number of points, but also in candles and fractals. Trailing will be always enabled, if only all orders of a series have a profit in total and hit the break-even point common for the whole series. Thus, the series of orders will be closed, if only the whole series is profitable.

Example:

If TrailingStop = 2, then the Expert Advisor will set a stop-loss of sell orders at the level of appropriate upper fractal (if only the stop-loss can be set below a break-even point of sell orders and not closer than the minimum possible STOPLEVEL). A stop-loss of buy orders will be set at the level of appropriate lower fractal, but not lower than a break-even point that is common for all buy orders of the series.

Settings of the Expert Advisor:

extern bool    BUY                    = true;  // торговать 
extern bool    SELL                   = true;  // торговать
 
extern string  ______________________ = "";
extern string  parameters_open_orders = "0-off  1-Candle  2-Fractals  >2-п";
extern int     startOrders_First      = 2;      // тип открытия первого ордера "-1-МА; 0-off;  1-Candle;  2-Fractals; >2-п";
extern int     startOrders_Second     = 1;      // тип открытия последующих ордеров "-1-МА; 0-off;  1-Candle;  2-Fractals; >2-п";
extern int     TF_Open_First          = 15;     // таймфрейм свечей или фракталов для открытия первого ордера
extern int     TF_Open_Second         = 15;     // таймфрейм свечей или фракталов для открытия усредняющего ордера (второго и последующих)
extern int     deltaOpen              = 5;      // отступ от фрактала или свечи при определении цены открытия ордера. (offset from the fractal or candles)
 
extern string  ____________________ = "";
extern int     StepOrders_1         = 20;     // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_2         = 40;     // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_3         = 60;     // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_4         = 80;     // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_5         = 100;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_6         = 120;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_7         = 140;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_8         = 160;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_9         = 180;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_10        = 200;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_11        = 220;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
extern int     StepOrders_12        = 250;    // шаг - выставлять ордер не ближе чем Step (step Thrall, moving not less than Step n )
 
extern string  ___________________  = "тралл одиночного ордера";
extern string  parameters_single_trailing  = "0-off  1-Candle  2-Fractals  >2-п";
extern int     single_trailingStop         = 1;      // тралл одиночного ордера, отключается, когда ордера перешли в портфельный тралл или безубыток
extern int     single_TF_Tralling          = 15;     // таймфрейм свечей или фракталов для тралла
extern int     single_deltaTralling        = 0;      // отступ от фрактала или свечи при определении стоплосса. (offset from the fractal or candles)
extern int     single_StepTralling         = 2;      // шаг - перемещать стоплосс не ближе чем Step (step Thrall, moving not less than Step n )
extern int     single_DeltaProfit          = 0;      // минимальный уровень прибыли. (отступ от безубытка в пунктах
extern bool    TrallLoss                   = false;  // тралл ордеров в убыточной зоне
 
extern string  __________________   = "Тралл по портфелю";
extern string  parameters_trailing  = "0-off  1-Candle  2-Fractals  >2-п";
extern bool    VirtualTS            = false;  // выставлять виртуальный или реальный trailingStop
extern int     trailingStop         = 2;      // тралл, если "0-off  1-Candle  2-Fractals >2-п";
extern int     TF_Tralling          = 15;     // таймфрейм свечей или фракталов для тралла
extern int     deltaTralling        = 0;      // отступ от фрактала или свечи при определении стоплосса. (offset from the fractal or candles)
extern int     StepTralling         = 1;      // шаг - перемещать стоплосс не ближе чем Step (step Thrall, moving not less than Step n )
extern int     DeltaProfit          = 0;      // минимальный уровень прибыли. (отступ от безубытка в пунктах
 
extern string  _________________    = "";
extern string  parameters_NoLoss    = "0-off  1-Candle  2-Fractals  >2-п";
extern int     NoLoss               = 1;      // тралл, если "0-off  1-Candle  2-Fractals >2-п";
extern int     TF_NoLoss            = 15;     // таймфрейм свечей или фракталов для тралла
extern int     deltaNoLoss          = 5;      // отступ от фрактала или свечи при определении стоплосса. (offset from the fractal or candles)
extern int     ProfitNoLoss         = 5;      // минимальный уровень прибыли. (отступ от безубытка в пунктах
 
extern string  ________________     = "";
extern double  StopLoss             = 0;        //начальный стоплосс, если "0-off  1-Candle  2-Fractals >2-п"
extern int     deltaStopLoss        = 0;        // отступ от фрактала или свечи при определении стоплосса.
 
extern string  _______________      = "";
extern bool    VirtualTP            = true;     //выставлять виртуальный или реальный ТП
extern double  TakeProfit           = 0;        //закрывать все ордера при получении профита в пипсах 0 (откл)
extern double  ProfitStop           = 0;        //закрывать все ордера при получении общего профита в валюте депозита 0 (откл)
extern double  LossStop             = 0;        //закрывать все ордера при получении общего убытка в валюте депозита 0 (откл)
extern double  ProfitPercentStop    = 10;       //закрывать все ордера при получении общего профита в процентах от депозита 0 (откл) (работает только при наличии встречных ордеров)
 
extern string  ______________       = "";
extern double  Line_Balance_1       = 1000;     //первая координата линейки
extern double  Line_Lot_1           = 0.01;     //первая координата линейки
extern double  Line_Balance_2       = 10000;    //вторая координата линейки
extern double  Line_Lot_2           = 1;        //вторая координата линейки
extern double  Line_Balance_3       = 100000;   //третья координата линейки
extern double  Line_Lot_3           = 5;        //третья координата линейки
extern double  MultiplyLot          = 1.5;      // умножать лот
extern int     OkrLot               = 2;
 
extern string  ____________          = "";
extern int     TimeStart            = 0 ,       //ограничение времени работы советника
               TimeEnd              = 24;       //не открываем ордера и закрываем отложки если время не между TimeStart и TimeEnd
 
extern string  ___________          = "";
extern int     StartCandle          = 1;        // первая свеча, которая учавствует в торговле
extern int     EndCandle            = 5;        // последняя свеча, которая учавствует в торговле
extern string  __________           = "";
extern int     MaxOrders            = 100;      //ограничение кол-ва ордеров
extern int     slippage             = 5;        //Максимально допустимое отклонение цены для рыночных ордеров
extern int     Magic                = -1;       //если -1 то все магики
extern bool    DrawInfo             = true;     //Выводить или нет информацию на экран.
extern bool    DrawOrders           = true;     //Выводить или нет линии ордеров на экран.
extern bool    InfoLeft             = true;     //вывод информации слева/справа
 
extern color   TextColor            = Aqua;     //цвет текста
extern color   FonColor             = DimGray;  //цвет фона
extern color   RedColor             = Red;      //цвет -
extern color   GreenColor           = Lime;     //цвет +
 
extern string  comment              = "Trailing Stop 25";
extern int     Key                  = 182468;
 
extern bool    неУвелчиватьЛот      = true;     //начальный лот увеличивается в завсмости от кол-ва противоположных ордеров (лок)

A new method, which is called a “proportion of lots” and used to calculate lot sizes, has been introduced in the latest versions of the Expert Advisor. Its principle is as follows: when 3 coordinates (balance – lot) are given, a lot size of the current order will be calculated based on the current balance.

линейка лотов

Captions:

Proportion of lots

Lot size is calculated based on a straight line: if we know two coordinates (100 0,1 и 5000 10), we can calculate size of lot for any deposit.

The Expert Advisor will increase the values of settings set in points by 10 times for 5-digit brokers.

Recommendations:

It is desirable that you will run the Expert Advisor on several currency pairs (from 3 to 9) at once. It was tested on EURGBP, AUDCAD, AUDJPY, AUDNZD, CADCHF, AUDUSD, EURUSD, CADJPY, EURJPY, but you can try any other pairs. It is important that the price doesn’t make large pullbackless movements: you should choose those pairs that pull back not less that 20-30% of the previous move during 1 or 2 days. A large number of currency pairs can result in blocking your Expert Advisor by some dealing centers, which limit a maximum number of open trades at a time. A minimum deposit must not be less than $500 ($100 is better) for micro-lots (0,01).

You can ask your questions about the Expert Advisor’s operation via a private chat room. To log in to the chat room, send your request via Skype: mqlcmillion, after you purchase the Expert Advisor.

To get the Expert Advisor, you need to pay its cost by one of the methods specified on the Payment web-page and send an e-mail at cmillion@narod.ru, which should contain the name of the Expert Advisor and a payment option. After doing that, your order will be immediately sent to you. To log in to the general chat room, send your request via Skype: mqlcmillion, after you purchase the Expert Advisor.

The Expert Advisor has been always improving. You’ll be getting its future versions in the private chat room or via e-mail by sending a request for free.

Several live Strategy Tester Reports and trading statements are provided below:

ea_ts_d1_supertrend1

Снимок

21-1ts20 real

It is possible now to perform such tests thanks to the “proportion of lots”. I hope you will withdraw your profit from your live account earlier than your broker realizes what has happened.

25 line 3 usdcad2011-2012 v25.3

Price — $500

 Buy

========================================