Как получить полное название символ для отображения на чарте. Например: вместо #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+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь