Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 727
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите, каким образом выделить объект при создании, и чтоб больше он не терял выделение, ну и не выделялся сам, когда пользователь уберёт выделение. В четвёртом это было просто, в пятом это не работает.
Было так и работало отменно:
if(ObjectFind(chart_ID,nm)!=0) {
ObjectCreate(chart_ID,nm,OBJ_HLINE,0,0,0);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
...
}
ObjectSetDouble(chart_ID,nm,OBJPROP_PRICE,p);
}
Как видно, при создании сразу можем выделить, или не выделить создаваемый объект и он больше изменяться не будет и к нему нет обращения, но вот в пятом такое не проходит, создаёт без выделения.
Как сделать в mql5 так, чтоб можно было выделить объект при создании, ну и дальше уже ним управлять вручную, когда нужно - выделять/не выделять
Ну так и есть, но значок не выделяется
if(ObjectFind(0,nm)!=0) {
ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0);
ObjectSetInteger(0,nm,OBJPROP_COLOR,col);
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false);
ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt);
}
ObjectSetDouble(0,nm,OBJPROP_PRICE,p);
ObjectSetInteger(0,nm,OBJPROP_TIME,t);
}
Ну так и есть, но значок не выделяется
if(ObjectFind(0,nm)!=0) {
ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0);
ObjectSetInteger(0,nm,OBJPROP_COLOR,col);
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false);
ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt);
}
ObjectSetDouble(0,nm,OBJPROP_PRICE,p);
ObjectSetInteger(0,nm,OBJPROP_TIME,t);
}
Всё выделяется:
Всё выделяется:
Заметил странную особенность, если прописать так, то линии не выделяет при создании
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
А вот если наоборот, то проблем с выделением нет:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Почему-то от замены слагаемых, сумма меняется?
Заметил странную особенность, если прописать так, то линии не выделяет при создании
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
А вот если наоборот, то проблем с выделением нет:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Почему-то от замены слагаемых, сумма меняется?
Видимо, когда
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
последняя команда, чарт обновляется
Заметил странную особенность, если прописать так, то линии не выделяет при создании
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
А вот если наоборот, то проблем с выделением нет:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Почему-то от замены слагаемых, сумма меняется?
Далее вы его выделяете (но объект не выделяемый), соответственно, ничего не выделяется
Затем вы ему задаёте свойство возможности выделения. Но "поздно пить боржоми" ...
Ну так вот полный код:
string tooltxt="",bool sel=false,bool back=false) {
if(ObjectFind(chart_ID,nm)<0) {
ObjectCreate(chart_ID,nm,OBJ_VLINE,0,tm,0);
ObjectSetInteger(chart_ID,nm,OBJPROP_TIME,tm);
ObjectSetInteger(chart_ID,nm,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
// ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
ObjectSetString(chart_ID,nm,OBJPROP_TOOLTIP,tooltxt);
ObjectSetInteger(chart_ID,nm,OBJPROP_COLOR,cl);
ObjectSetInteger(chart_ID,nm,OBJPROP_WIDTH,wd);
ObjectSetInteger(chart_ID,nm,OBJPROP_STYLE,st);
}
}
Да, перепроверил на всех типах объектов, и нужно первым ставить "SELECTABLE", а потом уже "SELECTED"
Спасибо за участие и помощь в решении!
Подскажите пожалуйста 1. можно ли в 1 блок добавить пользовательские индикаторы? Если да , то как это сделать?
2. можно ли подправить код так чтобы сделки открывались в обе стороны( сейчас например если открылась сделка на покупку, сделка на продажу не открывается пока не закроется сделка на покупку)