Как получить полное название символ для отображения на чарте. Например: вместо #C - Citigroup Inc.
Во многих ДЦ количество символов уже переваливает за 100. Постоянно лезть в свойства символа через "Обзор рынка" чтобы посмотреть инфу по символу очень не удобно.
Вот скрипт который выводи инфу по счёт и символу. Но есть одна проблема. Не выводится полоное название. Как получить полное название символ для отображения на чарте. Например: вместо #C - Citigroup Inc.
Вот скрипт который выводи инфу по счёт и символу. Но есть одна проблема. Не выводится полоное название. Как получить полное название символ для отображения на чарте. Например: вместо #C - Citigroup Inc.
void start()
{
string symbol=Symbol();
string market=MarketType(symbol);
string сurrency=AccountCurrency();
string base=symbol; if (market=="Forex") base=StringSubstr(symbol,0,3);
double freemargin=AccountFreeMargin();
double lotsize_base=MarketInfo(symbol,MODE_LOTSIZE);
double lotmargin_base=0;
double lotmargin_сurrency_buy =0;
double lotmargin_сurrency_sell=0;
double ask=MarketInfo(symbol,MODE_ASK);
double bid=MarketInfo(symbol,MODE_BID);
if (market=="Forex")
{
if (base==сurrency) {ask=1; bid=1;}
else
{
ask=MarketInfo(base+сurrency,MODE_ASK);
bid=MarketInfo(base+сurrency,MODE_BID);
}
}
double leverage=0;
if (market=="Forex" ) leverage=AccountLeverage();
if (market=="Metalls") leverage=10;
if (market=="CFD" ) leverage=10;
if (leverage>0) lotmargin_base=lotsize_base/leverage;
lotmargin_сurrency_buy =lotmargin_base*ask;
lotmargin_сurrency_sell=lotmargin_base*bid;
if (market=="Futures")
{
lotmargin_base=FuturesLotMargin(symbol);
lotmargin_сurrency_buy =lotmargin_base;
lotmargin_сurrency_sell=lotmargin_base;
}
string lotmargin_buy =DoubleToStr(lotmargin_сurrency_buy ,2)+" "+сurrency;
string lotmargin_sell=DoubleToStr(lotmargin_сurrency_sell,2)+" "+сurrency;
if (market=="Forex" && base!=сurrency)
{
lotmargin_buy =lotmargin_buy +" ("+DoubleToStr(lotmargin_base,2)+" "+base+")";
lotmargin_sell=lotmargin_sell+" ("+DoubleToStr(lotmargin_base,2)+" "+base+")";
}
double freelots_buy =0;
double freelots_sell=0;
if (lotmargin_сurrency_buy >0 && freemargin>0) freelots_buy =freemargin/lotmargin_сurrency_buy ;
if (lotmargin_сurrency_sell>0 && freemargin>0) freelots_sell=freemargin/lotmargin_сurrency_sell;
double minlot=MarketInfo(symbol,MODE_MINLOT);
int count_buy =0; if (minlot>0) count_buy =freelots_buy /minlot;
int count_sell=0; if (minlot>0) count_sell=freelots_sell/minlot;
freelots_buy =minlot*count_buy ;
freelots_sell=minlot*count_sell;
double tickvalue=MarketInfo(symbol,MODE_TICKVALUE);
double swap_buy =0; if (minlot>0) swap_buy =MarketInfo(symbol,MODE_SWAPLONG )/minlot;
double swap_sell=0; if (minlot>0) swap_sell=MarketInfo(symbol,MODE_SWAPSHORT)/minlot;
double swap_buy_ticks =0; if (tickvalue>0) swap_buy_ticks =swap_buy /tickvalue;
double swap_sell_ticks=0; if (tickvalue>0) swap_sell_ticks=swap_sell/tickvalue;
string type="Реал"; if(IsDemo()) type="Демо";
string field=" ";
string msg=""
+"Компания: "+AccountCompany()+field
+"\n"+"Имя владельца счета: "+AccountName()+field
+"\n"+"Тип счета: "+type+field
+"\n"+"Номер счета: "+AccountNumber()+field
+"\n"+"Валюта счета: "+сurrency+field
+"\n"+"Плечо: "+AccountLeverage()+field
+"\n"+"Баланс: "+DoubleToStr(AccountBalance(),2)+" "+сurrency+field
+"\n"+"Средства: "+DoubleToStr(AccountEquity(),2)+" "+сurrency+field
+"\n"+"Залог: "+DoubleToStr(AccountMargin(),2)+" "+сurrency+field
+"\n"
+"\n"+"Символ: "+symbol+field
+"\n"+"Рынок: "+market+field
+"\n"+"Свободно лотов для BUY : "+DoubleToStr(freelots_buy,1)+field
+"\n"+"Свободно лотов для SELL: "+DoubleToStr(freelots_sell,1)+field
+"\n"+"Залог за лот для BUY : "+lotmargin_buy+field
+"\n"+"Залог за лот для SELL: "+lotmargin_sell+field
+"\n"+"Своп за лот для BUY : "+DoubleToStr(swap_buy,2)+" "+сurrency+" ("+DoubleToStr(swap_buy_ticks,2)+" pips)"+field
+"\n"+"Своп за лот для SELL: "+DoubleToStr(swap_sell,2)+" "+сurrency+" ("+DoubleToStr(swap_sell_ticks,2)+" pips)"+field
+"\n"+"Шаг изменения цены лота: "+DoubleToStr(tickvalue,2)+" "+сurrency+" (1 pips)"+field
+"\n"+"Минимальный лот: "+DoubleToStr(minlot,1)+field
+"\n"+"Шаг изменения лота: "+DoubleToStr(MarketInfo(symbol,MODE_LOTSTEP),1)+field
+"\n"+"Спред: "+DoubleToStr(MarketInfo(symbol,MODE_SPREAD),0)+field
+"\n"+"Точность: "+DoubleToStr(MarketInfo(symbol,MODE_DIGITS),0)+field
+"\n"+"Уровень стопов: "+DoubleToStr(MarketInfo(symbol,MODE_STOPLEVEL),0)+field
;
string title="Информация о счете и свойства символа";
MessageBox(msg,title,MB_OK|MB_ICONINFORMATION);
}
string MarketType (string symbol)
{
int len=StringLen(symbol);
string base;
if (StringSubstr(symbol,0,1)=="_") return ("Indexes");
if (StringSubstr(symbol,0,1)=="#")
{
base=StringSubstr(symbol,len-1,1);
if (base=="0") return ("Futures");
if (base=="1") return ("Futures");
if (base=="2") return ("Futures");
if (base=="3") return ("Futures");
if (base=="4") return ("Futures");
if (base=="5") return ("Futures");
if (base=="6") return ("Futures");
if (base=="7") return ("Futures");
if (base=="8") return ("Futures");
if (base=="9") return ("Futures");
return ("CFD");
}
else
{
if (symbol=="GOLD" ) return ("Metalls");
if (symbol=="SILVER") return ("Metalls");
if (len==6)
{
base=StringSubstr(symbol,0,3);
if (base=="AUD") return ("Forex");
if (base=="CAD") return ("Forex");
if (base=="CHF") return ("Forex");
if (base=="EUR") return ("Forex");
if (base=="GBP") return ("Forex");
if (base=="LFX") return ("Forex");
if (base=="NZD") return ("Forex");
if (base=="SGD") return ("Forex");
if (base=="USD") return ("Forex");
}
}
return ("");
}
double FuturesLotMargin (string symbol)
{
double result=0;
string сurrency=AccountCurrency();
double bid=1; if (сurrency!="USD") bid=MarketInfo(сurrency+"USD",MODE_BID);
int len=StringLen(symbol);
string base=StringSubstr(symbol,0,len-2);
if (base=="#ENQ" ) result=bid*3750;
if (base=="#EP" ) result=bid*3938;
if (base=="#SLV" ) result=bid*5063;
if (base=="#GOLD") result=bid*2363;
if (base=="#CL" ) result=bid*4725;
if (base=="#NG" ) result=bid*8100;
if (base=="#W" ) result=bid* 608;
if (base=="#S" ) result=bid*1148;
if (base=="#C" ) result=bid* 473;
return (result);
}
// End
Чего проще, измени переменную string symbol=Symbol();
на функцию string symbol=FullSymbol();
А в этой функции ручками пропиши все полные названия от Symbol().
Но на мой взгляд таких непонятных символов наберется не более 10-15. Распечатай их на твердую копию и положи рядом с монитором. Можно отсюда http://www.alpari-idc.ru/ru/cspec/
на функцию string symbol=FullSymbol();
А в этой функции ручками пропиши все полные названия от Symbol().
Но на мой взгляд таких непонятных символов наберется не более 10-15. Распечатай их на твердую копию и положи рядом с монитором. Можно отсюда http://www.alpari-idc.ru/ru/cspec/
Вот скрипт который выводи инфу по счёт и символу.
Вот здесь последняя редакция скрипта "Инфо":
http://www.kroufr.ru/forum/index.php?action=dlattach;topic=4861.0;attach=4075
В MQL4 нет функции, которая бы выводила полное наименование символа. Просите разработчиков, может добавят...
Но на мой взгляд таких непонятных символов наберется не более 10-15.
Еслиб было дело в 10-15. К примеру в moneyrain их наверно больше сотни.
Просите разработчиков, может добавят...
Не удачная шутка. Разработчиков просить бесполезно .
Спасибо за скрип и за разъяснения.
Не вообще, а непонятных. Такие Майкрософт и Кока-Кола узнаются с одного взгляда.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь