MultiTrader
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «multitrader.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
MultiTrader — торговый советник для MetaTrader 4, предоставляющий мультивалютный дашборд для мониторинга и торговли на рынке Forex. Программа отображает панель с информацией по 28 основным валютным парам, включая текущие цены, спреды, открытые позиции, плавающий профит и процентные изменения за выбранный период. Поддерживаются три режима отображения панели: полный, компактный и мини.
Советник реализует систему алертов на основе уровней покупки и продажи, рассчитанных по процентному изменению цены за дневной, недельный или месячный период. При достижении заданных уровней генерируются уведомления с возможностью подсказки коррелирующей валютной пары. Поддерживаются всплывающие окна, push-уведомления и отправка email.
Торговая функциональность включает возможность открытия и закрытия рыночных ордеров через кнопки на панели, поддержку однонажатия и клавиатурного управления. Автоматические стоп-лосс, тейк-профит и расчёт размера лота на основе ATR и заданного риска доступны как опциональные функции. Советник работает с магическим номером для идентификации своих ордеров и поддерживает настройку проскальзывания.
Настройки программы
| Настройка | Описание |
|---|---|
| SelectedMode | Режим отображения — Выбор режима панели: Full, Compact или Mini |
| CalcPeriod | Период расчёта — Выбор таймфрейма для расчёта: Daily, Weekly или Monthly |
| High Level % (BuyLevel) | Уровень покупки — Процентный уровень для сигнала на покупку (High Level %) |
| Low Level % (SellLevel) | Уровень продажи — Процентный уровень для сигнала на продажу (Low Level %) |
| Symbol Prefix (Prefix) | Префикс символа — Префикс, добавляемый к названиям валютных пар |
| Symbol Suffix (Suffix) | Суффикс символа — Суффикс, добавляемый к названиям валютных пар |
| OneClickTrading | Однонажатие — Включает или отключает режим торговли одним кликом |
| Magic Number (MagicNumber) | Магический номер — Идентификатор ордеров для фильтрации |
| Slippage (Slippage) | Проскальзывание — Максимально допустимое проскальзывание в пунктах |
| ATRTF | Таймфрейм ATR — Таймфрейм для расчёта ATR |
| ATRPeriod | Период ATR — Период расчёта ATR |
| ATRMulti | Множитель ATR — Множитель для ATR при расчёте стоп-лосса |
| PairSuggest | Подсказки пар — Включает или отключает подсказки валютных пар в алертах |
| SmartAlert | Умные алерты — Включает или отключает условные алерты с триггерами |
| _Alert | Всплывающие окна — Включает или отключает всплывающие уведомления |
| Push | Push-уведомления — Включает или отключает push-уведомления |
| Email — Включает или отключает отправку алертов на email | |
| COLOR_BORDER | Цвет рамки — Цвет рамки панели |
| COLOR_CBG_LIGHT | Фон светлый — Цвет фона графика в светлой теме |
| COLOR_CBG_DARK | Фон тёмный — Цвет фона графика в тёмной теме |
Поиск по коду файла
#define Copyright "Copyright ? 2019, MhFx7 <> Mani Heshmat"
#define Link ""
#define Version "1.00"
#property version Version
#property strict
#define ExpertName "MultiTrader"
#define OBJPREFIX "MT - "
#property description "Warning: The automatically generated lot size is an estimated value and should not be considered accurate, note that this feature always requires a stoploss distance.\n"
#property description "Note: All displayed values symbolized with a \"p\" as well as all input distances are in points.\n"
#property description "This software is provided free of charge and can be downloaded under the following link:"
#property description ""
#define CLIENT_BG_WIDTH 1190
#define INDENT_TOP 15
#define OPENPRICE 0
#define CLOSEPRICE 1
#define OP_ALL -1
#define KEY_UP 38
#define KEY_DOWN 40
enum ENUM_TF{DAILY/*Daily*/,WEEKLY/*Weekly*/,MONTHLY/*Monthly*/};
enum ENUM_MODE{FULL/*Full*/,COMPACT/*Compact*/,MINI/*Mini*/};
input string ?=" < - - - General - - - >";
input ENUM_MODE SelectedMode = COMPACT;/*Dashboard (Size)*/
input ENUM_TF CalcPeriod = DAILY;/*Time Frame*/
input int BuyLevel = 90;//High Level %
input int SellLevel = 10;//Low Level %
input string Prefix = "";//Symbol Prefix
input string Suffix = "";//Symbol Suffix
extern string TradeSymbols = "AUDCAD;AUDCHF;AUDJPY;AUDNZD;AUDUSD;CADCHF;CADJPY;CHFJPY;EURAUD;EURCAD;EURCHF;EURGBP;EURJPY;EURNZD;EURUSD;GBPAUD;GBPCAD;GBPCHF;GBPNZD;GBPUSD;GBPJPY;NZDCHF;NZDCAD;NZDJPY;NZDUSD;USDCAD;USDCHF;USDJPY;";/*Symbol List (separated by " ; ")*/
input string ?? = " < - - - Trading - - - >";
input bool OneClickTrading = true;/*One-Click Trading*/
input int MagicNumber = 0;//Magic Number
input int Slippage = 3;//Slippage
input bool KeyboardTrading = true;/*Keyboard Trading*/
input string BuyKey = "B";/*Buy Key*/
input string CloseKey = "C";/*Close Key*/
input string SellKey = "S";/*Sell Key*/
input string ??? = " < - - - AutoSL - - - >";
input ENUM_TIMEFRAMES ATRTF = PERIOD_H1;/*ATR Time Frame*/
input int ATRPeriod = 14;/*ATR Period*/
extern double ATRMulti = 1;/*ATR Multiplier*/
input string ???? = " < - - - Alerts - - - >";
input bool PairSuggest = true;/*Suggestions*/
input bool SmartAlert = true;/*Smart Alerts*/
input bool _Alert = true;/*Pop-ups*/
input bool Push = false;/*Push*/
input bool Mail = false;/*Email*/
input string ????? = " < - - - Graphics - - - >";
input color COLOR_BORDER = C'255,151,25';/*Panel Border*/
input color COLOR_CBG_LIGHT = C'252,252,252';/*Chart Background (Light)*/
input color COLOR_CBG_DARK = C'28,27,26';/*Chart Background (Dark)*/
string sTradeSymbols = TradeSymbols;
string sFontType = "";
double RiskP = 0;
double RiskC = 0;
double RiskInpC = 0;
double RiskInpP = 0;
int ResetAlertUp = 0;
int ResetAlertDwn = 0;
bool UserIsEditing = false;
bool UserWasNotified = false;
double StopLossDist = 0;
double RiskInp = 0;
double RR = 0;
double _TP = 0;
int SelectedTheme = 0;
int PriceRowLeft = 0;
int PriceRowRight = 0;
bool ShowTradePanel = true;
int ErrorInterval = 300;
int LastReason = 0;
string ErrorSound = "error.wav";
bool SoundIsEnabled = false;
bool AlarmIsEnabled = false;
int ProfitMode = 0;
bool AUDAlarm = true;
bool CADAlarm = true;
bool CHFAlarm = true;
bool EURAlarm = true;
bool GBPAlarm = true;
bool JPYAlarm = true;
bool NZDAlarm = true;
bool USDAlarm = true;
bool AUDTrigger = false;
bool CADTrigger = false;
bool CHFTrigger = false;
bool EURTrigger = false;
bool GBPTrigger = false;
bool JPYTrigger = false;
bool NZDTrigger = false;
bool USDTrigger = false;
string SuggestedPair = "";
int LastTimeFrame = 0;
int LastMode = -1;
bool AutoSL = false;
bool AutoTP = false;
bool AutoLots = false;
bool ClearedTemplate = false;
bool FirstRun = true;
color COLOR_BG = clrNONE;
color COLOR_FONT = clrNONE;
color COLOR_GREEN = clrForestGreen;
color COLOR_RED = clrFireBrick;
color COLOR_SELL = C'225,68,29';
color COLOR_BUY = C'3,95,172';
color COLOR_CLOSE = clrNONE;
color COLOR_AUTO = clrDodgerBlue;
color COLOR_LOW = clrNONE;
color COLOR_MARKER = clrNONE;
int FONTSIZE = 9;
int _x1 = 0;
int _y1 = 0;
int ChartX = 0;
int ChartY = 0;
int Chart_XSize = 0;
int Chart_YSize = 0;
int CalcTF = 0;
datetime drop_time = 0;
datetime stauts_time = 0;
color COLOR_REGBG = C'27,27,27';
color COLOR_REGFONT = clrSilver;
int Bck_Win_X = 255;
int Bck_Win_Y = 150;
string aSymbols[];
string UsedSymbols[];
string MB_CAPTION=ExpertName+" v"+Version+" | "+Copyright;
string PriceRowLeftArr[]={"Bid","Low","Open","Pivot"};
string PriceRowRightArr[]={"Ask","High","Open","Pivot"};
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
EventKillTimer();
if(reason!=REASON_INITFAILED && !MQLInfoInteger(MQL_TESTER))
{
for(int i=0; i<ArraySize(aSymbols); i++)
{
GlobalVariableDel(Prefix+aSymbols[i]+Suffix+" - Price");
if(ShowTradePanel)
{
GlobalVariableSet(OBJPREFIX+Prefix+aSymbols[i]+Suffix+" - Stoploss",StringToDouble(ObjectGetString(0,OBJPREFIX+"SL<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT)));
GlobalVariableSet(OBJPREFIX+Prefix+aSymbols[i]+Suffix+" - Takeprofit",StringToDouble(ObjectGetString(0,OBJPREFIX+"_TP<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT)));
GlobalVariableSet(OBJPREFIX+Prefix+aSymbols[i]+Suffix+" - Lotsize",StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT)));
}
}
if(ShowTradePanel)
{
GlobalVariableSet(OBJPREFIX+"Stoploss",StringToDouble(ObjectGetString(0,OBJPREFIX+"SL<>",OBJPROP_TEXT)));
GlobalVariableSet(OBJPREFIX+"Takeprofit",StringToDouble(ObjectGetString(0,OBJPREFIX+"_TP<>",OBJPROP_TEXT)));
GlobalVariableSet(OBJPREFIX+"Lotsize",StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT)));
}
GlobalVariableSet(OBJPREFIX+"Theme",SelectedTheme);
GlobalVariableSet(OBJPREFIX+"Dashboard",ShowTradePanel);
GlobalVariableSet(OBJPREFIX+"Sound",SoundIsEnabled);
GlobalVariableSet(OBJPREFIX+"Alarm",AlarmIsEnabled);
GlobalVariableSet(OBJPREFIX+"AutoSL",AutoSL);
GlobalVariableSet(OBJPREFIX+"AutoTP",AutoTP);
GlobalVariableSet(OBJPREFIX+"AutoLots",AutoLots);
GlobalVariableSet(OBJPREFIX+"RR",RR);
GlobalVariableSet(OBJPREFIX+"Risk",RiskInp);
GlobalVariableSet(OBJPREFIX+"PRL",PriceRowLeft);
GlobalVariableSet(OBJPREFIX+"PRR",PriceRowRight);
GlobalVariablesFlush();
}
if(reason<=REASON_REMOVE || reason==REASON_CLOSE || reason==REASON_RECOMPILE || reason==REASON_INITFAILED || reason==REASON_ACCOUNT)
{
ObjectsDeleteAll(0,OBJPREFIX,-1,-1);
DelteMinWindow();
}
if(reason<=REASON_REMOVE || reason==REASON_CLOSE || reason==REASON_RECOMPILE)
{
if(ClearedTemplate)
ChartSetColor(2);
}
ChartMouseScrollSet(true);
if(!GlobalVariableCheck(OBJPREFIX+"Registred"))
GlobalVariableSet(OBJPREFIX+"Registred",1);
LastMode=SelectedMode;
LastReason=reason;
}
void OnTimer()
{
if(PairSuggest)
ResetTrigger();
if(ArraySize(aSymbols)>ArraySize(UsedSymbols))
{
for(int i=0; i<ArraySize(aSymbols); i++)
SpeedOmeter(Prefix+aSymbols[i]+Suffix);
}
else
{
for(int i=0; i<ArraySize(UsedSymbols); i++)
SpeedOmeter(Prefix+UsedSymbols[i]+Suffix);
}
if(drop_time<TimeLocal()-15)
{
if((CalcPeriod==DAILY && Hour()>=4) || (CalcPeriod==WEEKLY && TimeDayOfWeek(TimeCurrent())>=2) || (CalcPeriod==MONTHLY && Day()>=4))
Alert();
}
if(ShowTradePanel)
{
ObjectsCreateAll();
for(int i=0; i<ArraySize(aSymbols); i++)
{
ObjectsUpdateAll(Prefix+aSymbols[i]+Suffix);
GetSetInputs(Prefix+aSymbols[i]+Suffix);
}
GetSetInputsA();
OverAllInfo();
CStrenghts();
if(LastReason==REASON_CHARTCHANGE)
{
Chart_XSize=(int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
Chart_YSize=(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
ChartX=Chart_XSize;
ChartY=Chart_YSize;
LastReason=0;
}
if(ChartX!=Chart_XSize || ChartY!=Chart_YSize)
{
ObjectsDeleteAll(0,OBJPREFIX,-1,-1);
ObjectsCreateAll();
ChartX=Chart_XSize;
ChartY=Chart_YSize;
}
Chart_XSize=(int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
Chart_YSize=(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
if(TerminalInfoInteger(TERMINAL_CONNECTED))
{
if(ObjectGetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TEXT)!="?")//GetObject
ObjectSetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TEXT,"?");//SetObject
if(ObjectGetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TOOLTIP)!="Connected")//GetObject
{
double Ping=TerminalInfoInteger(TERMINAL_PING_LAST);//SetPingToMs
ObjectSetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TOOLTIP,"Connected..."+"\nPing: "+DoubleToString(Ping/1000,2)+" ms");//SetObject
}
}
else
{
if(ObjectGetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TEXT)!="?")//GetObject
ObjectSetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TEXT,"?");//SetObject
if(ObjectGetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TOOLTIP)!="No connection!")//GetObject
ObjectSetString(0,OBJPREFIX+"CONNECTION",OBJPROP_TOOLTIP,"No connection!");//SetObject
}
if(stauts_time<TimeLocal()-1)
ResetStatus();
Comment("");
ChartRedraw();
}
else
CreateMinWindow();
}
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id==CHARTEVENT_KEYDOWN)
{
if(KeyboardTrading)
{
if(lparam==StringGetChar(BuyKey,0))
{
OrderSend(_Symbol,OP_BUY);
ObjectSetInteger(0,OBJPREFIX+"BUY"+" - "+_Symbol,OBJPROP_STATE,false);//SetObject
}
if(lparam==StringGetChar(SellKey,0))
{
OrderSend(_Symbol,OP_SELL);
ObjectSetInteger(0,OBJPREFIX+"SELL"+" - "+_Symbol,OBJPROP_STATE,false);//SetObject
}
if(lparam==StringGetChar(CloseKey,0))
{
if(OpenPos(_Symbol,OP_ALL)==0)
{
SetStatus("?","No open orders...");
Sleep(100);
ObjectSetInteger(0,OBJPREFIX+"CLOSE"+" - "+_Symbol,OBJPROP_STATE,false);//SetObject
}
OrderClose(_Symbol);
ObjectSetInteger(0,OBJPREFIX+"CLOSE"+" - "+_Symbol,OBJPROP_STATE,false);//SetObject
}
if(lparam==KEY_UP)
{
int index=0;
for(int i=0; i<ArraySize(aSymbols); i++)
{
if(_Symbol==Prefix+aSymbols[i]+Suffix)
{
index=i-1;
if(index<0)
index=ArraySize(aSymbols)-1;
if(SymbolFind(Prefix+aSymbols[index]+Suffix,false))
{
ChartSetSymbolPeriod(0,Prefix+aSymbols[index]+Suffix,PERIOD_CURRENT);
SetStatus("?","Switched to "+aSymbols[index]);
break;
}
}
}
}
if(lparam==KEY_DOWN)
{
int index=0;
for(int i=0; i<ArraySize(aSymbols); i++)
{
if(_Symbol==Prefix+aSymbols[i]+Suffix)
{
index=i+1;
if(index>=ArraySize(aSymbols))
index=0;
if(SymbolFind(Prefix+aSymbols[index]+Suffix,false))
{
ChartSetSymbolPeriod(0,Prefix+aSymbols[index]+Suffix,PERIOD_CURRENT);
SetStatus("?","Switched to "+aSymbols[index]);
break;
}
}
}
}
}
}
if(id==CHARTEVENT_OBJECT_CLICK)
{
for(int i=0; i<ArraySize(Currenies); i++)
{
if(sparam==OBJPREFIX+"SL<>"+" - "+Currenies[i] || sparam==OBJPREFIX+"LOTSIZE<>"+" - "+Currenies[i] || sparam==OBJPREFIX+"_TP<>"+" - "+Currenies[i] || sparam==OBJPREFIX+"RISK%<>" || sparam==OBJPREFIX+"RISK$<>" || sparam==OBJPREFIX+"RR<>")
UserIsEditing=true;
if(sparam==OBJPREFIX+"BUY"+" - "+Currenies[i])
{
BuyBasket(Currenies[i]);
ObjectSetInteger(0,OBJPREFIX+"BUY"+" - "+Currenies[i],OBJPROP_STATE,false);//SetObject
}
if(sparam==OBJPREFIX+"CLOSE"+" - "+Currenies[i])
{
CloseBasket(Currenies[i]);
ObjectSetInteger(0,OBJPREFIX+"CLOSE"+" - "+Currenies[i],OBJPROP_STATE,false);//SetObject
}
if(sparam==OBJPREFIX+"SELL"+" - "+Currenies[i])
{
SellBasket(Currenies[i]);
ObjectSetInteger(0,OBJPREFIX+"SELL"+" - "+Currenies[i],OBJPROP_STATE,false);//SetObject
}
}
for(int i=0; i<ArraySize(aSymbols); i++)
{
if(sparam==OBJPREFIX+"SELL"+" - "+Prefix+aSymbols[i]+Suffix)
{
OrderSend(Prefix+aSymbols[i]+Suffix,OP_SELL);
ObjectSetInteger(0,OBJPREFIX+"SELL"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_STATE,false);//SetObject
break;
}
if(sparam==OBJPREFIX+"BUY"+" - "+Prefix+aSymbols[i]+Suffix)
{
OrderSend(Prefix+aSymbols[i]+Suffix,OP_BUY);
ObjectSetInteger(0,OBJPREFIX+"BUY"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_STATE,false);//SetObject
break;
}
if(sparam==OBJPREFIX+"CLOSE"+" - "+Prefix+aSymbols[i]+Suffix)
{
if(OpenPos(Prefix+aSymbols[i]+Suffix,OP_ALL)==0)
{
SetStatus("?","No open orders...");
Sleep(100);
ObjectSetInteger(0,OBJPREFIX+"CLOSE"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_STATE,false);//SetObject
break;
}
OrderClose(Prefix+aSymbols[i]+Suffix);
ObjectSetInteger(0,OBJPREFIX+"CLOSE"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_STATE,false);//SetObject
break;
}
if(sparam==OBJPREFIX+"LOTSIZE<"+" - "+Prefix+aSymbols[i]+Suffix)
{
if(!AutoLots)
{
double LotSize=StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT,0,DoubleToString(LotSize-=LotStep(Prefix+aSymbols[i]+Suffix),2));//SetObject
}
}
if(sparam==OBJPREFIX+"LOTSIZE>"+" - "+Prefix+aSymbols[i]+Suffix)
{
if(!AutoLots)
{
double LotSize=StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT,0,DoubleToString(LotSize+=LotStep(Prefix+aSymbols[i]+Suffix),2));//SetObject
}
}
if(sparam==OBJPREFIX+"SETSL<>")
{
if(!AutoSL)
{
double StopLoss=StringToDouble(ObjectGetString(0,OBJPREFIX+"SL<>",OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"SL<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT,0,DoubleToString(StopLoss,0));//SetObject
}
else
{
SetStatus("?","Disable auto sl first...");
_PlaySound(ErrorSound);
Sleep(100);
ObjectSetInteger(0,OBJPREFIX+"SETSL<>",OBJPROP_STATE,false);//SetObject
break;
}
ObjectSetInteger(0,OBJPREFIX+"SETSL<>",OBJPROP_STATE,false);//SetObject
}
if(sparam==OBJPREFIX+"SETTP<>")
{
if(!AutoTP)
{
double TakeProfit=StringToDouble(ObjectGetString(0,OBJPREFIX+"_TP<>",OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"_TP<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT,0,DoubleToString(TakeProfit,0));//SetObject
}
else
{
SetStatus("?","Disable auto tp first...");
_PlaySound(ErrorSound);
Sleep(100);
ObjectSetInteger(0,OBJPREFIX+"SETTP<>",OBJPROP_STATE,false);//SetObject
break;
}
ObjectSetInteger(0,OBJPREFIX+"SETTP<>",OBJPROP_STATE,false);//SetObject
}
if(sparam==OBJPREFIX+"SETLOTS<>")
{
if(!AutoLots)
{
double LotSize=StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>"+" - "+Prefix+aSymbols[i]+Suffix,OBJPROP_TEXT,0,DoubleToString(LotSize,2));//SetObject
}
else
{
SetStatus("?","Disable auto lots first...");
_PlaySound(ErrorSound);
Sleep(100);
ObjectSetInteger(0,OBJPREFIX+"SETLOTS<>",OBJPROP_STATE,false);//SetObject
break;
}
ObjectSetInteger(0,OBJPREFIX+"SETLOTS<>",OBJPROP_STATE,false);//SetObject
}
if(sparam==OBJPREFIX+Prefix+aSymbols[i]+Suffix)
{
ChartSetSymbolPeriod(0,Prefix+aSymbols[i]+Suffix,PERIOD_CURRENT);
SetStatus("?","Switched to "+aSymbols[i]);
break;
}
}
if(sparam==OBJPREFIX+"EXIT")
{
if(MessageBox("Are you sure you want to exit?",MB_CAPTION,MB_ICONQUESTION|MB_YESNO)==IDYES)
ExpertRemove();//Exit
}
if(sparam==OBJPREFIX+"MINIMIZE")
{
ObjectsDeleteAll(0,OBJPREFIX,-1,-1);
CreateMinWindow();
ShowTradePanel=false;
ChartMouseScrollSet(true);
ChartSetColor(2);
ClearedTemplate=false;
}
if(sparam==OBJPREFIX+"MIN"+"MAXIMIZE")
{
DelteMinWindow();
ObjectsCreateAll();
ShowTradePanel=true;
ChartMouseScrollSet(false);
}
if(sparam==OBJPREFIX+"CONNECTION")
{
double Ping=TerminalInfoInteger(TERMINAL_PING_LAST);//SetPingToMs
if(TerminalInfoInteger(TERMINAL_CONNECTED))
SetStatus("\n","Ping: "+DoubleToString(Ping/1000,2)+" ms");
else
SetStatus("?","No Internet connection...");
}
if(sparam==OBJPREFIX+"TIME" || sparam==OBJPREFIX+"TIME?")
SetStatus("\n",_DayOfWeek()+", "+IntegerToString(TimeDay(TimeLocal()))+" "+_Month()+" "+IntegerToString(TimeDayOfYear(TimeLocal())));
if(sparam==OBJPREFIX+"THEME")
{
if(SelectedTheme==0)
{
ObjectsDeleteAll(0,OBJPREFIX,-1,-1);
COLOR_BG=C'28,28,28';
COLOR_FONT=clrSilver;
COLOR_GREEN=clrLimeGreen;
COLOR_RED=clrRed;
COLOR_LOW=clrYellow;
COLOR_MARKER=clrGold;
ObjectsCreateAll();
SelectedTheme=1;
SetStatus("?","Dark theme selected...");
Sleep(250);
ResetStatus();
}
else
{
ObjectsDeleteAll(0,OBJPREFIX,-1,-1);
COLOR_BG=C'240,240,240';
COLOR_FONT=C'40,41,59';
COLOR_GREEN=clrForestGreen;
COLOR_RED=clrIndianRed;
COLOR_LOW=clrGoldenrod;
COLOR_MARKER=clrDarkOrange;
ObjectsCreateAll();
SelectedTheme=0;
SetStatus("?","Light theme selected...");
Sleep(250);
ResetStatus();
}
}
if(sparam==OBJPREFIX+"TEMPLATE")
{
if(!ClearedTemplate)
{
if(SelectedTheme==0)
{
ChartSetColor(0);
ClearedTemplate=true;
SetStatus("?","Chart color cleared...");
}
else
{
ChartSetColor(1);
ClearedTemplate=true;
SetStatus("?","Chart color cleared...");
}
}
else
{
ChartSetColor(2);
ClearedTemplate=false;
SetStatus("?","Original chart color applied...");
}
}
GetParam(sparam);
if(sparam==OBJPREFIX+"SOUND" || sparam==OBJPREFIX+"SOUNDIO")
{
if(!SoundIsEnabled)
{
SoundIsEnabled=true;
ObjectSetInteger(0,OBJPREFIX+"SOUNDIO",OBJPROP_COLOR,C'59,41,40');//SetObject
SetStatus("?","Sounds enabled...");
PlaySound("sound.wav");
}
else
{
SoundIsEnabled=false;
ObjectSetInteger(0,OBJPREFIX+"SOUNDIO",OBJPROP_COLOR,clrNONE);//SetObject
SetStatus("?","Sounds disabled...");
}
}
if(sparam==OBJPREFIX+"ALARM" || sparam==OBJPREFIX+"ALARMIO")
{
if(!AlarmIsEnabled)
{
AlarmIsEnabled=true;
ObjectSetInteger(0,OBJPREFIX+"ALARMIO",OBJPROP_COLOR,clrNONE);
string message="\n";
if(_Alert)
message="[Pop-up]";
if(Push)
StringAdd(message,"[Push]");
if(Mail)
StringAdd(message,"[Email]");
if(!_Alert && !Push && !Mail)
{
Alert(OBJPREFIX+"No alert method selected!");
return;
}
Alert("Alerts enabled "+message);
SetStatus("?","Alerts enabled...");
}
else
{
AlarmIsEnabled=false;
ObjectSetInteger(0,OBJPREFIX+"ALARMIO",OBJPROP_COLOR,C'59,41,40');
SetStatus("?","Alerts disabled...");
}
}
if(sparam==OBJPREFIX+"BALANCE?")
{
string text="";
if(_AccountCurrency()=="$" || _AccountCurrency()=="?")
text=_AccountCurrency()+DoubleToString(AccountInfoDouble(ACCOUNT_EQUITY),2);
else
text=DoubleToString(AccountInfoDouble(ACCOUNT_EQUITY),2)+_AccountCurrency();
SetStatus("","Equity: "+text);
}
if(sparam==OBJPREFIX+"AUTOSL")
{
if(!AutoSL)
{
AutoSL=true;
ObjectSetInteger(0,OBJPREFIX+"AUTOSL",OBJPROP_COLOR,COLOR_AUTO);//SetObject
SetStatus("?","Auto sl enabled...");
}
else
{
AutoSL=false;
ObjectSetInteger(0,OBJPREFIX+"AUTOSL",OBJPROP_COLOR,COLOR_FONT);//SetObject
SetStatus("?","Auto sl disabled...");
}
}
if(sparam==OBJPREFIX+"AUTOTP")
{
if(!AutoTP)
{
AutoTP=true;
ObjectSetInteger(0,OBJPREFIX+"AUTOTP",OBJPROP_COLOR,COLOR_AUTO);//SetObject
SetStatus("?","Auto tp enabled...");
}
else
{
AutoTP=false;
ObjectSetInteger(0,OBJPREFIX+"AUTOTP",OBJPROP_COLOR,COLOR_FONT);//SetObject
SetStatus("?","Auto tp disabled...");
}
}
if(sparam==OBJPREFIX+"AUTOLOTS")
{
if(!AutoLots)
{
AutoLots=true;
ObjectSetInteger(0,OBJPREFIX+"AUTOLOTS",OBJPROP_COLOR,COLOR_AUTO);//SetObject
SetStatus("?","Auto lots enabled...");
}
else
{
AutoLots=false;
ObjectSetInteger(0,OBJPREFIX+"AUTOLOTS",OBJPROP_COLOR,COLOR_FONT);//SetObject
SetStatus("?","Auto lots disabled...");
}
}
if(sparam==OBJPREFIX+"PRICEROW_L?")
{
PriceRowLeft++;
if(PriceRowLeft>=ArraySize(PriceRowLeftArr))//Reset
PriceRowLeft=0;
ObjectSetString(0,OBJPREFIX+"PRICEROW_L?",OBJPROP_TEXT,0,PriceRowLeftArr[PriceRowLeft]);/*SetObject*/
SetStatus("?","Switched to "+PriceRowLeftArr[PriceRowLeft]+" mode...");
for(int i=0; i<ArraySize(aSymbols); i++)
ObjectSetString(0,OBJPREFIX+"PRICEROW_L"+" - "+aSymbols[i],OBJPROP_TOOLTIP,PriceRowLeftArr[PriceRowLeft]+" "+aSymbols[i]);
}
if(sparam==OBJPREFIX+"PRICEROW_R?")
{
PriceRowRight++;
if(PriceRowRight>=ArraySize(PriceRowRightArr))//Reset
PriceRowRight=0;
ObjectSetString(0,OBJPREFIX+"PRICEROW_R?",OBJPROP_TEXT,0,PriceRowRightArr[PriceRowRight]);/*SetObject*/
SetStatus("?","Switched to "+PriceRowRightArr[PriceRowRight]+" mode...");
for(int i=0; i<ArraySize(aSymbols); i++)
ObjectSetString(0,OBJPREFIX+"PRICEROW_R"+" - "+aSymbols[i],OBJPROP_TOOLTIP,PriceRowRightArr[PriceRowRight]+" "+aSymbols[i]);
}
if(sparam==OBJPREFIX+"LOTSIZE<")
{
double LotSize=StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT,0,DoubleToString(LotSize-=0.01,2));//SetObject
}
if(sparam==OBJPREFIX+"LOTSIZE>")
{
double LotSize=StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT));
if(!UserIsEditing)
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT,0,DoubleToString(LotSize+=0.01,2));//SetObject
}
if(sparam==OBJPREFIX+"CLOSE")
{
int openpos=0;
for(int x=0; x<ArraySize(aSymbols); x++)
openpos+=OpenPos(aSymbols[x],OP_ALL);
if(openpos==0)
{
SetStatus("?","No open orders...");
Sleep(100);
ObjectSetInteger(0,OBJPREFIX+"CLOSE",OBJPROP_STATE,false);//SetObject
return;
}
for(int x=0; x<ArraySize(aSymbols); x++)
OrderClose(aSymbols[x]);
Sleep(50);
ObjectSetInteger(0,OBJPREFIX+"CLOSE",OBJPROP_STATE,false);//SetObject
}
}
if(id==CHARTEVENT_OBJECT_ENDEDIT)
{
double LotsizeAInp=StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT));
if(LotsizeAInp<0.01)
{
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT,0,DoubleToString(0.01,2));/*SetObject*/
LotsizeAInp=0.01;
}
ObjectSetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT,0,DoubleToString(LotsizeAInp,2));/*SetObject*/
double RRInpA=StringToDouble(ObjectGetString(0,OBJPREFIX+"RR<>",OBJPROP_TEXT));
if(RRInpA<0.1)
{
ObjectSetString(0,OBJPREFIX+"RR<>",OBJPROP_TEXT,0,DoubleToString(0.1,2));/*SetObject*/
RRInpA=0.1;
}
ObjectSetString(0,OBJPREFIX+"RR<>",OBJPROP_TEXT,0,DoubleToString(RRInpA,2));/*SetObject*/
GlobalVariableSet(OBJPREFIX+"Stoploss",StringToDouble(ObjectGetString(0,OBJPREFIX+"SL<>",OBJPROP_TEXT)));
GlobalVariableSet(OBJPREFIX+"Takeprofit",StringToDouble(ObjectGetString(0,OBJPREFIX+"_TP<>",OBJPROP_TEXT)));
GlobalVariableSet(OBJPREFIX+"Lotsize",StringToDouble(ObjectGetString(0,OBJPREFIX+"LOTSIZE<>",OBJPROP_TEXT)));
UserIsEditing=false;
}
}
void _OnTester()
{
if(AccountFreeMarginCheck(_Symbol,OP_BUY,SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN))>=0)
{
double lots=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
int tkt=OrderSend(_Symbol,OP_BUY,lots,SymbolInfoDouble(_Symbol,SYMBOL_ASK),0,0,0,NULL,0,0,clrNONE);
if(tkt>0)
int c_tkt=OrderClose(tkt,lots,SymbolInfoDouble(_Symbol,SYMBOL_BID),0,clrNONE);
}
}
double ATR(string _Symb,int timeframe,int period)
{
double sl=0,ml=0;
if(SymbolInfoInteger(_Symb,SYMBOL_DIGITS)==1)
ml=10;
if(SymbolInfoInteger(_Symb,SYMBOL_DIGITS)==2)
ml=100;
if(SymbolInfoInteger(_Symb,SYMBOL_DIGITS)==3)
ml=1000;
if(SymbolInfoInteger(_Symb,SYMBOL_DIGITS)==4)
ml=10000;
if(SymbolInfoInteger(_Symb,SYMBOL_DIGITS)==5)
ml=100000;
if(Bars(_Symb,timeframe)<period)
sl=0;
else
sl=iATR(_Symb,timeframe,period,1)*ml;
return(sl);
}
double ADR(string _Symb)
{
double s=0,adr1=0,adr5=0,adr10=0,adr20=0,pts=SymbolInfoDouble(_Symb,SYMBOL_POINT);
for(int a=1;a<=20;a++)
{
if(pts!=0)
s+=(iHigh(_Symb,CalcTF,a)-iLow(_Symb,CalcTF,a))/pts;
if(a==1)
adr1=MathRound(s);
if(a==5)
adr5=MathRound(s/5);
if(a==10)
adr10=MathRound(s/10);
if(a==20)
adr20=MathRound(s/20);
}
return(MathRound((adr1+adr5+adr10+adr20)/4.0));
}
double _Lots(string _Symb,double Risk,double SL)
{
double lots=0,tickval=0,risk=0,sl=SL;
if(AccountInfoDouble(ACCOUNT_BALANCE)!=0)
{
tickval=SymbolInfoDouble(_Symb,SYMBOL_TRADE_TICK_VALUE);
risk=(AccountInfoDouble(ACCOUNT_BALANCE)/100)*Risk;
if((tickval*sl)!=0)
{
lots=risk/(tickval*sl);
}
}
double MinLot=SymbolInfoDouble(_Symb,SYMBOL_VOLUME_MIN),MaxLot=SymbolInfoDouble(_Symb,SYMBOL_VOLUME_MAX);
if(lots<=MinLot)
lots=MinLot;
if(lots>=MaxLot)
lots=MaxLot;
if(sl==0)
lots=MinLot;
return(NormalizeDouble(lots,2));
}
string Balance()
{
string text="";
if(_AccountCurrency()=="$" || _AccountCurrency()=="?")
text=_AccountCurrency()+DoubleToString(AccountInfoDouble(ACCOUNT_BALANCE),2);
else
text=DoubleToString(AccountInfoDouble(ACCOUNT_BALANCE),2)+_AccountCurrency();
string result="Balance: "+text;
if(OpenPos(IntegerToString(-1),OP_ALL)>0)
StringAdd(result," Margin Level: "+DoubleToString(AccountInfoDouble(ACCOUNT_MARGIN_LEVEL),2)+"%");
return(result);
}
void ObjectsCreateAll()
{
int fr_y2=Dpi(140);
for(int i=0; i<ArraySize(aSymbols); i++)
{
if(SelectedMode==FULL)
fr_y2+=Dpi(25);
if(SelectedMode==COMPACT)
fr_y2+=Dpi(21);
if(SelectedMode==MINI)
fr_y2+=Dpi(17);
}
int x=ChartMiddleX()-(Dpi(CLIENT_BG_WIDTH)/2);
int y=ChartMiddleY()-(fr_y2/2);
int height=fr_y2+Dpi(3);
RectLabelCreate(0,OBJPREFIX+"BCKGRND[]",0,x,y,Dpi(CLIENT_BG_WIDTH),height,COLOR_BG,BORDER_FLAT,CORNER_LEFT_UPPER,COLOR_BORDER,STYLE_SOLID,1,false,false,true,0,"\n");
_x1=(int)ObjectGetInteger(0,OBJPREFIX+"BCKGRND[]",OBJPROP_XDISTANCE);
_y1=(int)ObjectGetInteger(0,OBJPREFIX+"BCKGRND[]",OBJPROP_YDISTANCE);
RectLabelCreate(0,OBJPREFIX+"BORDER[]",0,x,y,Dpi(CLIENT_BG_WIDTH),Dpi(INDENT_TOP),COLOR_BORDER,BORDER_FLAT,CORNER_LEFT_UPPER,COLOR_BORDER,STYLE_SOLID,1,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"CAPTION",0,_x1+(Dpi(CLIENT_BG_WIDTH)/2)-Dpi(16),_y1,CORNER_LEFT_UPPER,ExpertName,"Arial Black",9,C'59,41,40',0,ANCHOR_UPPER,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"EXIT",0,(_x1+Dpi(CLIENT_BG_WIDTH))-Dpi(10),_y1-Dpi(2),CORNER_LEFT_UPPER,"r","Webdings",10,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"\n",false);
LabelCreate(0,OBJPREFIX+"MINIMIZE",0,(_x1+Dpi(CLIENT_BG_WIDTH))-Dpi(30),_y1-Dpi(2),CORNER_LEFT_UPPER,"2","Webdings",10,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"\n",false);
LabelCreate(0,OBJPREFIX+"?",0,(_x1+Dpi(CLIENT_BG_WIDTH))-Dpi(50),_y1-Dpi(2),CORNER_LEFT_UPPER,"s","Webdings",10,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"\n",false);
LabelCreate(0,OBJPREFIX+"TIME",0,(_x1+Dpi(CLIENT_BG_WIDTH))-Dpi(85),_y1+Dpi(1),CORNER_LEFT_UPPER,TimeToString(0,TIME_SECONDS),"Tahoma",8,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"Local Time",false);
LabelCreate(0,OBJPREFIX+"TIME?",0,(_x1+Dpi(CLIENT_BG_WIDTH))-Dpi(120),_y1,CORNER_LEFT_UPPER,"?","Wingdings",12,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"Local Time",false);
LabelCreate(0,OBJPREFIX+"CONNECTION",0,_x1+Dpi(15),_y1-Dpi(2),CORNER_LEFT_UPPER,"?","Webdings",10,C'59,41,40',0,ANCHOR_UPPER,false,false,true,0,"Connection",false);
LabelCreate(0,OBJPREFIX+"THEME",0,_x1+Dpi(40),_y1-Dpi(4),CORNER_LEFT_UPPER,"N","Webdings",15,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"Theme",false);
LabelCreate(0,OBJPREFIX+"TEMPLATE",0,_x1+Dpi(65),_y1-Dpi(2),CORNER_LEFT_UPPER,"+","Webdings",12,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"Background",false);
int middle=Dpi(CLIENT_BG_WIDTH/2);
LabelCreate(0,OBJPREFIX+"STATUS",0,_x1+middle+(middle/2),_y1+Dpi(8),CORNER_LEFT_UPPER,"\n","Wingdings",10,C'59,41,40',0,ANCHOR_LEFT,false,false,true,1,"\n",false);
LabelCreate(0,OBJPREFIX+"STATUS?",0,_x1+middle+(middle/2)+Dpi(15),_y1+Dpi(8),CORNER_LEFT_UPPER,"\n",sFontType,8,C'59,41,40',0,ANCHOR_LEFT,false,false,true,1,"\n",false);
LabelCreate(0,OBJPREFIX+"SOUND",0,_x1+Dpi(90),_y1-Dpi(2),CORNER_LEFT_UPPER,"X","Webdings",12,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"Sounds",false);
color soundclr=SoundIsEnabled?C'59,41,40':clrNONE;
LabelCreate(0,OBJPREFIX+"SOUNDIO",0,_x1+Dpi(100),_y1-Dpi(1),CORNER_LEFT_UPPER,"?","Webdings",10,soundclr,0,ANCHOR_UPPER,false,false,true,1,"Sounds",false);
LabelCreate(0,OBJPREFIX+"ALARM",0,_x1+Dpi(115),_y1-Dpi(1),CORNER_LEFT_UPPER,"%","Wingdings",12,C'59,41,40',0,ANCHOR_UPPER,false,false,true,1,"Alerts",false);
color alarmclr=AlarmIsEnabled?clrNONE:C'59,41,40';
if(!_Alert && !Push && !Mail)
alarmclr=C'59,41,40';
LabelCreate(0,OBJPREFIX+"ALARMIO",0,_x1+Dpi(115),_y1-Dpi(6),CORNER_LEFT_UPPER,"x",sFontType,16,alarmclr,0,ANCHOR_UPPER,false,false,true,1,"Alerts",false);
int csm_fr_x1=_x1+Dpi(50);
int csm_fr_x2=_x1+Dpi(95);
int csm_fr_x3=_x1+Dpi(137);
int csm_dist_b=Dpi(150);
LabelCreate(0,OBJPREFIX+"AUD?",0,csm_fr_x1,_y1+Dpi(35),CORNER_LEFT_UPPER,"AUD","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"AUD%",0,csm_fr_x2,_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("AUD",csm_fr_x3,_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"AUD",0,csm_fr_x1-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"AUD",0,csm_fr_x1-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"AUD",0,csm_fr_x1-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"CAD?",0,csm_fr_x1+csm_dist_b,_y1+Dpi(35),CORNER_LEFT_UPPER,"CAD","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"CAD%",0,csm_fr_x2+csm_dist_b,_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("CAD",csm_fr_x3+csm_dist_b,_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"CAD",0,csm_fr_x1+csm_dist_b-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"CAD",0,csm_fr_x1+csm_dist_b-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"CAD",0,csm_fr_x1+csm_dist_b-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"CHF?",0,csm_fr_x1+(csm_dist_b*2),_y1+Dpi(35),CORNER_LEFT_UPPER,"CHF","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"CHF%",0,csm_fr_x2+(csm_dist_b*2),_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("CHF",csm_fr_x3+(csm_dist_b*2),_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"CHF",0,csm_fr_x1+(csm_dist_b*2)-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"CHF",0,csm_fr_x1+(csm_dist_b*2)-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"CHF",0,csm_fr_x1+(csm_dist_b*2)-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"EUR?",0,csm_fr_x1+(csm_dist_b*3),_y1+Dpi(35),CORNER_LEFT_UPPER,"EUR","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"EUR%",0,csm_fr_x2+(csm_dist_b*3),_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("EUR",csm_fr_x3+(csm_dist_b*3),_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"EUR",0,csm_fr_x1+(csm_dist_b*3)-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"EUR",0,csm_fr_x1+(csm_dist_b*3)-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"EUR",0,csm_fr_x1+(csm_dist_b*3)-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"GBP?",0,csm_fr_x1+(csm_dist_b*4),_y1+Dpi(35),CORNER_LEFT_UPPER,"GBP","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"GBP%",0,csm_fr_x2+(csm_dist_b*4),_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("GBP",csm_fr_x3+(csm_dist_b*4),_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"GBP",0,csm_fr_x1+(csm_dist_b*4)-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"GBP",0,csm_fr_x1+(csm_dist_b*4)-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"GBP",0,csm_fr_x1+(csm_dist_b*4)-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"JPY?",0,csm_fr_x1+(csm_dist_b*5),_y1+Dpi(35),CORNER_LEFT_UPPER,"JPY","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"JPY%",0,csm_fr_x2+(csm_dist_b*5),_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("JPY",csm_fr_x3+(csm_dist_b*5),_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"JPY",0,csm_fr_x1+(csm_dist_b*5)-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"JPY",0,csm_fr_x1+(csm_dist_b*5)-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"JPY",0,csm_fr_x1+(csm_dist_b*5)-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"NZD?",0,csm_fr_x1+(csm_dist_b*6),_y1+Dpi(35),CORNER_LEFT_UPPER,"NZD","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"NZD%",0,csm_fr_x2+(csm_dist_b*6),_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("NZD",csm_fr_x3+(csm_dist_b*6),_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"NZD",0,csm_fr_x1+(csm_dist_b*6)-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"NZD",0,csm_fr_x1+(csm_dist_b*6)-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"NZD",0,csm_fr_x1+(csm_dist_b*6)-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"USD?",0,csm_fr_x1+(csm_dist_b*7),_y1+Dpi(35),CORNER_LEFT_UPPER,"USD","Arial Black",15,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"USD%",0,csm_fr_x2+(csm_dist_b*7),_y1+Dpi(55),CORNER_LEFT_UPPER,"0%","Arial Black",12,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
CreateProBar("USD",csm_fr_x3+(csm_dist_b*7),_y1+Dpi(57));
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+"USD",0,csm_fr_x1+(csm_dist_b*7)-Dpi(37),_y1+Dpi(27),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",6,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+"USD",0,csm_fr_x1+(csm_dist_b*7)-Dpi(37),_y1+Dpi(42),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Close","Trebuchet MS",6,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+"USD",0,csm_fr_x1+(csm_dist_b*7)-Dpi(37),_y1+Dpi(57),Dpi(25),Dpi(11),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",6,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"\n");
LabelCreate(0,OBJPREFIX+"BALANCE?",0,_x1+Dpi(300),_y1+Dpi(8),CORNER_LEFT_UPPER,Balance(),sFontType,8,C'59,41,40',0,ANCHOR_CENTER,false,false,true,0,"\n");
color autosl=AutoSL?COLOR_AUTO:COLOR_FONT;
color autotp=AutoTP?COLOR_AUTO:COLOR_FONT;
color autolots=AutoLots?COLOR_AUTO:COLOR_FONT;
LabelCreate(0,OBJPREFIX+"AUTOSL",0,_x1+Dpi(515),_y1+Dpi(81),CORNER_LEFT_UPPER,"Auto sl",sFontType,7,autosl,0,ANCHOR_CENTER,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"AUTOLOTS",0,_x1+Dpi(583),_y1+Dpi(81),CORNER_LEFT_UPPER,"Auto lots",sFontType,7,autolots,0,ANCHOR_CENTER,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"AUTOTP",0,_x1+Dpi(650),_y1+Dpi(81),CORNER_LEFT_UPPER,"Auto tp",sFontType,7,autotp,0,ANCHOR_CENTER,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"PRICEROW_L?",0,_x1+Dpi(395),_y1+Dpi(81),CORNER_LEFT_UPPER,PriceRowLeftArr[PriceRowLeft],sFontType,7,FirstRun?clrNONE:COLOR_FONT,0,ANCHOR_CENTER,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"PRICEROW_R?",0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(355),_y1+Dpi(81),CORNER_LEFT_UPPER,PriceRowRightArr[PriceRowRight],sFontType,7,FirstRun?clrNONE:COLOR_FONT,0,ANCHOR_CENTER,false,false,true,0,"\n");
int fr_y=_y1+Dpi(95);
for(int i=0; i<ArraySize(aSymbols); i++)
{
CreateSymbGUI(Prefix+aSymbols[i]+Suffix,fr_y);
if(SelectedMode==FULL)
fr_y+=Dpi(25);
if(SelectedMode==COMPACT)
fr_y+=Dpi(21);
if(SelectedMode==MINI)
fr_y+=Dpi(17);
}
LabelCreate(0,OBJPREFIX+"TOTALLOTS",0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(220),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0.00",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"Total Lots");
LabelCreate(0,OBJPREFIX+"TOTAL?",0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(155),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0p",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"TOTAL??",0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(73),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0.00"+_AccountCurrency(),sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"TOTAL???",0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(10),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0.00%",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"LEVERAGE",0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(285),fr_y+Dpi(5),CORNER_LEFT_UPPER,"1:"+IntegerToString(AccountInfoInteger(ACCOUNT_LEVERAGE)),sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"Current Leverage");
EditCreate(0,OBJPREFIX+"SL<>",0,_x1+Dpi(490),fr_y,Dpi(50),Dpi(15),DoubleToString(GlobalVariableGet(OBJPREFIX+"Stoploss"),0),"Tahoma",10,ALIGN_RIGHT,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SL?",0,_x1+Dpi(498),fr_y+Dpi(7),CORNER_LEFT_UPPER,"sl",sFontType,10,clrDarkGray,0,ANCHOR_CENTER,false,false,true,0,"\n");
EditCreate(0,OBJPREFIX+"LOTSIZE<>",0,_x1+Dpi(550),fr_y,Dpi(65),Dpi(15),DoubleToString(GlobalVariableGet(OBJPREFIX+"Lotsize"),2),"Tahoma",10,ALIGN_CENTER,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"LOTSIZE<",0,_x1+Dpi(555),fr_y+Dpi(5),CORNER_LEFT_UPPER,"6","Webdings",8,C'59,41,40',0,ANCHOR_CENTER,false,false,true,0,"\n",false);
LabelCreate(0,OBJPREFIX+"LOTSIZE>",0,_x1+Dpi(610),fr_y+Dpi(5),CORNER_LEFT_UPPER,"5","Webdings",8,C'59,41,40',0,ANCHOR_CENTER,false,false,true,0,"\n",false);
EditCreate(0,OBJPREFIX+"_TP<>",0,_x1+Dpi(625),fr_y,Dpi(50),Dpi(15),DoubleToString(GlobalVariableGet(OBJPREFIX+"Takeprofit"),0),"Tahoma",10,ALIGN_RIGHT,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"TP?",0,_x1+Dpi(633),fr_y+Dpi(7),CORNER_LEFT_UPPER,"tp",sFontType,10,clrDarkGray,0,ANCHOR_CENTER,false,false,true,0,"\n");
ButtonCreate(0,OBJPREFIX+"SETSL<>",0,_x1+Dpi(490),fr_y+Dpi(20),Dpi(50),Dpi(15),CORNER_LEFT_UPPER,"Set sl","Trebuchet MS",10,C'59,41,40',C'220,220,220',C'220,220,220',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SETLOTS<>",0,_x1+Dpi(445)+Dpi(105),fr_y+Dpi(20),Dpi(65),Dpi(15),CORNER_LEFT_UPPER,"Set lots","Trebuchet MS",10,C'59,41,40',C'220,220,220',C'220,220,220',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"SETTP<>",0,_x1+Dpi(625),fr_y+Dpi(20),Dpi(50),Dpi(15),CORNER_LEFT_UPPER,"Set tp","Trebuchet MS",10,C'59,41,40',C'220,220,220',C'220,220,220',false,false,false,true,1,"\n");
ButtonCreate(0,OBJPREFIX+"CLOSE",0,_x1+Dpi(740),fr_y,Dpi(40),Dpi(15),CORNER_LEFT_UPPER," Close","Trebuchet MS",10,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"Close All");
LabelCreate(0,OBJPREFIX+"POSITIONS",0,_x1+Dpi(10),fr_y+Dpi(5),CORNER_LEFT_UPPER,"Floating:",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SELLPOS",0,_x1+Dpi(90),fr_y+Dpi(5),CORNER_LEFT_UPPER,"Sell:",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SELLPOS?",0,_x1+Dpi(150),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"BUYPOS",0,_x1+Dpi(185),fr_y+Dpi(5),CORNER_LEFT_UPPER,"Buy:",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"BUYPOS?",0,_x1+Dpi(245),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"TOTALPOS",0,_x1+Dpi(270),fr_y+Dpi(5),CORNER_LEFT_UPPER,"Total:",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"TOTALPOS?",0,_x1+Dpi(345),fr_y+Dpi(5),CORNER_LEFT_UPPER,"0",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"RISK",0,_x1+Dpi(10),fr_y+Dpi(27),CORNER_LEFT_UPPER,"Risk PT:",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"Risk Per Trade");
EditCreate(0,OBJPREFIX+"RISK%<>",0,_x1+Dpi(90),fr_y+Dpi(20),Dpi(60),Dpi(15),DoubleToString(RiskInp,2),"Tahoma",10,ALIGN_RIGHT,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"RISK%?",0,_x1+Dpi(98),fr_y+Dpi(27),CORNER_LEFT_UPPER,"%",sFontType,10,clrDarkGray,0,ANCHOR_CENTER,false,false,true,0,"\n");
EditCreate(0,OBJPREFIX+"RISK$<>",0,_x1+Dpi(175),fr_y+Dpi(20),Dpi(80),Dpi(15),DoubleToString((AccountInfoDouble(ACCOUNT_BALANCE)/100)*RiskInp,2),"Tahoma",10,ALIGN_RIGHT,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"RISK$?",0,_x1+Dpi(182),fr_y+Dpi(27),CORNER_LEFT_UPPER,_AccountCurrency(),sFontType,10,clrDarkGray,0,ANCHOR_CENTER,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"RR",0,_x1+Dpi(270),fr_y+Dpi(27),CORNER_LEFT_UPPER,"Reward Ratio:",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"Risk/Reward Ratio");
EditCreate(0,OBJPREFIX+"RR<>",0,_x1+Dpi(370),fr_y+Dpi(20),Dpi(50),Dpi(15),DoubleToString(RR,2),"Tahoma",10,ALIGN_CENTER,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
}
void CreateSymbGUI(string _Symb,int Y)
{
color startcolor=FirstRun?clrNONE:COLOR_FONT;
LabelCreate(0,OBJPREFIX+_Symb,0,_x1+Dpi(10),Y,CORNER_LEFT_UPPER,StringSubstr(_Symb,StringLen(Prefix),6)+":",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SYMBOL?"+" - "+_Symb,0,_x1+Dpi(105),Y,CORNER_LEFT_UPPER,"?","Wingdings",12,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SYMBOL%"+" - "+_Symb,0,_x1+Dpi(145),Y,CORNER_LEFT_UPPER,"0.00%",sFontType,8,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"RANGE‿"+" - "+_Symb,0,_x1+Dpi(205),Y,CORNER_LEFT_UPPER,"0p",sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"Range "+_Symb);
LabelCreate(0,OBJPREFIX+"RANGE%"+" - "+_Symb,0,_x1+Dpi(255),Y,CORNER_LEFT_UPPER,"0%",sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SPEED?"+" - "+_Symb,0,_x1+Dpi(355),Y,CORNER_LEFT_UPPER,"\n",sFontType,9,clrNONE,0.0,ANCHOR_RIGHT,false,false,true,0);
int fr_x=Dpi(330);
for(int i=0; i<10; i++)
{
LabelCreate(0,OBJPREFIX+"SPEED#"+" - "+_Symb+IntegerToString(i),0,_x1+fr_x,Y,CORNER_LEFT_UPPER,"l","Arial Black",12,clrNONE,0.0,ANCHOR_RIGHT,false,false,true,0);
fr_x-=Dpi(5);
}
double bid=MarketInfo(_Symb,MODE_BID);
int digits=(int)MarketInfo(_Symb,MODE_DIGITS);
LabelCreate(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,0,_x1+Dpi(417),Y,CORNER_LEFT_UPPER,DoubleToString(0,digits),sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,PriceRowLeftArr[PriceRowLeft]+" "+_Symb);
LabelCreate(0,OBJPREFIX+"OPENSELL"+" - "+_Symb,0,_x1+Dpi(445),Y+Dpi(2),CORNER_LEFT_UPPER,"\n",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"OPENBUY"+" - "+_Symb,0,_x1+Dpi(720),Y+Dpi(2),CORNER_LEFT_UPPER,"\n",sFontType,FONTSIZE,COLOR_FONT,0,ANCHOR_LEFT,false,false,true,0,"\n");
ButtonCreate(0,OBJPREFIX+"SELL"+" - "+_Symb,0,_x1+Dpi(450),Y-Dpi(5),Dpi(30),Dpi(15),CORNER_LEFT_UPPER,"Sell","Trebuchet MS",10,C'59,41,40',C'255,128,128',C'239,112,112',false,false,false,true,1,"Sell "+_Symb);
EditCreate(0,OBJPREFIX+"SL<>"+" - "+_Symb,0,_x1+Dpi(490),Y-Dpi(5),Dpi(50),Dpi(15),DoubleToString(GlobalVariableGet(OBJPREFIX+_Symb+" - Stoploss"),0),"Tahoma",10,ALIGN_RIGHT,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"SL?"+" - "+_Symb,0,_x1+Dpi(498),Y+Dpi(2),CORNER_LEFT_UPPER,"sl",sFontType,10,clrDarkGray,0,ANCHOR_CENTER,false,false,true,0,"\n");
EditCreate(0,OBJPREFIX+"LOTSIZE<>"+" - "+_Symb,0,_x1+Dpi(550),Y-Dpi(5),Dpi(65),Dpi(15),DoubleToString(GlobalVariableGet(OBJPREFIX+_Symb+" - Lotsize"),2),"Tahoma",10,ALIGN_CENTER,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"LOTSIZE<"+" - "+_Symb,0,_x1+Dpi(555),Y,CORNER_LEFT_UPPER,"6","Webdings",8,C'59,41,40',0,ANCHOR_CENTER,false,false,true,0,"\n",false);
LabelCreate(0,OBJPREFIX+"LOTSIZE>"+" - "+_Symb,0,_x1+Dpi(610),Y,CORNER_LEFT_UPPER,"5","Webdings",8,C'59,41,40',0,ANCHOR_CENTER,false,false,true,0,"\n",false);
EditCreate(0,OBJPREFIX+"_TP<>"+" - "+_Symb,0,_x1+Dpi(625),Y-Dpi(5),Dpi(50),Dpi(15),DoubleToString(GlobalVariableGet(OBJPREFIX+_Symb+" - Takeprofit"),0),"Tahoma",10,ALIGN_RIGHT,false,CORNER_LEFT_UPPER,C'59,41,40',clrWhite,clrWhite,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"TP?"+" - "+_Symb,0,_x1+Dpi(633),Y+Dpi(2),CORNER_LEFT_UPPER,"tp",sFontType,10,clrDarkGray,0,ANCHOR_CENTER,false,false,true,0,"\n");
ButtonCreate(0,OBJPREFIX+"BUY"+" - "+_Symb,0,_x1+Dpi(685),Y-Dpi(5),Dpi(30),Dpi(15),CORNER_LEFT_UPPER,"Buy","Trebuchet MS",10,C'59,41,40',C'160,192,255',C'144,176,239',false,false,false,true,1,"Buy "+_Symb);
ButtonCreate(0,OBJPREFIX+"CLOSE"+" - "+_Symb,0,_x1+Dpi(740),Y-Dpi(5),Dpi(40),Dpi(15),CORNER_LEFT_UPPER," Close","Trebuchet MS",10,C'59,41,40',C'255,255,160',C'239,239,144',false,false,false,true,1,"Close "+_Symb);
LabelCreate(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,0,_x1+Dpi(855),Y,CORNER_LEFT_UPPER,DoubleToString(0,digits),sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,PriceRowRightArr[PriceRowRight]+" "+_Symb);
LabelCreate(0,OBJPREFIX+"SPREAD"+" - "+_Symb,0,_x1+Dpi(905),Y,CORNER_LEFT_UPPER,"0p",sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"Spread "+_Symb);
LabelCreate(0,OBJPREFIX+"OPENLOTS"+" - "+_Symb,0,_x1+Dpi(970),Y,CORNER_LEFT_UPPER,"0.00",sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"POINTS"+" - "+_Symb,0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(155),Y,CORNER_LEFT_UPPER,"0p",sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"PROFITS"+" - "+_Symb,0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(73),Y,CORNER_LEFT_UPPER,"0.00"+_AccountCurrency(),sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"RETURN"+" - "+_Symb,0,_x1+Dpi(CLIENT_BG_WIDTH)-Dpi(10),Y,CORNER_LEFT_UPPER,"0.00%",sFontType,FONTSIZE,startcolor,0,ANCHOR_RIGHT,false,false,true,0,"\n");
if(ShowTradePanel)
{
if(KeyboardTrading)
{
if(_Symb==_Symbol)
{
if(ObjectFind(0,OBJPREFIX+"MARKER")!=0)
LabelCreate(0,OBJPREFIX+"MARKER",0,_x1+Dpi(10),Y+Dpi(5),CORNER_LEFT_UPPER,"_______",sFontType,FONTSIZE,COLOR_MARKER,0,ANCHOR_LEFT,false,false,true,0,"\n");
else
{
if(ObjectGetInteger(0,OBJPREFIX+"MARKER",OBJPROP_YDISTANCE,0)!=Y+Dpi(5))
ObjectDelete(0,OBJPREFIX+"MARKER");
}
}
}
else
{
if(ObjectFind(0,OBJPREFIX+"MARKER")==0)
ObjectDelete(0,OBJPREFIX+"MARKER");
}
}
}
void CreateProBar(string _Symb,int x,int y)
{
int fr_y_pb=y;
for(int i=1; i<11; i++)
{
LabelCreate(0,OBJPREFIX+"PB#"+IntegerToString(i)+" - "+_Symb,0,x,fr_y_pb,CORNER_LEFT_UPPER,"0","Webdings",25,clrNONE,0,ANCHOR_RIGHT,false,false,true,0,"\n");
fr_y_pb-=Dpi(5);
}
}
void UpdateProBar(string _Symb,double Percent)
{
for(int i=1; i<11; i++)
ObjectSetInteger(0,OBJPREFIX+"PB#"+IntegerToString(i)+" - "+_Symb,OBJPROP_COLOR,SelectedTheme==0?clrGainsboro:C'80,80,80');
if(Percent>=0)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"1"+" - "+_Symb,OBJPROP_COLOR,C'255,0,0');
if(Percent>10)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"2"+" - "+_Symb,OBJPROP_COLOR,C'255,69,0');
if(Percent>20)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"3"+" - "+_Symb,OBJPROP_COLOR,C'255,150,0');
if(Percent>30)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"4"+" - "+_Symb,OBJPROP_COLOR,C'255,165,0');
if(Percent>40)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"5"+" - "+_Symb,OBJPROP_COLOR,C'255,215,0');
if(Percent>50)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"6"+" - "+_Symb,OBJPROP_COLOR,C'255,255,0');
if(Percent>60)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"7"+" - "+_Symb,OBJPROP_COLOR,C'173,255,47');
if(Percent>70)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"8"+" - "+_Symb,OBJPROP_COLOR,C'124,252,0');
if(Percent>80)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"9"+" - "+_Symb,OBJPROP_COLOR,C'0,255,0');
if(Percent>90)
ObjectSetInteger(0,OBJPREFIX+"PB#"+"10"+" - "+_Symb,OBJPROP_COLOR,C'0,255,0');
}
void CreateMinWindow()
{
RectLabelCreate(0,OBJPREFIX+"MIN"+"BCKGRND[]",0,Dpi(1),Dpi(20),Dpi(163),Dpi(25),COLOR_BORDER,BORDER_FLAT,CORNER_LEFT_LOWER,COLOR_BORDER,STYLE_SOLID,1,false,false,true,0,"\n");
LabelCreate(0,OBJPREFIX+"MIN"+"CAPTION",0,Dpi(140)-Dpi(64),Dpi(18),CORNER_LEFT_LOWER,"MultiTrader","Arial Black",8,C'59,41,40',0,ANCHOR_UPPER,false,false,true,0,"\n",false);
LabelCreate(0,OBJPREFIX+"MIN"+"MAXIMIZE",0,Dpi(156),Dpi(23),CORNER_LEFT_LOWER,"1","Webdings",10,C'59,41,40',0,ANCHOR_UPPER,false,false,true,0,"\n",false);
}
void DelteMinWindow()
{
ObjectDelete(0,OBJPREFIX+"MIN"+"BCKGRND[]");
ObjectDelete(0,OBJPREFIX+"MIN"+"CAPTION");
ObjectDelete(0,OBJPREFIX+"MIN"+"MAXIMIZE");
}
int TradeNum(int Type)
{
int count=0;
datetime starttime=0;
if(Type==1)
starttime=iTime(_Symbol,PERIOD_D1,0);
if(Type==2)
starttime=iTime(_Symbol,PERIOD_W1,0);
if(Type==3)
starttime=iTime(_Symbol,PERIOD_MN1,0);
for(int i=0; i<OrdersHistoryTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderMagicNumber()==MagicNumber)
{
if(OrderType()<=1)
{
if(OrderCloseTime()>=starttime)
count++;
}
}
}
}
return(count);
}
void ObjectsUpdateAll(string _Symb)
{
double bid=MarketInfo(_Symb,MODE_BID),ask=MarketInfo(_Symb,MODE_ASK),avg=(ask+bid)/2;
double TFHigh=iHigh(_Symb,CalcTF,0),TFLow=iLow(_Symb,CalcTF,0),TFOpen=iOpen(_Symb,CalcTF,0);
double TFLastHigh=iHigh(_Symb,CalcTF,1),TFLastLow=iLow(_Symb,CalcTF,1),TFLastClose=iClose(_Symb,CalcTF,1);
long Spread=SymbolInfoInteger(_Symb,SYMBOL_SPREAD);
int digits = (int)MarketInfo(_Symb,MODE_DIGITS);
if(OpenPos(_Symb,OP_SELL)>0)
ObjectSetString(0,OBJPREFIX+"OPENSELL"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(OpenPos(_Symb,OP_SELL),0));
else
ObjectSetString(0,OBJPREFIX+"OPENSELL"+" - "+_Symb,OBJPROP_TEXT,"\n");
if(OpenPos(_Symb,OP_BUY)>0)
ObjectSetString(0,OBJPREFIX+"OPENBUY"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(OpenPos(_Symb,OP_BUY),0));
else
ObjectSetString(0,OBJPREFIX+"OPENBUY"+" - "+_Symb,OBJPROP_TEXT,"\n");
double pts=MarketInfo(_Symb,MODE_POINT);
double range=0;
if(pts!=0)
range=(TFHigh-TFLow)/pts;
ObjectSetString(0,OBJPREFIX+"RANGE‿"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(range,0)+"p");
ObjectSetString(0,OBJPREFIX+"RANGE‿"+" - "+_Symb,OBJPROP_TOOLTIP,"Range "+_Symb+"\n"+"Average: "+DoubleToString(ADR(_Symb),0)+"p");
ObjectSetInteger(0,OBJPREFIX+"RANGE‿"+" - "+_Symb,OBJPROP_COLOR,COLOR_FONT);
double pp=(TFLastHigh+TFLastLow+TFLastClose)/3;
if(PriceRowLeft==0)//Bid
ObjectSetString(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(bid,digits));
if(PriceRowLeft==1)//Low
ObjectSetString(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(TFLow,digits));
if(PriceRowLeft==2)//Open
ObjectSetString(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(TFOpen,digits));
if(PriceRowLeft==3)//Pivot
ObjectSetString(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(pp,digits));
if(PriceRowRight==0)//Ask
ObjectSetString(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(ask,digits));
if(PriceRowRight==1)//High
ObjectSetString(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(TFHigh,digits));
if(PriceRowRight==2)//Open
ObjectSetString(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(TFOpen,digits));
if(PriceRowRight==3)//Pivot
ObjectSetString(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(pp,digits));
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_COLOR,COLOR_FONT);
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_COLOR,COLOR_FONT);
if(PriceRowLeft<=1)
{
if((bid-TFLow)==0)
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_COLOR,COLOR_RED);
}
if(PriceRowLeft==3)
{
if(avg>pp)
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_COLOR,COLOR_BUY);
if(avg<pp)
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_L"+" - "+_Symb,OBJPROP_COLOR,COLOR_SELL);
}
if(PriceRowRight<=1)
{
if((ask-TFHigh)==0)
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_COLOR,COLOR_GREEN);
}
if(PriceRowRight==3)
{
if(avg>pp)
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_COLOR,COLOR_BUY);
if(avg<pp)
ObjectSetInteger(0,OBJPREFIX+"PRICEROW_R"+" - "+_Symb,OBJPROP_COLOR,COLOR_SELL);
}
ObjectSetString(0,OBJPREFIX+"SPREAD"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(MarketInfo(_Symb,MODE_SPREAD),0)+"p");
if(Spread>=100)
ObjectSetInteger(0,OBJPREFIX+"SPREAD"+" - "+_Symb,OBJPROP_COLOR,clrOrangeRed);
else
ObjectSetInteger(0,OBJPREFIX+"SPREAD"+" - "+_Symb,OBJPROP_COLOR,COLOR_FONT);
ObjectSetString(0,OBJPREFIX+"OPENLOTS"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(OpenLots(_Symb,OP_ALL),2));
if(OpenLots(_Symb,OP_BUY)>0 && OpenLots(_Symb,OP_SELL)==0)
ObjectSetInteger(0,OBJPREFIX+"OPENLOTS"+" - "+_Symb,OBJPROP_COLOR,COLOR_BUY);
if(OpenLots(_Symb,OP_SELL)>0 && OpenLots(_Symb,OP_BUY)==0)
ObjectSetInteger(0,OBJPREFIX+"OPENLOTS"+" - "+_Symb,OBJPROP_COLOR,COLOR_SELL);
color COLOR_HEDGE=(SelectedTheme==0)?clrDarkOrange:clrGold;
if(OpenLots(_Symb,OP_SELL)>0 && OpenLots(_Symb,OP_BUY)>0)
ObjectSetInteger(0,OBJPREFIX+"OPENLOTS"+" - "+_Symb,OBJPROP_COLOR,COLOR_HEDGE);
if(OpenLots(_Symb,OP_ALL)==0)
ObjectSetInteger(0,OBJPREFIX+"OPENLOTS"+" - "+_Symb,OBJPROP_COLOR,COLOR_FONT);
double AUD=AUD(),CAD=CAD(),CHF=CHF(),EUR=EUR(),GBP=GBP(),JPY=JPY(),NZD=NZD(),USD=USD();
double symbol_r=SymbPerc(_Symb);
ObjectSetString(0,OBJPREFIX+"RANGE%"+" - "+_Symb,OBJPROP_TEXT,DoubleToString(SymbPerc(_Symb),0)+"%");
ObjectSetInteger(0,OBJPREFIX+_Symb,OBJPROP_COLOR,COLOR_FONT);
ObjectSetInteger(0,OBJPREFIX+"RANGE%"+" - "+_Symb,OBJPROP_COLOR,COLOR_FONT);
if(symbol_r>=BuyLevel)
{
if(
(StringFind(_Symb,"AUD",0)!=-1 && (AUD>=BuyLevel || AUD<=SellLevel))
||
(StringFind(_Symb,"CAD",0)!=-1 && (CAD>=BuyLevel || CAD<=SellLevel))
||
(StringFind(_Symb,"CHF",0)!=-1 && (CHF>=BuyLevel || CHF<=SellLevel))
||
(StringFind(_Symb,"EUR",0)!=-1 && (EUR>=BuyLevel || EUR<=SellLevel))
||
(StringFind(_Symb,"GBP",0)!=-1 && (GBP>=BuyLevel || GBP<=SellLevel))
||
(StringFind(_Symb,"JPY",0)!=-1 && (JPY>=BuyLevel || JPY<=SellLevel))
||
(StringFind(_Symb,"NZD",0)!=-1 && (NZD>=BuyLevel || NZD<=SellLevel))
||
(StringFind(_Symb,"USD",0)!=-1 && (USD>=BuyLevel || USD<=SellLevel))
)
ObjectSetInteger(0,OBJPREFIX+_Symb,OBJPROP_COLOR,COLOR_GREEN);
ObjectSetInteger(0,OBJPREFIX+"RANGE%"+" - "+_Symb,OBJPROP_COLOR,COLOR_GREEN);
}
if(symbol_r<=SellLevel)
{
if(
(StringFind(_Symb,"AUD",0)!=-1 && (AUD>=BuyLevel || AUD<=SellLevel))
||
(StringFind(_Symb,"CAD",0)!=-1 && (CAD>=BuyLevel || CAD<=SellLevel))
||
(StringFind(_Symb,"CHF",0)!=-1 && (CHF>=BuyLevel || CHF<=SellLevel))
||
(StringFind(_Symb,"EUR",0)!=-1 && (EUR>=BuyLevel || EUR<=SellLevel))
||
(StringFind(_Symb,"GBP",0)!=-1 && (GBP>=BuyLevel || GBP<=SellLevel))
||
(StringFind(_Symb,"JPY",0)!=-1 && (JPY>=BuyLevel || JPY<=SellLevel))
||
(StringFind(_Symb,"NZD",0)!=-1 && (NZD>=BuyLevel || NZD<=SellLevel))
||
(StringFind(_Symb,"USD",0)!=-1 && (USD>=BuyLevel || USD<=SellLevel))
)
ObjectSetInteger(0,OBJPREFIX+_Symb,OBJPROP_COLOR,COLOR_RED);
ObjectSetInteger(0,OBJPREFIX+"RANGE%"+" - "+_Symb,OBJPROP_COLOR,COLOR_RED);
}
double currentclose=iClose(_Symb,CalcTF,0);
double previousclose=iClose(_Symb,CalcTF,1);
if(previousclose!=0)
{
double symbol_p=NormalizeDouble((currentclose-previousclose)/previousclose*100,2);
if(symbol_p>0)
{
if(symbol_r>=75)
ObjectSetString(0,OBJPREFIX+"SYMBOL?"+" - "+_Symb,OBJPROP_TEXT,0,"?");
if(symbol_r<75)
ObjectSetString(0,OBJPREFIX+"SYMBOL?"+" - "+_Symb,OBJPROP_TEXT,0,"?");
ObjectSetInteger(0,OBJPREFIX+"SYMBOL%"+" - "+_Symb,OBJPROP_COLOR,?Clr(symbol_p));
ObjectSetString(0,OBJPREFIX+"SYMBOL%"+" - "+_Symb,OBJPROP_TEXT,0,?Str(symbol_p,2)+"%");
ObjectSetInteger(0,OBJPREFIX+"SYMBOL?"+" - "+_Symb,OBJPROP_COLOR,?Clr(symbol_p));
if(range>ADR(_Symb))
{
if(symbol_r>=BuyLevel)
ObjectSetInteger(0,OBJPRПоказано первые 50% кода (символов: 128782)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.