← К каталогу
Исходный код · ID 3452

$$$ Westernpips Newest PRO 3.7 Exclusive Classic

$$$_westernpips_newest_pro_3_7_exclusive_classic1_2.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Этот файл представляет собой торговый советник для MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на финансовых рынках и использует внешний источник быстрых котировок через DLL-библиотеку, подключаемую к одному из четырёх провайдеров данных: Saxo, Lmax, CQG или Rithmic. Основная идея работы заключается в сравнении цен, получаемых от внешнего источника, с ценами брокера MetaTrader 4, и принятии торговых решений на основе возникающей разницы.

Советник обрабатывает событие OnTick, то есть реагирует на поступление новых котировок. Он открывает и закрывает позиции, поддерживает работу с отложенными ордерами, управляет стоп-лоссами и тейк-профитами, а также реализует функции трейлинг-стопа, включая виртуальный. В коде присутствуют механизмы контроля рисков: ограничение просадки и прибыли по депозиту, остановка торговли при неблагоприятных условиях, проверка спреда, учёт комиссии и контроль проскальзывания. Также предусмотрены настройки времени торговли и информационная панель на графике.

Советник активно использует торговые функции MetaTrader 4 (OrderSend, OrderClose, OrderModify) и работает с ордерами, позициями и историей сделок. Для получения внешних котировок применяется импорт функций из DLL, что требует разрешения на вызов DLL в настройках терминала. Советник не является индикатором или скриптом, это полноценный эксперт, предназначенный для автоматической торговли.

Настройки программы

НастройкаОписание
WesternpipsSet1 Группа: быстрый источник данных — Заголовок группы настроек быстрого источника данных.
ModeOfQuotes Режим котировок — Выбор источника быстрых котировок: 0 — Saxo, 1 — Lmax, 2 — CQG, 3 — Rithmic.
UseSymbCode Использовать код символа — Включает использование заданного кода символа вместо символа графика.
SymbCode Код символа — Код символа для запроса котировок из внешнего источника.
SymbReturn Инвертировать символ — Включает инвертирование получаемых котировок (1/цена).
AvtoShiftBid Автосмещение Bid — Включает автоматический расчёт смещения цен Bid на основе накопленной статистики.
ShiftAsk Смещение Ask — Величина смещения цены Ask в пунктах при ручной настройке.
ShiftBid Смещение Bid — Величина смещения цены Bid в пунктах при ручной настройке.
WesternpipsSet2 Группа: настройки открытия ордеров — Заголовок группы настроек открытия ордеров.
MinimumLevel Минимальный уровень — Базовый минимальный уровень в пунктах для принятия торговых решений.
MinGapForOpen Минимальный разрыв для открытия — Минимальная разница в пунктах между ценами для открытия позиции.
UseDynamicMinimumLevel Использовать динамический минимальный уровень — Включает динамический расчёт минимального уровня на основе спреда.
DynamicMinimumLevelSpreadCoefficient Коэффициент динамического минимального уровня — Коэффициент, используемый при динамическом расчёте минимального уровня на основе спреда.
SignalMode Режим сигналов — Режим формирования сигналов: 0 или 1, влияет на используемые цены.
AvtoSettings Автоматические настройки — Включает автоматический подбор настроек, влияющих на расчёт уровней и спреда.
AvarageSpreadUse Использовать усреднённый спред — Включает использование усреднённого значения спреда вместо текущего.
TradeByPendingOrders Торговля отложенными ордерами — Включает торговлю с использованием отложенных ордеров вместо рыночных.
DistanceForPendingOrdersInPips Расстояние для отложенных ордеров (пункты) — Расстояние в пунктах от текущей цены для выставления отложенных ордеров.
PendingOrdersLifeTime Время жизни отложенных ордеров — Время жизни отложенных ордеров в секундах до их автоматического удаления.
OrdersOpenIntervalMs Интервал открытия ордеров (мс) — Минимальный интервал в миллисекундах между открытием ордеров.
MaxAttemptsForOpenOrder Максимум попыток открытия — Максимальное количество попыток открытия ордера при неудаче.
NTrades Количество сделок — Максимальное количество одновременно открытых ордеров.
Magic Магическое число — Уникальный идентификатор (магическое число) для ордеров советника.
ShowCommentsInOrder Показывать комментарии в ордере — Включает добавление комментариев к торговым ордерам.
EAComment Комментарий советника — Пользовательский комментарий, добавляемый к торговым ордерам.
TradeSide Направление торговли — Разрешение направления торговли: 0 — оба, 1 — только покупка, 2 — только продажа.
WesternpipsSet3 Группа: настройки закрытия ордеров — Заголовок группы настроек закрытия ордеров.
FixTP Фиксированный тейк-профит — Размер фиксированного тейк-профита в пунктах.
FixSL Фиксированный стоп-лосс — Размер фиксированного стоп-лосса в пунктах.
RealFixTP Реальный фиксированный TP — Включает расчёт фиксированного тейк-профита на основе реального проскальзывания.
RealFixSL Реальный фиксированный SL — Включает расчёт фиксированного стоп-лосса на основе реального проскальзывания.
UseFixedStopLossAndTakeProfit Использовать фиксированные SL и TP — Включает установку фиксированных стоп-лосса и тейк-профита для ордеров.
StopLoss Стоп-лосс — Размер стоп-лосса в пунктах для устанавливаемых защитных уровней.
TakeProfit Тейк-профит — Размер тейк-профита в пунктах для устанавливаемых защитных уровней.
ShirtStopLoss Стоп-лосс по спреду — Включает использование стоп-лосса, привязанного к текущему спреду.
ShirtStopLossK Коэффициент стоп-лосса по спреду — Коэффициент для расчёта стоп-лосса на основе спреда.
CloseWhenPriceEqual Закрытие при равенстве цены — Включает закрытие позиции при достижении ценой уровня, сохранённого в комментарии ордера.
CloseOrderDelay Задержка закрытия ордера — Задержка в секундах перед возможностью закрытия ордера после его открытия.
CloseTimer Таймер закрытия — Время в секундах, по истечении которого открытая позиция будет закрыта принудительно.
DisableFixTP Отключить фиксированный TP — Отключает автоматическое закрытие по фиксированному тейк-профиту.
DisableFixSL Отключить фиксированный SL — Отключает автоматическое закрытие по фиксированному стоп-лоссу.
MaxAttemptsForCloseOrder Максимум попыток закрытия — Максимальное количество попыток закрытия ордера при неудаче.
WesternpipsSet4 Группа: управление рисками — Заголовок группы управления рисками.
RiskPercent Процент риска — Процент риска от депозита для автоматического расчёта размера лота.
Lots Лот — Базовый размер торгового лота.
max_Lots Максимальный лот — Максимально допустимый размер торгового лота.
LotsCount База расчёта лота — Выбор базы для расчёта лота при риск-менеджменте: 0 — баланс, 1 — средства (equity).
LotsSignalPower Усиление лота по сигналу — Включает увеличение лота в зависимости от силы сигнала.
MaxLossOnDepositInPersent Макс. убыток от депозита (%) — Максимально допустимый убыток в процентах от баланса, при достижении которого торговля останавливается.
MaxProfitOnDepositInPersent Макс. прибыль от депозита (%) — Максимально допустимая прибыль в процентах от баланса, при достижении которой торговля останавливается.
MaxLossOnDepositInUsd Макс. убыток от депозита (валюта) — Максимально допустимый убыток в валюте депозита, при достижении которого торговля останавливается.
StopTradingIfUnprofitableOrders Остановка при убыточных ордерах — Останавливает торговлю после заданного количества убыточных сделок подряд.
MaxUnprofitableOrders Макс. убыточных ордеров — Количество убыточных сделок подряд, после которого торговля останавливается.
WesternpipsSet5 Группа: контроль проскальзывания — Заголовок группы контроля проскальзывания.
OrderOpenSlippage Проскальзывание при открытии — Допустимое проскальзывание в пунктах при открытии ордера.
OrderCloseSlippage Проскальзывание при закрытии — Допустимое проскальзывание в пунктах при закрытии ордера.
StopTradingSlippage Остановка по проскальзыванию — Останавливает торговлю при неблагоприятном проскальзывании при открытии.
StopTradingIfMaxSlippage Остановка при макс. проскальзывании — Останавливает торговлю при превышении максимально допустимого проскальзывания.
MaxSlippage Макс. проскальзывание — Максимально допустимое проскальзывание в пунктах, при превышении которого торговля может быть остановлена.
UseDynamicSlippage Использовать динамическое проскальзывание — Включает динамический расчёт допустимого проскальзывания.
DynamicSlippageCoefficient Коэффициент динамического проскальзывания — Коэффициент для динамического расчёта допустимого проскальзывания.
WesternpipsSet6 Группа: контроль исполнения — Заголовок группы контроля времени исполнения.
UseMaxOpenOrderExecutionTime Использовать макс. время открытия — Включает контроль максимального времени выполнения открытия ордера.
MaxOpenOrderExecutionTime Макс. время открытия ордера (мс) — Максимально допустимое время выполнения операции открытия ордера в миллисекундах.
UseMaxCloseOrderExecutionTime Использовать макс. время закрытия — Включает контроль максимального времени выполнения закрытия ордера.
MaxCloseOrderExecutionTime Макс. время закрытия ордера (мс) — Максимально допустимое время выполнения операции закрытия ордера в миллисекундах.
WesternpipsSet7 Группа: контроль спреда — Заголовок группы инструментов контроля спреда.
MinSpreadOpenUse Использовать мин. спред открытия — Включает проверку минимального спреда при открытии позиций.
MinSpreadOpen Мин. спред для открытия — Минимально допустимый спред для открытия позиций.
MaxSpreadOpenUse Использовать макс. спред открытия — Включает проверку максимального спреда при открытии позиций.
MaxSpreadOpen Макс. спред для открытия — Максимально допустимый спред для открытия позиций.
MinSpreadCloseUse Использовать мин. спред закрытия — Включает проверку минимального спреда при закрытии позиций.
MinSpreadClose Мин. спред для закрытия — Минимально допустимый спред для закрытия позиций.
MaxSpreadCloseUse Использовать макс. спред закрытия — Включает проверку максимального спреда при закрытии позиций.
MaxSpreadClose Макс. спред для закрытия — Максимально допустимый спред для закрытия позиций.
WesternpipsSet8 Группа: настройки комиссии — Заголовок группы настроек комиссии.
OrderCommissionCheck Проверка комиссии ордера — Включает автоматическую проверку комиссии брокера путём тестовой сделки.
ManualComission Ручная комиссия — Включает ручное задание комиссии вместо автоматического определения.
ComissionInPips Комиссия в пунктах — Значение комиссии в пунктах, используемое при ручном задании комиссии.
WesternpipsSet9 Группа: настройки трейлинг-стопа — Заголовок группы настроек трейлинг-стопа.
UseTrailingStop Использовать трейлинг-стоп — Включает обычный трейлинг-стоп.
TrailingStop Трейлинг-стоп — Размер трейлинг-стопа в пунктах.
TrailingStep Шаг трейлинг-стопа — Шаг трейлинг-стопа в пунктах.
UseVirtualTrailingStop Использовать виртуальный трейлинг-стоп — Включает виртуальный трейлинг-стоп, не выставляющий реальные уровни.
VirtualTrailingStop Виртуальный трейлинг-стоп — Размер виртуального трейлинг-стопа в пунктах.
VirtualTrailingStep Шаг виртуального трейлинг-стопа — Шаг виртуального трейлинг-стопа в пунктах.
WesternpipsSet10 Группа: дополнительные настройки — Заголовок группы дополнительных настроек.
ShowGraf Показывать графическую панель — Включает отображение информационной панели на графике.
ShowPriceLabel Показывать ценовые метки — Включает отображение ценовых меток на графике при появлении сигналов.
ShowAsk Показывать Ask — Показывает линию Ask от внешнего источника котировок на графике.
ShowLog Показывать лог — Включает вывод подробных сообщений о работе советника в журнал.
SoundSignal Звуковой сигнал — Включает звуковое уведомление при открытии и закрытии ордеров.
UseTerminalSleepInMilliseconds Использовать задержку терминала — Включает использование задержки в цикле обработки тиков.
TerminalSleepInMilliseconds Задержка терминала (мс) — Время задержки в миллисекундах внутри цикла обработки тиков.
WesternpipsSet11 Группа: настройки времени торговли — Заголовок группы настроек времени торговли.
TimeCount Источник времени — Выбор источника времени: 0 — время сервера MT4, 1 — локальное время ПК, 2 — GMT.
UseTimer Использовать таймер — Включает ограничение торговли по времени.
StartHour Час начала — Час начала торговли при использовании таймера.
StartMinutes Минуты начала — Минуты начала торговли при использовании таймера.
StartSeconds Секунды начала — Секунды начала торговли при использовании таймера.
Получить полный код

Поиск по коду файла

#property strict

string g_expert_ver = "Newest PRO 3.7 Exclusive Classic";

#property description  "Professional Forex Expert Advisor  Newest PRO 3.7 Exclusive Classic"
#property description  "Newest PRO 3.7 Exclusive Classic Author and developer:"
#property description   "SERGEY & WESTERNPIPS GROUP"
#property description   "Mail to:  w*********s*@gmail.com"
#property description   "Skype to: westernpips.com"
#property description   "All Rights Reserved by "

#import "Newest_PRO_3.7_Exclusive.dll"
void  getRatesSaxo(uchar & _rateCode[], double&, double&);
void  getRatesLmax(uchar & _rateCode[], double&, double&);
void  getRatesRithmic(uchar & _rateCode[], double&, double&);
void  getRatesCQG(uchar & _rateCode[], double&, double&);
#import

#define OF_READWRITE          2

#import "kernel32.dll"
   int _lcreat (uchar& [], int );
   int _lwrite (int handle, uchar& [], int bytes);
   int _lclose (int handle);
   int CreateDirectoryA(uchar& [], int& []);
#import

extern string WesternpipsSet1="<<< FAST DATA FEED OPTIONS >>>";
extern string WesternpipsSet1_1="0-Saxo; 1-Lmax; 2-CQG; 3-Rithmic;";
extern int    ModeOfQuotes=3;
extern bool   UseSymbCode = false;
extern string SymbCode="FDAX0616";
extern bool   SymbReturn = false;
extern bool   AvtoShiftBid = true;
extern double ShiftAsk = 0;
extern double ShiftBid = 0;

extern string WesternpipsSet2="<<< OPEN ORDERS SETTINGS >>>";
extern double MinimumLevel = 1;
extern double MinGapForOpen = 0;
extern bool   UseDynamicMinimumLevel = false;         
extern double DynamicMinimumLevelSpreadCoefficient = 0.7;
extern int    SignalMode=1; 
extern bool   AvtoSettings = true;
extern bool   AvarageSpreadUse = true;
extern bool   TradeByPendingOrders = true;
extern double DistanceForPendingOrdersInPips=0;
extern int    PendingOrdersLifeTime=5;
extern int    OrdersOpenIntervalMs = 0;
extern int    MaxAttemptsForOpenOrder = 3;
extern int    NTrades = 3;
extern int    Magic=0;
extern bool   ShowCommentsInOrder=true;
extern string EAComment="";
extern string TradeSideSet="0-Both;1-Buy;2-Sell";
extern int    TradeSide=0;

extern string WesternpipsSet3="<<< CLOSE ORDERS SETTINGS >>>";
extern double FixTP =0.1;
extern double FixSL = 1;
extern bool   RealFixTP = false;
extern bool   RealFixSL = false;
extern bool   UseFixedStopLossAndTakeProfit = true;
extern double StopLoss = 10;
extern double TakeProfit = 100;
input  bool   ShirtStopLoss = false;
input  double ShirtStopLossK = 2;
extern bool   CloseWhenPriceEqual = false;
extern int    CloseOrderDelay = 0;
extern int    CloseTimer = 0;
extern bool   DisableFixTP=false;
extern bool   DisableFixSL=false;
extern int    MaxAttemptsForCloseOrder = 3;

extern string WesternpipsSet4="<<< RISK MANAGMENT >>>";
extern double RiskPercent = 0;
extern double Lots=0.01;
extern double max_Lots=9;
extern string LotsCountSet="Lots Count: 0-Balanse; 1-Equity";
extern int    LotsCount = 0;
extern bool   LotsSignalPower = false;
extern double MaxLossOnDepositInPersent=10;
extern double MaxProfitOnDepositInPersent=0;
extern double MaxLossOnDepositInUsd = 0;
extern bool   StopTradingIfUnprofitableOrders = false; 
extern int    MaxUnprofitableOrders = 3;

extern string WesternpipsSet5="<<< CONTROL SLIPPAGE PLUG-IN >>>";
input  int    OrderOpenSlippage = 0;
input  int    OrderCloseSlippage = 0;
extern bool   StopTradingSlippage=false;
extern bool   StopTradingIfMaxSlippage=false;
extern int    MaxSlippage=100;
extern bool   UseDynamicSlippage = false;                                                                                           
extern double DynamicSlippageCoefficient = 1.2;

extern string WesternpipsSet6="<<< CONTROL EXECUTION PLUG-IN >>>";
extern bool   UseMaxOpenOrderExecutionTime=false;
extern int    MaxOpenOrderExecutionTime=1000;
extern bool   UseMaxCloseOrderExecutionTime=false;
extern int    MaxCloseOrderExecutionTime=1000;

extern string WesternpipsSet7="<<< SPREAD CONTROL TOOLS >>>";
extern bool   MinSpreadOpenUse = false;
extern double MinSpreadOpen=1;
extern bool   MaxSpreadOpenUse = false;
extern double MaxSpreadOpen=50;
extern bool   MinSpreadCloseUse = false;
extern double MinSpreadClose=1;
extern bool   MaxSpreadCloseUse = false;
extern double MaxSpreadClose=50;

extern string WesternpipsSet8="<<< COMMISSION SETTINGS >>>";
extern bool   OrderCommissionCheck=false;
extern bool   ManualComission=false;
extern double ComissionInPips=1;

extern string WesternpipsSet9="<<< TRAILING STOP SETTINGS >>>";
extern bool   UseTrailingStop = false;
extern double TrailingStop = 1;
extern double TrailingStep = 1;
extern bool   UseVirtualTrailingStop = false;
extern double VirtualTrailingStop = 1;
extern double VirtualTrailingStep = 1;

extern string WesternpipsSet10="<<< ADDITIONAL SETTINGS >>>";            
extern bool   ShowGraf=true;
extern bool   ShowPriceLabel = false;
extern bool   ShowAsk = false;
extern bool   ShowLog=true;
extern bool   SoundSignal = false;
extern bool   UseTerminalSleepInMilliseconds=true;
extern int    TerminalSleepInMilliseconds=20;

extern string WesternpipsSet11="<<< TIME OF TRADING SETTINGS >>>";
extern string TimeSet="0-Mt4ServerTime;1-LocalPCTime;2-GMT";
extern int    TimeCount = 1;
extern bool   UseTimer = false;
extern int    StartHour = 10;
extern int    StartMinutes = 41;
extern int    StartSeconds = 00;
extern int    StopHour = 10;
extern int    StopMinutes = 42;
extern int    StopSeconds = 00;

string lmaxtexta="";
int    traltime=0;
int    traltime2=0;
double BuyClosePrice=0;
double SellClosePrice=0;
color  ColorQuotes;
string QText="";
double LastCloseSlippage=0;
double LastGap=0;
double LastOpenSlippage=0;
int    LastCloseTime=0;
int    LastOpenTime=0;
double PriceCloseSell=0;	
int    CloseTicketSell=0;
double CloseSellPr=0;
double CloseSellSlippage=0;
double PriceCloseBuy=0;	
int    CloseTicket=0;
double CloseBuyPr=0;
double CloseBuySlippage=0;
int    TimeEnd=0;
int    MagicTest=0;
int    cnt=0;
double SymbolComissionInPips=0;
double averageAskSum = 0;
double averageBidSum = 0;
double averageAskCount = 0;
double averageBidCount = 0;
double averageSpreadSum = 0;
double averageSpreadCount = 0;
double LmaxAsk=0;
double LmaxBid=0;
double LmaxGapAsk=0;
double LmaxGapBid=0;
bool   NewLmaxAsk=0;
bool   NewLmaxBid=0;
double LmaxAskOld=0;
double LmaxBidOld=0;
double Mt4Ask=0;
double Mt4Bid=0;
double Mt4GapAsk=0;
double Mt4GapBid=0;
bool   NewMt4Ask=0;
bool   NewMt4Bid=0;
double Mt4AskOld=0;
double Mt4BidOld=0;
double GapBuy=0;
double GapSell=0;
bool   tradeLmax=true;
double SaxoAsk=0;
double SaxoBid=0;
double pp=0;
double margin=0;
double spread=0;
double spread2=0;
double dLot=0;
double LOTSTEP=0;
double MINLOT=0;
double MAXLOT=0;
double bid_pr=0;
double ask_pr=0;
double fx=0;
double StopLoss2=0;
double TakeProfit2=0;
double StepTP2=0;
double FixSL2=0;
double FixTP2=0;
double minshag=0;
int    rez=0;
int    sig=0;
int    sig_raz=0;
int    ticket=0;
double MinLev=0;
double DepositStop=0;
double DepositStopIfProfit=0;
double TradeLot=0;
double SpreadK=1;
string comm="";
double ShiftBidBuy=0;
double ShiftBidSell=0;
string LastErrorText="";
bool   SignalBuy=false;
bool   SignalSell=false;
string OrderCommBuy="";
string OrderCommSell="";
double OpenBuyPrice=0;
double SlippageBuy=0;
double OpenSellPrice=0;
double SlippageSell=0;
int    Bar=0;
int    BarsCount=0;
int    x=0;
bool   StopTrading = false;
double DistancePending=0;
string text1 ="......";
string text2 ="......";
string text3 ="......";
string text4 ="......";
color  col1 = White;
color  col2 = White;
color  col3 = White;
color  col4 = White;
datetime LastOrderTime = 0;
double PriceCloseSellTral=0;
double PriceCloseBuyTral=0;
bool StopTradindSlip = false;
double PrCloseBuy =0 ;   
double PrCloseSell=0 ;
bool buy111=0;
bool sell111=0;
int step1=0;
int step2=0;
int step1old=0;
int step2old=0;
int ReadCodeStep=0;
int ReadCodeTime=0;
int ReadCodeTimeEnd=0;
int ReadCodeTimeSumm=0; 
int AvReadCodeTime =0;
bool NewTickDel = true;
double Eq = 0;
string Instrument="";
int att=0;
int LastLmaxTickTime=0;
int LmaxTickTime=0;
int LastMt4TickTime=0;
int Mt4TickTime=0;
double LmaxBidCount =0;
bool ShowPanel=false;
string comm11="";
int LactCheckTime=0;
int StepCheck=0;
int CheckNextTime=0;
int OldTickCount=0;
bool ShowErrorPanel=false; 
int t2=0;

double OrdOpenSlippage=0;                   
string Commento="";                  	   
int ticketSell=0;
int ticketBuy=0;
int t1=0;
int t3=0;
double PendingOrderOpenPriseBuy=0;
double PendingOrderOpenPriseSell=0;
bool SignalFromMt4 = false;

int OnInit()
  {
      // код доступен только после оплаты
   }

void OnDeinit(const int reason)
  {
  Comment("");
  ObjectsDeleteAll();  
  }

void OnTick()
  {
      // код доступен только после оплаты
   }

   if(IsWorkingHours()==false&&UseTimer){LastErrorText=""; tradeLmax=false; LastErrorText=LastErrorText+"Trade Was Stopped, Not working hours! Can change UseTimer in EA settings and start EA again!"; StopTrading = true;}
   if(IsWorkingHours()==true&&UseTimer){tradeLmax=true; StopTrading = false;}

   if (StopTrading == true)
   {  
   Comment("");
   ObjectsDeleteAll();
   ShowErrorsPanel(); 
   }

   while(IsStopped()==false && StopTrading == false)
      {   
            LastErrorText="";
            ReadCodeTime=GetTickCount();
            comm=""; 

            if (StopTrading == false) {tradeLmax=true;}                   
            SignalBuy=false;
            SignalSell=false;

            if(AccountInfoDouble(ACCOUNT_BALANCE)<=DepositStop&&MaxLossOnDepositInPersent>0) {tradeLmax=false; LastErrorText=LastErrorText+"Trade Was Stopped, Big Drawdown > " +MaxLossOnDepositInPersent+" %!" +" Can change RiskDeposit in EA settings and start EA again!" ; StopTrading = true;}
            if(AccountInfoDouble(ACCOUNT_BALANCE)>=DepositStopIfProfit&&MaxProfitOnDepositInPersent>0){tradeLmax=false;LastErrorText=LastErrorText+"Trade Was Stopped, Big Profit > "+MaxProfitOnDepositInPersent+" %!"+" Can change ProfitInDay in EA settings and start EA again!"; StopTrading = true;}              
            if (MarketInfo(Symbol(),MODE_SPREAD)<MinSpreadOpen&&MinSpreadOpenUse==true) {tradeLmax=false; LastErrorText=LastErrorText+"Trade is disabled, Spread = "+DoubleToString(NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD),2),2)+" pips is low than MinSpreadOpen = " +DoubleToString(MinSpreadOpen,2)+" pips!"+" Can change MinSpreadOpen in EA settings and start EA again!";}
            if (MarketInfo(Symbol(),MODE_SPREAD)>MaxSpreadOpen&&MaxSpreadOpenUse==true) {tradeLmax=false; LastErrorText=LastErrorText+"Trade is disabled, Spread = "+DoubleToString(NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD),2),2)+" pips is big than MaxSpreadOpen = " +DoubleToString(MaxSpreadOpen,2)+" pips!"+" Can change MaxSpreadOpen in EA settings and start EA again!";}

            if(UseMaxOpenOrderExecutionTime){if (LastOpenTime>MaxOpenOrderExecutionTime) {tradeLmax =false;LastErrorText=LastErrorText+"Trade Was Stopped, Big Open Order Execution = "+DoubleToString(LastOpenTime,0)+" ms!" +" Can change MaxOpenOrderExecutionTime in EA settings and start EA again!";  StopTrading = true; }}
            if(UseMaxCloseOrderExecutionTime){if (LastCloseTime>MaxCloseOrderExecutionTime) {tradeLmax =false; LastErrorText=LastErrorText+"Trade Was Stopped, Big Close Order Execution = "+DoubleToString(LastCloseTime,0)+" ms!" +" Can change MaxCloseOrderExecutionTime in EA settings and start EA again!"; StopTrading = true;}}     

            if(StopTradingIfMaxSlippage){if(LastOpenSlippage <  -MaxSlippage){tradeLmax = false;LastErrorText=LastErrorText+"Trade Was Stopped, Big Order Open Slippage = "+DoubleToString(LastOpenSlippage,0)+" pips!" +" Can change StopTradingIfMaxSlippage in EA settings and start EA again!";  StopTrading = true;}}
            if(StopTradingIfMaxSlippage){if(LastCloseSlippage < -MaxSlippage){tradeLmax = false;LastErrorText=LastErrorText+"Trade Was Stopped, Big Order Close Slippage = "+DoubleToString(LastCloseSlippage,0)+" pips!" +" Can change StopTradingIfMaxSlippage in EA settings and start EA again!";  StopTrading = true;}}

            if (StopTradindSlip==true) {tradeLmax = false;LastErrorText=LastErrorText+"Trade Was Stopped, Big Order Open Slippage = "+DoubleToString(LastOpenSlippage,0)+" pips!" +" Can change StopTradingSlippage in EA settings and start EA again!";  StopTrading = true;}

            if(IsWorkingHours()==false&&UseTimer){tradeLmax=false; LastErrorText=LastErrorText+"Trade Was Stopped, Not working hours! Can change UseTimer in EA settings and start EA again!"; StopTrading = true;}

            bool selh;
            double historyprofitsell;
            double historyprofitbuy;
            double historyprofit=0;
            int totalloss=0;
            if (OrdersHistoryTotal() > 0) 
                  {
      		      for (int yh = 0; yh < OrdersHistoryTotal(); yh++) 
      		         {

      			      selh=OrderSelect (yh, SELECT_BY_POS, MODE_HISTORY);      			      
      			      if(OrderMagicNumber()==Magic||OrderMagicNumber()==MagicTest)
      			      {		
      			         if(OrderType()==OP_BUY||OrderType()==OP_SELL)
                           {    
            			      historyprofit=historyprofit+OrderProfit()+OrderCommission();

         			         }		      
      			      }     			      
      			      }
      			   }            
            if(historyprofit < - MaxLossOnDepositInUsd && MaxLossOnDepositInUsd>0) {tradeLmax=false; GapSell=0;GapBuy=0; LastErrorText=LastErrorText+"Trade Was Stopped, Big Drawdown = "+DoubleToString(historyprofit,2)+" "+AccountCurrency()+", more than MaxLossOnDepositInUsd = "+MaxLossOnDepositInUsd+" "+AccountCurrency()+" ! Can change MaxLossOnDepositInUsd in EA settings and start EA again!"; StopTrading = true;}            

            if (StopTradingIfUnprofitableOrders && IsLastOrdersUnprofitable(Magic, MaxUnprofitableOrders)){tradeLmax=false; GapSell=0;GapBuy=0; LastErrorText=LastErrorText+" Trade Was Stopped, "+MaxUnprofitableOrders +" unprofitable orders in a row! Can change MaxUnprofitableOrders in EA settings and start EA again!"; StopTrading = true;}

            LmaxAsk = 0;
            LmaxBid = 0;
            LmaxBidCount = 0;
            char curr[1000];

            string Instrument = StringSubstr(Symbol(),0,6);

            if(ModeOfQuotes==0)
            {
               if(UseSymbCode==true)
                  {
                     StringToCharArray(SymbCode,curr);
                     getRatesSaxo(curr,LmaxAsk,LmaxBid);
                  }
                  else
                     {
                        StringToCharArray(Instrument,curr);
                        getRatesSaxo(curr,LmaxAsk,LmaxBid);
                     }
            }

            if(ModeOfQuotes==1)
            {
               if(UseSymbCode==true)
                  {
                     StringToCharArray(SymbCode,curr);
                     getRatesLmax(curr,LmaxAsk,LmaxBid);
                  }
                  else
                     {
                        StringToCharArray(Instrument,curr);
                        getRatesLmax(curr,LmaxAsk,LmaxBid);
                     }
            }

            if(ModeOfQuotes==2)
            {
               if(UseSymbCode==true)
                  {
                     StringToCharArray(SymbCode,curr);
                     getRatesCQG(curr,LmaxAsk,LmaxBid);
                  }
                  else
                     {
                        StringToCharArray(Instrument,curr);
                        getRatesCQG(curr,LmaxAsk,LmaxBid);
                     }
            }

            if(ModeOfQuotes==3)
            {
               if(UseSymbCode==true)
                  {
                     StringToCharArray(SymbCode,curr);
                     getRatesRithmic(curr,LmaxAsk,LmaxBid);
                  }
                  else
                     {
                        StringToCharArray(Instrument,curr);
                        getRatesRithmic(curr,LmaxAsk,LmaxBid);
                     }
            }

           if(SymbReturn==true)
              {
                 LmaxAsk=1/LmaxAsk;
                 LmaxBid=1/LmaxBid;
              }

            if(SymbCode==""&&UseSymbCode==true)
            {
            tradeLmax=false;
            LmaxAsk = 0;
            LmaxBid = 0;
            LastErrorText=LastErrorText+"Trade Was Stopped, SymbCode Error! Can change SymbCode to "+Symbol()+" in EA settings and start EA again!"+ "\n";
            StopTrading = true;
            }

            if(LmaxBid==-1||LmaxBid<=0)  
            {
            tradeLmax=false; GapBuy=0;GapSell=0; LastErrorText=LastErrorText+ "Trade is disabled, error of "+QText+" data feed connection!Please check TradeMonitor programm!";
            ObjectDelete("QBid");   
            ObjectDelete("QText");
            ObjectDelete("QAsk");
            ObjectDelete("QAText");

            ObjectSetText("dfsymb", "Spread: 0 ", 9, "Arial", White);
            ObjectSetText("lmaxask", "Disconnected ", 9, "Arial", Red);
            ObjectSetText("lmaxbid", "Disconnected ", 9, "Arial", Red);

            ObjectSetString(0,"GapSell", OBJPROP_TEXT,DoubleToString(GapSell, 1));
            ObjectSetString(0,"GapBuy", OBJPROP_TEXT,DoubleToString(GapBuy, 1));

            }
      		if(LmaxAsk==-1||LmaxAsk<=0)  
      		{
      		tradeLmax=false; GapBuy=0;GapSell=0;
      		}

            pp = MarketInfo(Symbol(),MODE_POINT);
            if(AvtoSettings == false)
               {
               	if (pp == 0.001)   {pp=0.01;}
               	if (pp == 0.00001) {pp=0.0001;} 
            	}  	

         	Mt4Ask=MarketInfo(Symbol(),MODE_ASK);
            Mt4Bid=MarketInfo(Symbol(),MODE_BID);          
            spread2 = (NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits)-NormalizeDouble(MarketInfo(Symbol(),MODE_BID),_Digits))/pp;

                  if (AvarageSpreadUse==true)
                     {
                        averageSpreadSum += spread2;
                        averageSpreadCount ++;
                        spread=NormalizeDouble((averageSpreadSum /averageSpreadCount),2);     
                     }
                     else {spread=spread2;}

            LmaxBid=NormalizeDouble(LmaxBid,Digits);
            LmaxBidCount=LmaxBid;

            if(tradeLmax==true && LmaxBidOld > 0)
            {      
                  if(LmaxAskOld!=LmaxAsk)
                     {
                        if(LmaxAskOld!=0){LmaxGapAsk=(LmaxAsk-LmaxAskOld)/pp;}
                        LmaxAskOld=LmaxAsk;
                        NewLmaxAsk=true;
                     }

                  if(LmaxBidOld!=LmaxBid)
                     {
                        if(LmaxBidOld!=0){LmaxGapBid=(LmaxBid-LmaxBidOld)/pp;} 
                        if(LastLmaxTickTime>0) {LmaxTickTime = GetTickCount() - LastLmaxTickTime;}                      
                        LastLmaxTickTime = GetTickCount();                       
                        LmaxBidOld=LmaxBid;
                        NewLmaxBid=true;
                     } 

                  if(Mt4AskOld!=Mt4Ask)
                     {
                        if(Mt4AskOld!=0){Mt4GapAsk=(Mt4Ask-Mt4AskOld)/pp;}
                        Mt4AskOld=Mt4Ask;
                        NewMt4Ask=true;
                     }

                  if(Mt4BidOld!=Mt4Bid)
                     {
                        if(Mt4BidOld!=0){Mt4GapBid=(Mt4Bid-Mt4BidOld)/pp;}
                        Mt4BidOld=Mt4Bid;
                        NewMt4Bid=true;
                        if(LastMt4TickTime>0) {Mt4TickTime = GetTickCount() - LastMt4TickTime;}
                        LastMt4TickTime = GetTickCount();
                     }  

                  if(AvtoShiftBid==false)
                     {                 
                        if(SignalMode==0)
                           {
                              ShiftBidBuy=ShiftAsk;
                              ShiftBidSell=ShiftBid;

                              LmaxAsk=LmaxAsk+ShiftAsk*pp;
                              LmaxBid=LmaxBid+ShiftBid*pp;

                              GapBuy=(LmaxBid-Mt4Bid)/pp;                             
                              GapSell=(LmaxBid-Mt4Bid)/pp;    
                           }

                        if(SignalMode==1)
                           {

                              ShiftBidBuy=ShiftAsk;
                              ShiftBidSell=ShiftBid;

                              LmaxAsk=LmaxAsk+ShiftAsk*pp;
                              LmaxBid=LmaxBid+ShiftBid*pp;

                              GapBuy=(LmaxBid-Mt4Ask)/pp;                             
                              GapSell=(LmaxAsk-Mt4Bid)/pp;                                                         
                           }
                     }    

                  if(AvtoShiftBid==true)
                     {
                        if(SignalMode==0)
                           {
                              averageAskSum += (LmaxBid - Mt4Bid )/pp;
                              averageAskCount ++;
                              GapBuy=(LmaxBid-Mt4Bid)/pp-(averageAskSum /averageAskCount);     

                              averageBidSum += (LmaxBid-Mt4Bid)/pp;
                              averageBidCount ++;
                              GapSell=(LmaxBid-Mt4Bid)/pp-(averageBidSum /averageBidCount);

                              ShiftBidBuy=averageAskSum /averageAskCount;
                              ShiftBidSell=averageBidSum /averageBidCount;

                              LmaxAsk=LmaxAsk-ShiftBidBuy*pp;
                              LmaxBid=LmaxBid-ShiftBidSell*pp;                              
                           }

                        if(SignalMode==1)
                           {
                              averageAskSum += (LmaxBid - Mt4Ask )/pp;
                              averageAskCount ++;
                              GapBuy=(LmaxBid-Mt4Ask)/pp-(averageAskSum /averageAskCount);     

                              averageBidSum += (LmaxAsk-Mt4Bid)/pp;
                              averageBidCount ++;
                              GapSell=(LmaxAsk-Mt4Bid)/pp-(averageBidSum /averageBidCount);

                              ShiftBidBuy=averageAskSum /averageAskCount;
                              ShiftBidSell=averageBidSum /averageBidCount;

                              LmaxAsk=LmaxAsk-ShiftBidBuy*pp;
                              LmaxBid=LmaxBid-ShiftBidSell*pp;                           
                           }
                     }

                     if (CloseWhenPriceEqual == true)
                     {
                        if(SignalMode==0)
                              {
                              BuyClosePrice=LmaxBid;
                              SellClosePrice=LmaxBid;                                                 
                              }
                        if(SignalMode==1)
                              {
                              BuyClosePrice=LmaxBid;
                              SellClosePrice=LmaxAsk;
                              }
                     }

                  GetLotSize();

            	   if(LotsSignalPower)
                  {
                  if(LmaxGapBid>=(MinLev)&&NewMt4Bid==true){TradeLot=Lots+Lots;}     
                  if(LmaxGapBid>=(MinLev)&&NewMt4Bid==false){TradeLot=Lots+Lots+Lots;}    
                  if(LmaxGapBid>=(MinLev)&&GapBuy>= (MinLev)*2&&GapBuy<= (MinLev)*3){TradeLot=Lots+Lots;}      
                  if(LmaxGapBid>=(MinLev)&&GapBuy>= (MinLev)*3){TradeLot=Lots+Lots+Lots;}
                  if(LmaxGapBid>=(MinLev)&&GapSell>= (MinLev)*2&&GapSell<= (MinLev)*3){TradeLot=Lots+Lots;}      
                  if(LmaxGapBid>=(MinLev)&&GapSell>= (MinLev)*3){TradeLot=Lots+Lots+Lots;}
                  }
                  else
                  {
                  TradeLot=Lots;
                  }

            	   }
            	   else 
            	   {
            	   GapBuy=0;
            	   GapSell=0;
            	   } 

                  if(OrderCommissionCheck)
                    {       
                       MagicTest=180987;
                       double MinLot=MarketInfo(Symbol(),MODE_MINLOT);                  
                       if(TotalHistoryOrder()==0&&TotalOrderTest()==0)
                         {           
                            ticket=OrderSend(Symbol(),OP_BUY,MinLot,Ask,0,0,0,"OrderComissionCheck",MagicTest,0,MediumBlue);         
                            int select;
                            int close;
                            if (OrdersTotal() > 0) 
                             {
                  					for(int g=0;g<OrdersTotal();g++) 
                  					{
                  						select=OrderSelect(g, SELECT_BY_POS, MODE_TRADES);										
                  						if (OrderSymbol()==Symbol() && OrderMagicNumber() == MagicTest) 
                  						   {	                                                 
                  					         close=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0);
                  						   }
                  					}
                  				}                                       
                         }

                                 if(SymbolComissionInPips==0)
                                 {
                                   int select2;
                                   for(int g2=0;g2<OrdersHistoryTotal();g2++) 
                                    {
                     						select2=OrderSelect(g2, SELECT_BY_POS, MODE_HISTORY);										
                     						if (OrderSymbol()==Symbol() && OrderMagicNumber() == MagicTest) 
                     						   {
                     	                     SymbolComissionInPips= MathAbs(NormalizeDouble(OrderCommission() / (OrderLots()*MarketInfo(Symbol(),MODE_TICKVALUE)),0));
                     	                     SymbolComissionInPips=SymbolComissionInPips*Point/pp;                                					      
                     						   }
                  					   }
               					   }  
                    }

                    if(AvtoSettings==false){SpreadK=1;}
                    else{SpreadK=spread;}

                    if(ManualComission==true){SymbolComissionInPips=ComissionInPips;}
                    if(OrderCommissionCheck==false&&ManualComission==false){SymbolComissionInPips=0;}

                    MinLev=NormalizeDouble((MinimumLevel*SpreadK+spread),1)+SymbolComissionInPips;
                    if (RealFixTP ==false) {FixTP2=FixTP*SpreadK+SymbolComissionInPips; }
                    if (RealFixSL ==false) {FixSL2=FixSL*SpreadK+spread;}
                    TakeProfit2=TakeProfit*SpreadK+SymbolComissionInPips;                                                   
                    StopLoss2=StopLoss*SpreadK+spread;

                    double LmaxSpread=(LmaxAsk-LmaxBid)/pp;
                    if (UseDynamicMinimumLevel) 
                    {
                    MinLev = MathAbs(spread - LmaxSpread)/2 + MathAbs(spread - LmaxSpread) * DynamicMinimumLevelSpreadCoefficient+SymbolComissionInPips;
                       if(AvtoSettings==true)
                       {
                          if (RealFixTP ==false) {FixTP2=(FixTP*MinLev+SymbolComissionInPips)-MinLev/3; }
                          if (RealFixSL ==false) {FixSL2=(FixSL*MinLev+spread)-MinLev/3;}
                          TakeProfit2=TakeProfit*MinLev+SymbolComissionInPips;                                                   
                          StopLoss2=StopLoss*MinLev;
                       }
                    }

                  if(TradeByPendingOrders)
                  {
                  if(DistanceForPendingOrdersInPips<=MarketInfo(Symbol(),MODE_STOPLEVEL)){DistancePending=MarketInfo(Symbol(),MODE_STOPLEVEL);}
                  else{DistancePending=DistanceForPendingOrdersInPips;}

                  for (int z1=0; z1<OrdersTotal(); z1++) 
                      {
                  		if (OrderSelect(z1, SELECT_BY_POS, MODE_TRADES)) 
                  		   {
                     			if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic) 
                     			{                   			
                     			int ordertime = TimeCurrent()-OrderOpenTime();
                              if(OrderType()==OP_BUYSTOP){if( ordertime > PendingOrdersLifeTime) {OrderDelete(OrderTicket(),Green); if(ShowLog) Print("!!! Pending Order BuyStop was canceled, becouse PendingOrdersLifeTime expired. " +"PendingOrdersLifeTime = " +PendingOrdersLifeTime + " seconds");}}
                              if(OrderType()==OP_SELLSTOP){if(ordertime > PendingOrdersLifeTime) {OrderDelete(OrderTicket(),Red);   if(ShowLog) Print("!!! Pending Order SellStop was canceled, becouse PendingOrdersLifeTime expired. " +"PendingOrdersLifeTime = " +PendingOrdersLifeTime + " seconds");}}
                              }
                           }
                       }

                  }

                  ticketSell=0;
                  ticketBuy=0;

                  SignalFromMt4 = false; 

                  if (NewMt4Bid==true&&MathAbs(Mt4GapBid) >= MinLev) {SignalFromMt4 == true;}
                  if (NewMt4Ask==true&&MathAbs(Mt4GapAsk) >= MinLev) {SignalFromMt4 == true;}

                  Eq = AccountEquity();
                  int ordertime=0;  
                  int pendingordertime=0; 
                  int pendingorderticket=0;
                  bool stopseach=false;               
                  if(GapBuy >= (MinLev) && NewLmaxBid==true && LmaxBidOld>0 && TotalOrder(Magic)<NTrades && tradeLmax==true && GetTickCount() - LastOrderTime > OrdersOpenIntervalMs && SignalFromMt4==false)
                  {                    
                     if(GapBuy > MinGapForOpen && GapBuy > spread)
                     {
                     SignalBuy=true;
                     if (UseDynamicSlippage)
                        {
                         if(SignalMode==0) OrdOpenSlippage = MathAbs((LmaxBid - Mt4Bid - (MathAbs(spread - LmaxSpread)/2) * DynamicSlippageCoefficient - FixTP2)/pp);
                         if(SignalMode==1) OrdOpenSlippage = MathAbs((LmaxBid - Mt4Ask - (MathAbs(spread - LmaxSpread)/2) * DynamicSlippageCoefficient - FixTP2)/pp);                      
                        }
                     else { OrdOpenSlippage = OrderOpenSlippage;}

                     if(ShowCommentsInOrder) 
            	      {
            	      Commento="G"+DoubleToString(GapBuy,1)+" Ma"+DoubleToString(Mt4Ask,5)+" "+OrderCommBuy+"b"+DoubleToString(LmaxBid,5);
                     Commento=StringSubstr(Commento, 0, 26);
            	      if (EAComment!="") {Commento=EAComment;}
            	      }
            	      else {Commento="";}

            	      if (CloseWhenPriceEqual) {Commento=DoubleToString(BuyClosePrice,Digits);}
            	      int Attempt = 0;
            	      while(Attempt <= MaxAttemptsForOpenOrder && !OrderSelect(ticketBuy,SELECT_BY_TICKET,MODE_TRADES) )
                                 {

                                    if(TradeSide==0||TradeSide==1)
                                       {
                                         if(TradeByPendingOrders)
                                            {
                                            PendingOrderOpenPriseBuy=MarketInfo(Symbol(),MODE_ASK)+DistancePending*pp;
                                            t1=GetTickCount(); 
                                            ticketBuy=OrderSend(Symbol(),OP_BUYSTOP,TradeLot,MarketInfo(Symbol(),MODE_ASK)+DistancePending*pp,0,0,0,Commento,Magic,0,MediumBlue);                                            
                                            }
                                            else
                                            {
                                            t1=GetTickCount();
                                            ticketBuy=OrderSend(Symbol(),OP_BUY,TradeLot,MarketInfo(Symbol(),MODE_ASK),MathAbs(OrdOpenSlippage),0,0,Commento,Magic,0,MediumBlue);
                                            }

                                       }

                                    if(!OrderSelect(ticketBuy,SELECT_BY_TICKET,MODE_TRADES))
                                       {
                                       Attempt++;
                                       if(ShowLog)Print("!!! Error Open Buy "+" Attempt = " +Attempt+" "+Symbol()+" "+GetErrorDescription(GetLastError()));
                                       }  
                                       else
                                       {                                          
                                       t2=GetTickCount()-t1;
                                       if(t1>0){LastOpenTime=t2;} else {LastOpenTime=0;}                                     
                                       LastGap=GapBuy;     
                                       LastOrderTime = GetTickCount();
                                       if(TradeByPendingOrders)
                                       {
                                       for (int z1=0; z1<OrdersTotal(); z1++) 
                                        {
                                    		if (OrderSelect(z1, SELECT_BY_POS, MODE_TRADES)) 
                                    		   {
                                       			if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic) 
                                       			{                   			 
                                                   if(OrderType()==OP_BUYSTOP) 
                                                   {
                                                      OpenBuyPrice=DoubleToStr(OrderOpenPrice(),5);
                                                      SlippageBuy=(PendingOrderOpenPriseBuy-OpenBuyPrice)/pp;
                                                      if(ShowLog)Print("!!! Pending Order BuyStop "+ticketBuy +" Attempt = " +Attempt +", at " +DoubleToString(OrderOpenPrice(),Digits)+", Gap = "+ DoubleToStr(LastGap,2)+" pips, Pending Order Time = "+DoubleToString(LastOpenTime,0)+" ms, Slippage = "+DoubleToString(SlippageBuy,2)+" pips." +" Account Equity = "+ DoubleToString(Eq,2)+" " +AccountCurrency()); 
                                                      pendingordertime=OrderOpenTime();
                                                      pendingorderticket=OrderTicket();

                                                      while((TimeCurrent()- pendingordertime) < PendingOrdersLifeTime && stopseach==false)
                                                      {
                                                      if(OrderSelect(pendingorderticket,SELECT_BY_TICKET,MODE_TRADES))
                                                         {
                                                         if(OrderType()==OP_BUY) 
                                                            {
                                                             OpenBuyPrice=DoubleToStr(OrderOpenPrice(),5);
                                                             SlippageBuy=(PendingOrderOpenPriseBuy-OpenBuyPrice)/pp;
                                                             if(ShowLog) Print("!!! Pending Order BuyStop "+pendingorderticket+" activated at price " +DoubleToString(OpenBuyPrice,Digits)+" PendingOrderSlippage = "+DoubleToString(SlippageBuy,2)+" pips");
                                                             stopseach=true;                                                     
                                                            }
                                                         else{stopseach=false;}                                                    
                                                         }
                                                      Sleep(100);
                                                      }                                                     
                                                   }

                                                }
                                             }
                                         }
                                         }                                
                                       if(OrderSelect(ticketBuy,SELECT_BY_TICKET,MODE_TRADES))
                                       {
                                       OpenBuyPrice=DoubleToStr(OrderOpenPrice(),5);
                                       if(TradeByPendingOrders==false){SlippageBuy=(Mt4Ask-OpenBuyPrice)/pp;}   
                                       }                                                                                                             
                                       LastOpenSlippage=SlippageBuy;                       
                                       if(RealFixTP) {FixTP2=GapBuy+LastOpenSlippage; if (FixTP2 < 0) {FixTP2=0.1;}  if(ShowLog)Print("RealFixTP = "+DoubleToString(FixTP2,2) +" pips");}
                                       if(RealFixSL) { if (LastOpenSlippage<0) {FixSL2=MathAbs(LastOpenSlippage);} if (LastOpenSlippage>=0) {FixSL2=FixSL*SpreadK+spread;}        if(ShowLog)Print("RealFixSL = "+DoubleToString(FixSL2,2) +" pips");}
                                       if(ShowLog && TradeByPendingOrders==false)Print("!!! Open Buy Order "+ticketBuy +" Attempt = " +Attempt +", at " +Symbol()+", Gap = "+ DoubleToStr(LastGap,2)+" pips, Open Time = "+DoubleToString(LastOpenTime,0)+" ms, Slippage = "+DoubleToString(LastOpenSlippage,2)+" pips." +" Account Equity = "+ DoubleToString(Eq,2)+" " +AccountCurrency());
                                       if(SoundSignal){PlaySound("ok.wav");}                                      
                                       if (StopTradingSlippage) {if((GapBuy+LastOpenSlippage) < FixTP2) {StopTradindSlip=true;}}                                     
                                       SlippageBuy=0;
                                       t2=0;
                                       t1=0;                          
                                       }                                 

                                 }             	      
                    }
                  }  

                  if( GapSell <= -(MinLev)&&NewLmaxBid==true&&LmaxBidOld>0&&TotalOrder(Magic)<NTrades&&tradeLmax==true && GetTickCount() - LastOrderTime > OrdersOpenIntervalMs&&SignalFromMt4==false)
                  {                    

                     if(MathAbs(GapSell) > MinGapForOpen && MathAbs(GapSell) > spread )
                     {
                     SignalSell=true;

                     if (UseDynamicSlippage)
                        {
                         if(SignalMode==0) OrdOpenSlippage = (LmaxBid - Mt4Bid - (MathAbs(spread - LmaxSpread)/2) * DynamicSlippageCoefficient - FixTP2)/pp;
                         if(SignalMode==1) OrdOpenSlippage = (LmaxAsk - Mt4Bid - (MathAbs(spread - LmaxSpread)/2) * DynamicSlippageCoefficient - FixTP2)/pp;

                        }
                     else { OrdOpenSlippage = OrderOpenSlippage;}

                     if(ShowCommentsInOrder) 
            	      {
            	      Commento="G"+DoubleToString(GapSell,1)+" Mb"+DoubleToString(Mt4Bid,5)+" "+OrderCommSell+"b"+DoubleToString(LmaxBid,5);
                     Commento=StringSubstr(Commento, 0, 26);
            	      if (EAComment!="") {Commento=EAComment;}
            	      }
            	      else {Commento="";} 

            	      if (CloseWhenPriceEqual) {Commento=DoubleToString(SellClosePrice,Digits);}

            	      int Attempt2 = 0;
            	      while(Attempt2 <= MaxAttemptsForOpenOrder && !OrderSelect(ticketSell,SELECT_BY_TICKET,MODE_TRADES) )
                                 {                                                                       
                                    if(TradeSide==0||TradeSide==2)
                                       {
                                          if(TradeByPendingOrders)
                                             {
                                             PendingOrderOpenPriseSell=MarketInfo(Symbol(),MODE_BID)-DistancePending*pp;
                                             t3=GetTickCount();
                                             ticketSell=OrderSend(Symbol(),OP_SELLSTOP,TradeLot,MarketInfo(Symbol(),MODE_BID)-DistancePending*pp,0,0,0,Commento,Magic,0,Green);
                                             }
                                             else
                                             {
                                             t3=GetTickCount();
                                             ticketSell=OrderSend(Symbol(),OP_SELL,TradeLot,MarketInfo(Symbol(),MODE_BID),MathAbs(OrdOpenSlippage),0,0,Commento,Magic,0,Green);
                                             }                                         
                                       }
                                       if(!OrderSelect(ticketSell,SELECT_BY_TICKET,MODE_TRADES))
                                          {
                                          Attempt2++;                                          
                                          if(ShowLog)Print("!!! Error Open Sell Order "+" Attempt = " +Attempt2+", at " +Symbol() +" " +GetErrorDescription(GetLastError()));
                                          }
                                       else
                                          {                                        
                                          int t4=GetTickCount()-t3;
                                          if(t3>0){LastOpenTime=t4;} else {LastOpenTime=0;}
                                          LastGap=GapSell;                    
                                          LastOrderTime = GetTickCount();

                                       if(TradeByPendingOrders)
                                       {
                                       for (int z1=0; z1<OrdersTotal(); z1++) 
                                        {
                                    		if (OrderSelect(z1, SELECT_BY_POS, MODE_TRADES)) 
                                    		   {
                                       			if (OrderSymbol()==Symbol() && OrderMagicNumber() == Magic) 
                                       			{                   			 
                                                   if(OrderType()==OP_SELLSTOP) 
                                                   {
                                                      OpenSellPrice=DoubleToStr(OrderOpenPrice(),5);
                                                      SlippageSell=(OpenSellPrice-PendingOrderOpenPriseSell)/pp;
                                                      if(ShowLog)Print("!!! Pending Order SellStop "+ticketSell +" Attempt = " +Attempt2 +", at " +DoubleToString(OrderOpenPrice(),Digits)+", Gap = "+ DoubleToStr(LastGap,2)+" pips, Pending Order Time = "+DoubleToString(LastOpenTime,0)+" ms, Slippage = "+DoubleToString(SlippageSell,2)+" pips." +" Account Equity = "+ DoubleToString(Eq,2)+" " +AccountCurrency()); 
                                                      pendingordertime=OrderOpenTime();
                                                      pendingorderticket=OrderTicket();

                                                      while((TimeCurrent()- pendingordertime) < PendingOrdersLifeTime && stopseach==false)
                                                      {
                                                      if(OrderSelect(pendingorderticket,SELECT_BY_TICKET,MODE_TRADES))
                                                         {
                                                         if(OrderType()==OP_SELL) 
                                                            {
                                                             OpenSellPrice=DoubleToStr(OrderOpenPrice(),5);
                                                             SlippageSell=(OpenSellPrice-PendingOrderOpenPriseSell)/pp;
                                                             if(ShowLog) Print("!!! Pending Order SellStop "+pendingorderticket+" activated at price " +DoubleToString(OpenSellPrice,Digits)+" PendingOrderSlippage = "+DoubleToString(SlippageSell,2)+" pips");
                                                             stopseach=true;                                                     
                                                            }
                                                         else{stopseach=false;}                                                    
                                                         }
                                                      Sleep(100);
                                                      }                                                     
                                                   }

                                                }
                                             }
                                         }
                                         } 

                                          if(OrderSelect(ticketSell,SELECT_BY_TICKET,MODE_TRADES))
                                          {
                                          OpenSellPrice=DoubleToStr(OrderOpenPrice(),5);                                      
                                          if(TradeByPendingOrders==false){SlippageSell=(OpenSellPrice-Mt4Bid)/pp;}  
                                          }                                        
                                          LastOpenSlippage=SlippageSell;
                                          if(RealFixTP) {FixTP2=NormalizeDouble((MathAbs(GapSell)+LastOpenSlippage),2); if (FixTP2 < 0) {FixTP2=0.1;}  if(ShowLog)Print("RealFixTP = "+DoubleToString(FixTP2,2) +" pips");}
                                          if(RealFixSL) {if (LastOpenSlippage<0) {FixSL2=NormalizeDouble(LastOpenSlippage,2); } if (LastOpenSlippage>=0){FixSL2=FixSL*SpreadK+spread;}             if(ShowLog)Print("RealFixSL = "+DoubleToString(FixSL2,2) +" pips");}
                                          if(ShowLog && TradeByPendingOrders==false)Print("!!! Open Sell Order "+ticketSell+" Attempt = "+Attempt2 +", at "+Symbol()+", Gap = "+ DoubleToStr(LastGap,2)+" pips, Open Time = "+DoubleToString(LastOpenTime,0)+" ms, Slippage= "+DoubleToString(LastOpenSlippage,2)+" pips." +" Account Equity = "+ DoubleToString(Eq,2)+" " +AccountCurrency());
                                          if(SoundSignal){PlaySound("ok.wav");}

                                          if (StopTradingSlippage) {if((MathAbs(GapSell)+LastOpenSlippage) < FixTP2) {StopTradindSlip=true;}}

                                          SlippageSell=0;
                                          t3=0;
                                          t4=0;                                                                         
                                          }
                                 }  

                  }

             } 

            if (LastOpenTime>350){text1="Bad Ping"; col1 = Red;}
            if (LastOpenTime<=350){text1="Ping OK"; col1 = Lime;}

            if (LastOpenSlippage>=0){text2="Positive"; col2 = Lime;}
            if (LastOpenSlippage<0){text2="Negative"; col2 = Red;}  

            if (LastCloseTime>350){text3="Bad Ping"; col3 = Red;}
            if (LastCloseTime<=350){text3="Ping OK"; col3 = Lime;}

            if (LastCloseSlippage>=0){text4="Positive"; col4 = Lime;}
            if (LastCloseSlippage<0){text4="Negative"; col4 = Red;}   

            if(ShirtStopLoss)
            {
            StopLoss2=spread*ShirtStopLossK;
            }

            minshag = (MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)/pp;
            if(StopLoss2<=minshag) {StopLoss2=minshag+spread; if(minshag==0){StopLoss2=spread*2;}}
            if(StopLoss2<=spread) {StopLoss2=spread*2; }        

            if(TakeProfit2<=minshag) {TakeProfit2=minshag+spread; if(minshag==0){TakeProfit2=spread*2;}}
            if(TakeProfit2<=spread||TakeProfit2<=spread) {TakeProfit2=spread*2;}                

            bool CloseOk = true;

            if(MaxSpreadCloseUse==true){if(spread >= MaxSpreadClose){CloseOk==false; LastErrorText=LastErrorText+"Trade is disabled, Spread = "+DoubleToString(NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD),2),2)+" pips is big than MaxSpreadClose = " +DoubleToString(MaxSpreadClose,2)+" pips!"+" Can change MaxSpreadClose in EA settings and start EA again!";}}
            if(MinSpreadCloseUse==true){if(spread <= MinSpreadClose){CloseOk==false; LastErrorText=LastErrorText+"Trade is disabled, Spread = "+DoubleToString(NormalizeDouble(MarketInfo(Symbol(),MODE_SPREAD),2),2)+" pips is low than MinSpreadClose = " +DoubleToString(MinSpreadClose,2)+" pips!"+" Can change MinSpreadClose in EA settings and start EA again!";}}

      		if(CloseOk)
      		{
      		if(UseFixedStopLossAndTakeProfit==true)    {EnterSLTP();}       		
            if (FixTP != 0) { if (DisableFixTP==false) {TrailingTPs();}}
      		if (FixSL != 0) { if (DisableFixSL==false) {TrailingSLs();}}

      		if (CloseTimer>0){CloseTimerFunction();}     		
      		if (CloseWhenPriceEqual == true){CloseWhenPriceEqualFunction();}

      		if(UseTrailingStop) {TrailingStopFunction();}
      		if(UseVirtualTrailingStop) {VirtualTrailingStopFunction();}
      		}

      		int stepstop=0;
      		while (TotalOrder(Magic) > 0 && StopTrading == true)
      		{ 
      		stepstop=stepstop+1;    		
      		if(UseFixedStopLossAndTakeProfit==true)    {EnterSLTP();}       		
            if (FixTP != 0) { if (DisableFixTP==false) {TrailingTPs();}}
      		if (FixSL != 0) { if (DisableFixSL==false) {TrailingSLs();}}

      		if (CloseTimer>0){CloseTimerFunction();}     		
      		if (CloseWhenPriceEqual == true){CloseWhenPriceEqualFunction();}

      		if(UseTrailingStop) {TrailingStopFunction();}
      		if(UseVirtualTrailingStop) {VirtualTrailingStopFunction();}
      		if(stepstop < 10){ObjectsDeleteAll(); Comment(""); ShowErrorsPanel(); Comment("    Wait of Closing of orders ......");}      		 
      		Sleep(100); 		
      		}

      		if (TotalOrder(Magic) == 0 && StopTrading == true) 
      		{
      		if (ShowLog ) Print ("All orders was closed! Trading was stopped!"); Comment ("    All orders was closed! Trading was stopped!");
      		}

      	   if(ShowGraf)
      	   {

      	   if(NewLmaxBid==true || NewMt4Bid==true)     	
      	   {
      	   if(LmaxBidOld > 0)
      	   {
      	   if(NewLmaxBid==true) {if(ShowPanel==false) {Comment("");ObjectsDeleteAll();   ShowWesternpipsInfoPanel(); ShowPanel=true; ShowErrorPanel=false;}}

            if (ShowPanel==true)
            {
            BarsCount=WindowBarsPerChart();
            Bar=WindowFirstVisibleBar();

            long chart_id=ChartID();
            string QTexta;
            if(ModeOfQuotes==0){QTexta="Saxo";}
            if(ModeOfQuotes==1){QTexta="Lmax";}
            if(ModeOfQuotes==2){QTexta="CQG";}
            if(ModeOfQuotes==3){QTexta="Rithmic";}

            if(NewLmaxBid==true)
            {
            if(ObjectFind(chart_id,"QBid")==-1)
            {
            ObjectCreate(chart_id,"QBid", OBJ_HLINE,0,TimeCurrent(),LmaxBid);
            ObjectSet("QBid",OBJPROP_COLOR,ColorQuotes);
            }
      	   ObjectMove("QBid",0,TimeCurrent(),LmaxBid);

      	   }

      	   if(NewLmaxBid==true)
            {
            if(ObjectFind(chart_id,"QText")==-1)
      	   {
      	   ObjectCreate(chart_id,"QText",OBJ_TEXT,0, Time[0], High[0]+(10*Point));
      	   ObjectSetText("QText", QTexta+" Bid                                                 ", 10, "Arial", ColorQuotes);
      	   }
      	   ObjectMove(chart_id,"QText", 0, (Time[0]+(BarsCount-Bar)*60*Period()), LmaxBid-((LmaxAsk-LmaxBid)/pp)*pp);      	   
      	   }

      	   if(ShowAsk)
      	   {

            if(NewLmaxAsk==true)
            {
            if(ObjectFind(chart_id,"QAsk")==-1)
            {
            ObjectCreate(chart_id,"QAsk", OBJ_HLINE,0,TimeCurrent(),LmaxAsk);
            ObjectSet("QAsk",OBJPROP_COLOR,ColorQuotes);
      	   ObjectSet("QAsk",OBJPROP_STYLE,2);
            }
      	   ObjectMove(chart_id,"QAsk",0,TimeCurrent(),LmaxAsk);
      	   }

      	   if(NewLmaxAsk==true)
            {
            if(ObjectFind(chart_id,"QAText")==-1)
      	   {
      	   ObjectCreate(chart_id,"QAText",OBJ_TEXT,0, Time[0], High[0]+(10*Point));
      	   ObjectSetText("QAText", QTexta+" Ask                                                 ", 10, "Arial", ColorQuotes);
      	   }
      	   ObjectMove(chart_id,"QAText", 0, (Time[0]+(BarsCount-Bar)*60*Period()), LmaxAsk+(2*(LmaxAsk-LmaxBid)/pp)*pp);
      	   } 

      	   }

      	   color ColorSigSellSaxo;
      	   int   SigSellSaxo = 14;
      	   int   xsell=60;
      	   int   xbuy=60;
            x=22;
            ColorSigSellSaxo = C'118,192,217';
      		if (SignalSell) 
      				{ 
      					if(tradeLmax)
                     {                    
      					SigSellSaxo = 20;
      					ColorSigSellSaxo = Yellow;
                     x=x-5;
                     xsell=75;                    
                     }
      				}
      	   if(GapSell<0) {xsell=xsell+8;}

      	   if(ObjectFind(chart_id,"GapSell")==-1)
      	   {
      	   ObjectCreate(chart_id,"GapSell",OBJ_LABEL,0, 0, 0);
      	   ObjectSetInteger(chart_id,"GapSell", OBJPROP_CORNER, 1);
      	   ObjectSetInteger(chart_id,"GapSell", OBJPROP_XDISTANCE, xsell);
      	   ObjectSetInteger(chart_id,"GapSell", OBJPROP_YDISTANCE, x+28);
      	   ObjectSetInteger(chart_id,"GapSell", OBJPROP_FONTSIZE, SigSellSaxo);
            ObjectSetString(chart_id,"GapSell", OBJPROP_FONT,"Arial");
            ObjectSetInteger(chart_id,"GapSell", OBJPROP_COLOR,ColorSigSellSaxo);
      	   }

      	   ObjectSetString(chart_id,"GapSell", OBJPROP_TEXT,DoubleToString(GapSell, 1));

      	   color ColorSigBuySaxo;
      	   int   SigBuySaxo = 14;

            ColorSigBuySaxo = C'118,192,217';
      		if (SignalBuy) 
      				{
      					if(tradeLmax)
                     { 
      					SigBuySaxo = 20;
      					ColorSigBuySaxo = Yellow;
                     x=x-5;
                     xbuy=75; 
                     }
      				}
      	   if(GapBuy<0) {xbuy=xbuy+8;}

            if(ObjectFind(chart_id,"GapBuy")==-1)
      	   {
      	   ObjectCreate(chart_id,"GapBuy",OBJ_LABEL,0, 0, 0);
      	   ObjectSetInteger(chart_id,"GapBuy", OBJPROP_CORNER, 1);
      	   ObjectSetInteger(chart_id,"GapBuy", OBJPROP_XDISTANCE, xbuy);
      	   ObjectSetInteger(chart_id,"GapBuy", OBJPROP_YDISTANCE, x);
      	   ObjectSetInteger(chart_id,"GapBuy", OBJPROP_FONTSIZE, SigBuySaxo);
            ObjectSetString(chart_id,"GapBuy", OBJPROP_FONT,"Arial");
            ObjectSetInteger(chart_id,"GapBuy", OBJPROP_COLOR,ColorSigBuySaxo);
      	   }

      	   ObjectSetString(chart_id,"GapBuy", OBJPROP_TEXT,DoubleToString(GapBuy, 1));

      	   if(ShowPriceLabel)
               { 
      	      if( SignalBuy==true ||  SignalSell==true )
                  { 
                  long tc=TimeCurrent();							         
            		ObjectCreate(0,"LmaxBid"+DoubleToString(tc,0),OBJ_ARROW_LEFT_PRICE,0,TimeCurrent(),LmaxBid);
            		ObjectSetInteger(0,"LmaxBid"+DoubleToString(tc,0),OBJPROP_COLOR,ColorQuotes);	

            		if( GapBuy >= (MinLev))
                  { 
                     ObjectCreate(0,"GapUp"+DoubleToString(tc,0),OBJ_ARROW_UP,0,TimeCurrent(),Mt4Ask-20*Point);
               		ObjectSetInteger(0,"GapUp"+DoubleToString(tc,0),OBJPROP_COLOR,LimeGreen);

               		ObjectCreate(0,"Mt4Ask"+DoubleToString(tc,0),OBJ_ARROW_LEFT_PRICE,0,TimeCurrent(),Mt4Ask);
               		ObjectSetInteger(0,"Mt4Ask"+DoubleToString(tc,0),OBJPROP_COLOR,Red);

               	   ObjectCreate(0,"SlippageBuy"+DoubleToString(tc,0),OBJ_TEXT,0, TimeCurrent(), Mt4Ask+LastOpenSlippage*Point);
               	   ObjectMove(0,"SlippageBuy"+DoubleToString(tc,0), 0, TimeCurrent(), Mt4Ask+LastOpenSlippage*Point);
               	   ObjectSetText("SlippageBuy"+DoubleToString(tc,0), "Slippage Buy= "+DoubleToString(LastOpenSlippage,2), 8, "Arial", Red);

                  }

                  if(GapSell <= -(MinLev) )
                  { 
                     ObjectCreate(0,"GapDown"+DoubleToString(tc,0),OBJ_ARROW_DOWN,0,TimeCurrent(),Mt4Bid+20*Point);
               		ObjectSetInteger(0,"GapDown"+DoubleToString(tc,0),OBJPROP_COLOR,Red);

               		ObjectCreate(0,"Mt4Bid"+DoubleToString(tc,0),OBJ_ARROW_LEFT_PRICE,0,TimeCurrent(),Mt4Bid);
               		ObjectSetInteger(0,"Mt4Bid"+DoubleToString(tc,0),OBJPROP_COLOR,Red);

               	   ObjectCreate(0,"SlippageSell"+DoubleToString(tc,0),OBJ_TEXT,0, TimeCurrent(), Mt4Bid+LastOpenSlippage*Point);
               	   ObjectMove(0,"SlippageSell"+DoubleToString(tc,0), 0, TimeCurrent(), Mt4Bid+LastOpenSlippage*Point);
               	   ObjectSetText("SlippageSell"+DoubleToString(tc,0), "Slippage Sell= "+DoubleToString(LastOpenSlippage,2), 8, "Arial", Red);
                  }
                  }
               }

            if(ObjectFind(chart_id,"minlevel")==-1)
      	   {
            ObjectCreate("minlevel", OBJ_LABEL, 0, 0, 0);
            ObjectSet("minlevel", OBJPROP_CORNER, 4);
            ObjectSet("minlevel", OBJPROP_XDISTANCE, 8);
            ObjectSet("minlevel", OBJPROP_YDISTANCE, 65);
            }
            ObjectSetText("minlevel", "Minimum Level: " +DoubleToString(MinLev,2), 9, "Arial", Lime);

            if(ObjectFind(chart_id,"fixtp")==-1)
      	   {
            ObjectCreate("fixtp", OBJ_LABEL, 0, 0, 0);
            ObjectSet("fixtp", OBJPROP_CORNER, 4);
            ObjectSet("fixtp", OBJPROP_XDISTANCE, 8);
            ObjectSet("fixtp", OBJPROP_YDISTANCE, 80);
            }
            ObjectSetText("fixtp", "FixTP: "+DoubleToString(FixTP2,2), 9, "Arial", White);

            if(ObjectFind(chart_id,"fixsl")==-1)
      	   {
            ObjectCreate("fixsl", OBJ_LABEL, 0, 0, 0);
            ObjectSet("fixsl", OBJPROP_CORNER, 4);
            ObjectSet("fixsl", OBJPROP_XDISTANCE, 8);
            ObjectSet("fixsl", OBJPROP_YDISTANCE, 95);
            }
            ObjectSetText("fixsl", "FixSL: "+DoubleToString(FixSL2,2), 9, "Arial", White);

            if(ObjectFind(chart_id,"sl")==-1)
      	   {
            ObjectCreate("sl", OBJ_LABEL, 0, 0, 0);
            ObjectSet("sl", OBJPROP_CORNER, 4);
            ObjectSet("sl", OBJPROP_XDISTANCE, 8);
            ObjectSet("sl", OBJPROP_YDISTANCE, 110);
            }
            ObjectSetText("sl", "StopLoss: "+DoubleToString(StopLoss2,2), 9, "Arial", White);

            if(ObjectFind(chart_id,"tp")==-1)
      	   {
            ObjectCreate("tp", OBJ_LABEL, 0, 0, 0);
            ObjectSet("tp", OBJPROP_CORNER, 4);
            ObjectSet("tp", OBJPROP_XDISTANCE, 8);
            ObjectSet("tp", OBJPROP_YDISTANCE, 125);
            }
            ObjectSetText("tp", "TakeProfit: "+DoubleToString(TakeProfit2,2), 9, "Arial", White);

            if(ObjectFind(chart_id,"RiskPersent")==-1)
      	   {
            ObjectCreate("RiskPersent", OBJ_LABEL, 0, 0, 0);
            ObjectSet("RiskPersent", OBJPROP_CORNER, 4);
            ObjectSet("RiskPersent", OBJPROP_XDISTANCE, 8);
            ObjectSet("RiskPersent", OBJPROP_YDISTANCE, 165);
            }
            ObjectSetText("RiskPersent","RiskPercent: " +DoubleToString(RiskPercent,0), 9, "Arial", White);

            if(ObjectFind(chart_id,"Lots")==-1)
      	   {
            ObjectCreate("Lots", OBJ_LABEL, 0, 0, 0);
            ObjectSet("Lots", OBJPROP_CORNER, 4);
            ObjectSet("Lots", OBJPROP_XDISTANCE, 8);
            ObjectSet("Lots", OBJPROP_YDISTANCE, 180);
            }
            ObjectSetText("Lots","Lots: " +TradeLot, 9, "Arial", Lime);

            if(ObjectFind(chart_id,"max_Lots")==-1)
      	   {
            ObjectCreate("max_Lots", OBJ_LABEL, 0, 0, 0);
            ObjectSet("max_Lots", OBJPROP_CORNER, 4);
            ObjectSet("max_Lots", OBJPROP_XDISTANCE, 8);
            ObjectSet("max_Lots", OBJPROP_YDISTANCE, 195);
            }
            ObjectSetText("max_Lots","Max Lots: " +DoubleToString(max_Lots,3), 9, "Arial", White);

            if(ObjectFind(chart_id,"RiskDeposit")==-1)
      	   {
            ObjectCreate("RiskDeposit", OBJ_LABEL, 0, 0, 0);
            ObjectSet("RiskDeposit", OBJPROP_CORNER, 4);
            ObjectSet("RiskDeposit", OBJPROP_XDISTANCE, 8);
            ObjectSet("RiskDeposit", OBJPROP_YDISTANCE, 210);
            }
            ObjectSetText("RiskDeposit","Deposit Stop if Loss: " +DoubleToString(DepositStop,0), 9, "Arial", White);

            if(ObjectFind(chart_id,"DepositStopIfProfit")==-1)
      	   {
            ObjectCreate("DepositStopIfProfit", OBJ_LABEL, 0, 0, 0);
            ObjectSet("DepositStopIfProfit", OBJPROP_CORNER, 4);
            ObjectSet("DepositStopIfProfit", OBJPROP_XDISTANCE, 8);
            ObjectSet("DepositStopIfProfit", OBJPROP_YDISTANCE, 225);
            }
            ObjectSetText("DepositStopIfProfit","Deposit Stop If Profit: " +DoubleToString(DepositStopIfProfit,0), 9, "Arial", White);

            if(ObjectFind(chart_id,"datafeed")==-1)
      	   {                      
            ObjectCreate("datafeed", OBJ_LABEL, 0, 0, 0);
            ObjectSet("datafeed", OBJPROP_CORNER, 4);
            ObjectSet("datafeed", OBJPROP_XDISTANCE, 210);
            ObjectSet("datafeed", OBJPROP_YDISTANCE, 100);
            }
            ObjectSetText("datafeed", QText, 9, "Arial", ColorQuotes);

            if(ObjectFind(chart_id,"lmaxsymb")==-1)
      	   {
            ObjectCreate("lmaxsymb", OBJ_LABEL, 0, 0, 0);
            ObjectSet("lmaxsymb", OBJPROP_CORNER, 4);
            ObjectSet("lmaxsymb", OBJPROP_XDISTANCE, 210);
            ObjectSet("lmaxsymb", OBJPROP_YDISTANCE, 115);
            }
            ObjectSetText("lmaxsymb", SymbCode, 9, "Arial", White);

            if(ObjectFind(chart_id,"dfsymb")==-1)
      	   {                    
            ObjectCreate("dfsymb", OBJ_LABEL, 0, 0, 0);
            ObjectSet("dfsymb", OBJPROP_CORNER, 4);
            ObjectSet("dfsymb", OBJPROP_XDISTANCE, 210);
            ObjectSet("dfsymb", OBJPROP_YDISTANCE, 130);
            }
            ObjectSetText("dfsymb", "Spread: "+DoubleToString((LmaxAsk-LmaxBid)/pp,2), 9, "Arial", White);

            if(ObjectFind(chart_id,"lmaxask")==-1)
      	   {
            ObjectCreate("lmaxask", OBJ_LABEL, 0, 0, 0);
            ObjectSet("lmaxask", OBJPROP_CORNER, 4);
            ObjectSet("lmaxask", OBJPROP_XDISTANCE, 210);
            ObjectSet("lmaxask", OBJPROP_YDISTANCE, 145);
            }
            ObjectSetText("lmaxask", lmaxtexta+" Ask: "+DoubleToString(LmaxAsk,Digits), 9, "Arial", White);

            if(ObjectFind(chart_id,"lmaxbid")==-1)
      	   {
            ObjectCreate("lmaxbid", OBJ_LABEL, 0, 0, 0);
            ObjectSet("lmaxbid", OBJPROP_CORNER, 4);
            ObjectSet("lmaxbid", OBJPROP_XDISTANCE, 210);
            ObjectSet("lmaxbid", OBJPROP_YDISTANCE, 160);
            }
            ObjectSetText("lmaxbid", lmaxtexta+" Bid: "+DoubleToString(LmaxBid,Digits), 9, "Arial", White);

            if(ObjectFind(chart_id,"broker")==-1)
      	   {
            ObjectCreate("broker", OBJ_LABEL, 0, 0, 0);
            ObjectSet("broker", OBJPROP_CORNER, 4);
            ObjectSet("broker", OBJPROP_XDISTANCE, 360);
            ObjectSet("broker", OBJPROP_YDISTANCE, 100);
            }
            ObjectSetText("broker",AccountInfoString(ACCOUNT_COMPANY), 9, "Arial", Yellow);

            if(ObjectFind(chart_id,"mt4symb")==-1)
      	   {
            ObjectCreate("mt4symb", OBJ_LABEL, 0, 0, 0);
            ObjectSet("mt4symb", OBJPROP_CORNER, 4);
            ObjectSet("mt4symb", OBJPROP_XDISTANCE, 360);
            ObjectSet("mt4symb", OBJPROP_YDISTANCE, 115);
            }
            ObjectSetText("mt4symb", Symbol(), 9, "Arial", White);

            if(ObjectFind(chart_id,"spread")==-1)
      	   {
            ObjectCreate("spread", OBJ_LABEL, 0, 0, 0);
            ObjectSet("spread", OBJPROP_CORNER, 4);
            ObjectSet("spread", OBJPROP_XDISTANCE, 360);
            ObjectSet("spread", OBJPROP_YDISTANCE, 130);
            }
            ObjectSetText("spread","Spread: " +DoubleToString(spread,2), 9, "Arial", White);

            if(ObjectFind(chart_id,"mt4ask")==-1)
      	   {
            ObjectCreate("mt4ask", OBJ_LABEL, 0, 0, 0);
            ObjectSet("mt4ask", OBJPROP_CORNER, 4);
            ObjectSet("mt4ask", OBJPROP_XDISTANCE, 360);
            ObjectSet("mt4ask", OBJPROP_YDISTANCE, 145);
            }
            ObjectSetText("mt4ask", "Mt4 Ask: "+DoubleToString(Mt4Ask,Digits), 9, "Arial", White);

            if(ObjectFind(chart_id,"mt4bid")==-1)
      	   {
            ObjectCreate("mt4bid", OBJ_LABEL, 0, 0, 0);
            ObjectSet("mt4bid", OBJPROP_CORNER, 4);
            ObjectSet("mt4bid", OBJPROP_XDISTANCE, 360);
            ObjectSet("mt4bid", OBJPROP_YDISTANCE, 160);
            }
            ObjectSetText("mt4bid", "Mt4 Bid: "+DoubleToString(Mt4Bid,Digits), 9, "Arial", White);

            if(ObjectFind(chart_id,"ExOpen")==-1)
      	   {
            ObjectCreate("ExOpen", OBJ_LABEL, 0, 0, 0);
            ObjectSet("ExOpen", OBJPROP_CORNER, 4);
            ObjectSet("ExOpen", OBJPROP_XDISTANCE, 210);
            ObjectSet("ExOpen", OBJPROP_YDISTANCE, 220);
            }
            ObjectSetText("ExOpen", "Open Order Execution Time: "+DoubleToString(LastOpenTime,0)+" ms", 9, "Arial", White);  

            if(ObjectFind(chart_id,"ExOpen1")==-1)
      	   {
            ObjectCreate("ExOpen1", OBJ_LABEL, 0, 0, 0);
            ObjectSet("ExOpen1", OBJPROP_CORNER, 4);
     

Показано первые 50% кода (символов: 104202)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
10 420,20₽ ≈ $127.36