Как зафиксировать объем по умолчанию для каждого инструмента(в каждом окне свой инструмент и объем) и чтобы он не сбрасывался при перезагрузке терминала МТ5 ?
Вопрос.
Как зафиксировать объем по умолчанию для каждого инструмента и чтобы он не сбрасывался при перезагрузке терминала МТ5 ?
Мне это нужно для того, чтобы не высчитывать каждый раз этот объём для каждого инструмента заново. Инструментов (например акций или валют) и окон под них много.
Открываю сделки руками с рынка или отложками, а не советником.
Ниже описанный способ не работает.
1. Выставляю в торговой панели нужные мне объемы для каждого инструмента(в каждом окне свой инструмент со своим объёмом).
2. Устанавливаю Сервис - Настройки - Торговля -Объём - Last Used
3. Перезагружаю терминал МТ5
Всё это работает только для одного инструмента(акции) в текущем окне , а на остальных открытых инструментах(окнах) объем меняется на такой же как в текущем окне,
то есть сбрасывается (((
Прошу подсказки у опытных пользователей.
//+------------------------------------------------------------------+ //| Volume.mq5 | //| Copyright 2021 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021 prostotrader" #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- ObjectCreate(ChartID(),"Volume_1",OBJ_LABEL,0,0,0); ObjectSetInteger(ChartID(),"Volume_1",OBJPROP_XDISTANCE,5); ObjectSetInteger(ChartID(),"Volume_1",OBJPROP_YDISTANCE,15); ObjectSetInteger(ChartID(),"Volume_1",OBJPROP_COLOR,clrWhite); ObjectSetString(ChartID(),"Volume_1",OBJPROP_TEXT,"Volume: 0"); ObjectCreate(ChartID(),"Volume_2",OBJ_LABEL,0,0,0); ObjectSetInteger(ChartID(),"Volume_2",OBJPROP_XDISTANCE,5); ObjectSetInteger(ChartID(),"Volume_2",OBJPROP_YDISTANCE,30); ObjectSetInteger(ChartID(),"Volume_2",OBJPROP_COLOR,clrWhite); ObjectSetString(ChartID(),"Volume_2",OBJPROP_TEXT,"Pos type: none"); GetPosData(); ChartRedraw(); //--- return(INIT_SUCCEEDED); } void GetPosData() { if(PositionSelect(Symbol()) == true) { ENUM_POSITION_TYPE pos_type = ENUM_POSITION_TYPE(PositionGetInteger(POSITION_TYPE)); long a_vol = long(PositionGetDouble(POSITION_VOLUME)); ObjectSetString(ChartID(),"Volume_1",OBJPROP_TEXT,"Volume: " + string(a_vol)); ObjectSetString(ChartID(),"Volume_2",OBJPROP_TEXT,"Pos type: " + EnumToString(pos_type)); } else { ObjectSetString(ChartID(),"Volume_1",OBJPROP_TEXT,"Volume: 0"); ObjectSetString(ChartID(),"Volume_2",OBJPROP_TEXT,"Pos type: none"); } } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectDelete(ChartID(),"Volume_1"); ObjectDelete(ChartID(),"Volume_2"); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { GetPosData(); } //+------------------------------------------------------------------+
Спасибо за участие.
Я так понимаю, что это Эксперт и он показывает в левом верхнем углу Объем открытой в настоящий момент позиции.
Но на текущем символе может и не быть открытых позиций, тем более МТ и так показывает объём уже установленного ордера(рыночного или отложенного).
Всё дело как раз в том, чтобы открывая инструмент на котором в настоящее время даже нет никаких ордеров, хотя бы знать каким объёмом открывался последний ордер поэтому инструменту.
А если ещё никогда не открывался, то ничего и не выводить (тут придётся первый раз высчитывать объём самому).
Спасибо за участие.
Я так понимаю, что это Эксперт и он показывает в левом верхнем углу Объем открытой в настоящий момент позиции.
Но на текущем символе может и не быть открытых позиций, тем более МТ и так показывает объём уже установленного ордера(рыночного или отложенного).
Всё дело как раз в том, чтобы открывая инструмент на котором в настоящее время даже нет никаких ордеров, хотя бы знать каким объёмом открывался последний ордер поэтому инструменту.
А если ещё никогда не открывался, то ничего и не выводить (тут придётся первый раз высчитывать объём самому).
Чтобы реализовать Ваши потребности, нужно "перелопатить" всю историю за доступные года (" А если ещё никогда не открывался...") по ордерам и сделкам инструмента.
Похоже, Вы сами не знаете, что хотите.
Чтобы реализовать Ваши потребности, нужно "перелопатить" всю историю за доступные года (" А если ещё никогда не открывался...") по ордерам и сделкам инструмента.
Похоже, Вы сами не знаете, что хотите.
Глубину истории (чтобы не "лопатить") можно было бы задавать в настройках, например мне достаточно недели, т.к. если инструмент не использовался для торговли дольше, то можно и посчитать заново.
Хотя наверно проще информационный индикатор на графике инструмента, показывающий объём который ранее выставлялся в настройках этого индикатора(и так для каждого инструмента). В этом случае и после перезагрузки терминала объём не собьётся.
Я знаю, что хочу и описал это в первом посте.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вопрос.
Как зафиксировать объем по умолчанию для каждого инструмента и чтобы он не сбрасывался при перезагрузке терминала МТ5 ?
Мне это нужно для того, чтобы не высчитывать каждый раз этот объём для каждого инструмента заново. Инструментов (например акций или валют) и окон под них много.
Открываю сделки руками с рынка или отложками, а не советником.
Ниже описанный способ не работает.
1. Выставляю в торговой панели нужные мне объемы для каждого инструмента(в каждом окне свой инструмент со своим объёмом).
2. Устанавливаю Сервис - Настройки - Торговля -Объём - Last Used
3. Перезагружаю терминал МТ5
Всё это работает только для одного инструмента(акции) в текущем окне , а на остальных открытых инструментах(окнах) объем меняется на такой же как в текущем окне,
то есть сбрасывается (((
Прошу подсказки у опытных пользователей.