MTS “EA_TrailingStop”
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:
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.
Price — $500
========================================