Закладку делать не будем. Вот, посмотрите в качестве примера индикатор
//+------------------------------------------------------------------+ //| iExposure.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 1 #property indicator_minimum 0.0 #property indicator_maximum 0.1 #define SYMBOLS_MAX 1024 #define DEALS 0 #define BUY_LOTS 1 #define BUY_PRICE 2 #define SELL_LOTS 3 #define SELL_PRICE 4 #define NET_LOTS 5 #define PROFIT 6 extern color ExtColor=LightSeaGreen; string ExtName="Exposure"; string ExtSymbols[SYMBOLS_MAX]; int ExtSymbolsTotal=0; double ExtSymbolsSummaries[SYMBOLS_MAX][7]; int ExtLines=-1; string ExtCols[8]={"Symbol", "Deals", "Buy lots", "Buy price", "Sell lots", "Sell price", "Net lots", "Profit"}; int ExtShifts[8]={ 10, 80, 130, 180, 260, 310, 390, 460 }; int ExtVertShift=14; double ExtMapBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { IndicatorShortName(ExtName); SetIndexBuffer(0,ExtMapBuffer); SetIndexStyle(0,DRAW_NONE); IndicatorDigits(0); SetIndexEmptyValue(0,0.0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void deinit() { int windex=WindowFind(ExtName); if(windex>0) ObjectsDeleteAll(windex); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ void start() { string name; int i,col,line,windex=WindowFind(ExtName); //---- if(windex<0) return; //---- header line if(ExtLines<0) { for(col=0; col<8; col++) { name="Head_"+col; if(ObjectCreate(name,OBJ_LABEL,windex,0,0)) { ObjectSet(name,OBJPROP_XDISTANCE,ExtShifts[col]); ObjectSet(name,OBJPROP_YDISTANCE,ExtVertShift); ObjectSetText(name,ExtCols[col],9,"Arial",ExtColor); } } ExtLines=0; } //---- ArrayInitialize(ExtSymbolsSummaries,0.0); int total=Analyze(); if(total>0) { line=0; for(i=0; i<ExtSymbolsTotal; i++) { if(ExtSymbolsSummaries[i][DEALS]<=0) continue; line++; //---- add line if(line>ExtLines) { int y_dist=ExtVertShift*(line+1)+1; for(col=0; col<8; col++) { name="Line_"+line+"_"+col; if(ObjectCreate(name,OBJ_LABEL,windex,0,0)) { ObjectSet(name,OBJPROP_XDISTANCE,ExtShifts[col]); ObjectSet(name,OBJPROP_YDISTANCE,y_dist); } } ExtLines++; } //---- set line int digits=MarketInfo(ExtSymbols[i],MODE_DIGITS); double buy_lots=ExtSymbolsSummaries[i][BUY_LOTS]; double sell_lots=ExtSymbolsSummaries[i][SELL_LOTS]; double buy_price=0.0; double sell_price=0.0; if(buy_lots!=0) buy_price=ExtSymbolsSummaries[i][BUY_PRICE]/buy_lots; if(sell_lots!=0) sell_price=ExtSymbolsSummaries[i][SELL_PRICE]/sell_lots; name="Line_"+line+"_0"; ObjectSetText(name,ExtSymbols[i],9,"Arial",ExtColor); name="Line_"+line+"_1"; ObjectSetText(name,DoubleToStr(ExtSymbolsSummaries[i][DEALS],0),9,"Arial",ExtColor); name="Line_"+line+"_2"; ObjectSetText(name,DoubleToStr(buy_lots,2),9,"Arial",ExtColor); name="Line_"+line+"_3"; ObjectSetText(name,DoubleToStr(buy_price,digits),9,"Arial",ExtColor); name="Line_"+line+"_4"; ObjectSetText(name,DoubleToStr(sell_lots,2),9,"Arial",ExtColor); name="Line_"+line+"_5"; ObjectSetText(name,DoubleToStr(sell_price,digits),9,"Arial",ExtColor); name="Line_"+line+"_6"; ObjectSetText(name,DoubleToStr(buy_lots-sell_lots,2),9,"Arial",ExtColor); name="Line_"+line+"_7"; ObjectSetText(name,DoubleToStr(ExtSymbolsSummaries[i][PROFIT],2),9,"Arial",ExtColor); } } //---- remove lines if(total<ExtLines) { for(line=ExtLines; line>total; line--) { name="Line_"+line+"_0"; ObjectSetText(name,""); name="Line_"+line+"_1"; ObjectSetText(name,""); name="Line_"+line+"_2"; ObjectSetText(name,""); name="Line_"+line+"_3"; ObjectSetText(name,""); name="Line_"+line+"_4"; ObjectSetText(name,""); name="Line_"+line+"_5"; ObjectSetText(name,""); name="Line_"+line+"_6"; ObjectSetText(name,""); name="Line_"+line+"_7"; ObjectSetText(name,""); } } //---- to avoid minimum==maximum ExtMapBuffer[Bars-1]=-1; //---- } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int Analyze() { double profit; int i,index,type,total=OrdersTotal(); //---- for(i=0; i<total; i++) { if(!OrderSelect(i,SELECT_BY_POS)) continue; type=OrderType(); if(type!=OP_BUY && type!=OP_SELL) continue; index=SymbolsIndex(OrderSymbol()); if(index<0 || index>=SYMBOLS_MAX) continue; //---- ExtSymbolsSummaries[index][DEALS]++; profit=OrderProfit()+OrderCommission()+OrderSwap(); ExtSymbolsSummaries[index][PROFIT]+=profit; if(type==OP_BUY) { ExtSymbolsSummaries[index][BUY_LOTS]+=OrderLots(); ExtSymbolsSummaries[index][BUY_PRICE]+=OrderOpenPrice(); } else { ExtSymbolsSummaries[index][SELL_LOTS]+=OrderLots(); ExtSymbolsSummaries[index][SELL_PRICE]+=OrderOpenPrice(); } } //---- total=0; for(i=0; i<ExtSymbolsTotal; i++) { if(ExtSymbolsSummaries[i][DEALS]>0) total++; } //---- return(total); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int SymbolsIndex(string SymbolName) { bool found=false; //---- for(int i=0; i<ExtSymbolsTotal; i++) { if(SymbolName==ExtSymbols[i]) { found=true; break; } } //---- if(found) return(i); if(ExtSymbolsTotal>=SYMBOLS_MAX) return(-1); //---- i=ExtSymbolsTotal; ExtSymbolsTotal++; ExtSymbols[i]=SymbolName; ExtSymbolsSummaries[i][DEALS]=0; ExtSymbolsSummaries[i][BUY_LOTS]=0; ExtSymbolsSummaries[i][BUY_PRICE]=0; ExtSymbolsSummaries[i][SELL_LOTS]=0; ExtSymbolsSummaries[i][SELL_PRICE]=0; ExtSymbolsSummaries[i][NET_LOTS]=0; ExtSymbolsSummaries[i][PROFIT]=0; //---- return(i); } //+------------------------------------------------------------------+
спасибо, конечно, за индикатор. но он среднюю цену считает неправильно, да и функционала у него нет никакого, всеравно каждый ордер ручками править надо. ладно бы когда их 2-3, а когда больше 10, да еще на нескольких счетах. неудобно, недостойно программы-лидера для трейдинга )
что мешает добавить такую возможность?
что мешает добавить такую возможность?
Требуемый Вами функционал решается при помощи программирования скриптов. Заходите на mql4.com, в разделе codebase есть интересные наработки. Да и в статьях можно найти много интересного.
Управление несколькими счетами из одного клиентского терминала принципиально невозможно.
Управление несколькими счетами из одного клиентского терминала принципиально невозможно.
опять же, спасибо, за наводку, но я не программист, я трейдер. мне бы торговать удобно )
одновременно несколько счетов не надо, пусть бы на одном считало и работало как надо, а переключаться между счетами можно и вручную.
p.s.: на упомянутом Вами ресурсе ничего подоходящего не обнаружилось.
что мешает добавить такую возможность?
одновременно несколько счетов не надо, пусть бы на одном считало и работало как надо, а переключаться между счетами можно и вручную.
p.s.: на упомянутом Вами ресурсе ничего подоходящего не обнаружилось.
что мешает добавить такую возможность?

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
суть пожелания вот в чем: было бы очень удобно в терминале иметь закладку с названием, например, "позиции", в которой можно видеть суммарный объем и среднюю цену по множеству открытых позиций, для каждой пары и направления отдельно. в идеале с возможностью изменять сразу для всей позы стоп и тейк, закрывать всю позу одним движением, а так же с указанием средней цены входа и с учетом свопа. это было бы удобством в работе, когда открыто несколько позиций по одной паре в одну сторону.
спасибо