extern string s8 = " ----- Сессия 8 ------ ";
extern bool Session8 = True; //
extern int TimeSession8 = 21; //начало 8 сессии
extern int DeltaPrice8 = 20; //отступ от цены открытия сессии
extern int TakeProfit8 = 25; //если= 0, то нет
extern int StopLoss8 = 0;
extern int Reverse8 = False; // False - выставляются ордера BuyStop и SellStop. True - BuyLimit и SellLimit
//+------------------------------------------------------------------+
extern string sTP = " ---- Параметры Торговли ---- ";
extern bool balance = true; // Использовать фиксировный огрничитель баланса
extern double freebalance = 1000.0; // Количство огрничения блананса при balance = true
extern double ReservDepo = 65; // резервирует % от баланса при balance = false
extern double LotMax = 10.0; // максимальный объем лота
extern double GeneralLot = 0.1; // если = 0, то выставляется как % от фактического баланса
extern double GeneralPercent = 1; // работает если GeneralLot = 0
// Общий TP для портфельного закрытия ордеров. Если GeneralTP = 0, то Общий TP расчитывается из TP активных сессий
extern int GeneralTP = 30;
extern double KM = 1.5; // коэффициент увеличения лота (Multiplier)
extern int LotKM = 4; // выставлять после этого ордера c KM
extern bool ViewZone = true; // Рисовать Зону 0
extern int Zone0 = 15; // Зона запрета на открытие ордеров с KM. Если 0, то запрета нет
extern int DistanceKM = 20; // Минимальное расстояние между открытыми ордерами с KM за пределами зоны 0. Если 0, то не используется
extern int Magic = 123321;
extern string sProgress = "Метод увеличения лота для коэффициента KM. Значения 0 - 3";
extern string sProgr1 = "0 - Не использовать; 1 - Геометрическая прогрессия; 2 - Арифметическая; 3 - Фибоначчи";
extern int ProgressWay = 1; // Метод прогрессии для KM1
//extern int ProgressWay2 = 0; // Метод прогрессии для KM2
extern bool DeletePending = False; // True - Если ордер открылся, то удалять противоположный отложник
extern bool CloseBuySell = True; // True - Ордера Buy и Sell закрываются вместе. False - по отдельности
extern bool CloseWithChoke = False; // True - Ордера компенсаторов закрываются вместе с основными
//+------------------------------------------------------------------+
extern int Slippage = 3;
extern string sFilters = " --- Фильтры и ограничения ---";
extern string AboutDistance = "Минимальная дистанция между ордерами в пунктах; если 0 - фильтр отключен. Фильтр не позволяет открыться ордеру, если он ближе FDistance пунктов к открытому.";
extern int FDistance = 0; // минимальная дистанция между ордерами в пунктах; если 0 - фильтр отключен
extern string sCP = "Закрыть все ордера, если суммарный профит равен или больше этого значения; если 0, то не учитывается";
extern double CloseProfit = 0; // закрыть все ордера, если суммарный профит равен или больше этого значения; если 0, то не учитывается
extern string sPP = "True - частично закрываем ордер (Фиксируем прибыль) если профит достиг 50% от потенциальной прибыли";
extern bool PartialProfit = false; // Частично закрывать профитные ордера
extern string AboutxDrop = "Просадка в процентах, после чего закрывать самый просевший ордер; если 0 - просадка не котролируется";
extern int xDrop = 35; // просадка в процентах после чего закрывать ордер если 0 просадка не котролируется
extern bool PointDrop = false;
extern int PartialDrop = 4; // Самый просевший ордер закрывается частично по 1/4; диапазон 1 - 5; 1 - закрывается полностью.
//---- Ограничения по количеству ордеров и по размеру лота ----
//---- Добавил LotStop и возможность обрезать лоты до LotCir (Trade = true) либо не выставлять ордера (Trade = false).
//---- Если LotStop = 0, торгуем без ограничений.
extern string AboutLotStop = "Ограничение по количеству открываемых ордеров; если 0 - ограничений нет";
extern int LotStop = 7; //после этого ордера выставлять LotCir
extern string sTradeAllowed = "При LotStop > 0: True - открываем ордера лотом LotCir; False - не выставляем ордера";
extern bool TradeAllowed = true;
extern double LotCir = 0.1; //объем лота-обрезателя
extern int TimeExpiration = 120; //время закрытия ордеров в минутах если 0, то до конца дня
//-------------------------------- Trailing
extern string sTrailing = " ---- Trailing ---- ";
extern int TrailingStop = 0; //если= 0, то нет тралла
//extern int TrailingStart = 0; //начала тралла от 0 профита
extern int DeltaTrailing = 2; //минимальное кол-во пунктов для перемещения
extern string sCompens = " ---- Настройки компенсирующего ордера ---- ";
extern string sCT = "Условия открытия компенсирующих ордеров";
extern string sCT1 = "0 - Не выставлять; 1 - Stochastic Oscillator; 2 - Williams Percent Range; 3 - Сетка Stop-ордеров; 4 - По времени";
extern int ChokeType = 0;
extern int ChokeDD = 20; // % просадки, при которой начинает работать компенсатор
extern int ChokeTP = 10; // Take Profit
extern int ChokeSL = 17; // Stop Loss
extern int ChokeLotPercent = 20; // Процент от суммы лотов просевших ордеров
extern double ChokeKM = 1.5; // Коэффициент увеличения лота
extern int ChokePW = 0; // Метод прогрессии для ChokeKM
extern int ChokeTrailStop = 0; // Trailing Stop
extern int ChokeTrailStep = 2; // Trailing Step
extern int ChokeMagic = 121212; // Магик для сетки
extern string sStoch = "-1- Параметры Stochastic Oscillator ----";
extern int Stoch.K = 8; // Период(количество баров) для вычисления линии %K.
extern int Stoch.D = 3; // Период усреднения для вычисления линии %D.
extern int Stoch.Slowing = 3; // Значение замедления
// Метод усреднения. Может быть любым из значений методов скользящего среднего (Moving Average):
// MODE_SMA 0 Простое скользящее среднее
// MODE_EMA 1 Экспоненциальное скользящее среднее
// MODE_SMMA 2 Сглаженное скользящее среднее
// MODE_LWMA 3 Линейно-взвешенное скользящее среднее
extern int Stoch.Method = 2;
// Параметр выбора цен для расчета. Может быть одной из следующих величин: 0 - Low/High или 1 - Close/Close.
extern int Stoch.PF = 0;
extern string sWPR = "-2- Параметры Williams Percent Range ----";
extern string sWPRTF = "ТФ: 1 - 1M, 2 - 5M, 3 - 15M, 4 - 30M, 5 - 1H";
extern int WPRTF = 4;
extern int WPR1 = 13;
extern int WPR2 = 80;
extern int WPR3 = 210;
extern int WPR4 = 420;
extern string sChain = "-3- Параметры сетки Stop-ордеров ----";
extern int ChainOrders = 5; // Количество ордеров в сетке
extern int ChainLotKM = 0; // После этого ордера увеличиваем лот
extern bool ChainLotReverse = False; // True - лот сетки в убывающей последовательности
//extern bool ChainAutoStep = False; // True - ChainStep рассчитывается автоматически от ChokeTP
//extern int ChainDelta = 20; // Расстояние от текущей цены до первого ордера
extern int ChainStep = 20; // Расстояние между ордерами в пунктах
extern int ChainMinProfit = 10; // Минимальное значение профита в пунктах, при котором выводить ордер в безубыток;
extern int ChainNoLoss = 2; // Уровень в пунктах, на котором нужно ставить SL при достижении значения ChainMinProfit
// ChainTraling = True (1) - ордера сетки будут выводиться в безубыток по параметрам трала: ChokeTrailStop и ChokeTrailStep
// False (0) - по параметрам ChainMinProfit и ChainNoLoss
extern bool ChainTrailing = True;
extern string sChokeByTime = "-4- Параметры компенсатора по времени ----";
extern int ChokeTradeTime = 10; // Время открытия 1 компенсатора. -1 - время не задано
// Уровень минимальной просадки, при которой срабатывает ордер.
// Ордер открывается если просадка достигла ChokeDD, а затем снизилась до ChokeDDLevel, либо если ChokeDD = 0
extern double ChokeDDLevel = 5;
//extern int ChokeTradeTime2 = 13; // Время открытия 2 компенсатора - ChokeTradeTime2 и ChokeTradeTime3 неэффективны
//extern int ChokeTradeTime3 = 22; // Время открытия 3 компенсатора
extern bool ChokeReverse = False; // Ордер того же направления (False) или противоположного (True)
extern int ChokeRepetition = 3; // Количество повторений (суток), если просадка не снизилась
int ChokeRepet;
extern bool ChokeKMControl = False; // True - компенсатор выставляется, если количество рыночных ордеров меньше LotKM
bool ChainExists = False; // True - сетка установлена
int ChainOrderCount = 0; // Количество ордеров в сетке
int ChainOrderTicket; // Тикет работающего ордера сетки
double ChainProfit = 0, // Профит сетки
ChainGenlProfit; // Общий профит всех сеток
datetime ChainTime, OldChainTime; // Время установки сетки
extern string sInfo = " ----- Статистическая информация ----- ";
extern bool dohod = false;
extern bool ShowInfo = True;
extern color WevesColor = White;