Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 727
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Pode dizer-me como seleccionar um objecto quando este é criado, para que não perca a sua selecção e não se seleccione a si próprio quando o utilizador o deselecciona. Foi fácil no quarto, mas não funciona no quinto.
Costumava ser, e funcionava muito bem:
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);
}
Como se pode ver, ao criar, podemos seleccionar ou não o objecto que está a ser criado de uma só vez e este não mudará mais e não haverá qualquer referência a ele, mas não funciona no quinto, cria-o sem selecção.
Como fazer mql5 para que o objecto possa ser seleccionado na criação e depois geri-lo manualmente quando necessário - para seleccionar/não seleccionar
Bem, é, mas o ícone não se destaca
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);
}
Bem, é, mas o ícone não é realçado
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);
}
Tudo é realçado:
Tudo se destaca:
Notei uma característica estranha, se a definirmos desta forma, as linhas não são realçadas quando se cria
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Mas se for ao contrário, não há problema com a selecção:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Por alguma razão, a substituição do summands altera a soma?
Notei uma característica estranha, se a definirmos desta forma, as linhas não são realçadas quando se cria
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Mas se se fizer o contrário, então não há problema com a selecção:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Por alguma razão, a substituição do summands altera a soma?
Aparentemente, quando
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
último comando, o gráfico é actualizado
Notei uma característica estranha, se a definirmos desta forma, as linhas não são realçadas quando se cria
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Mas se se fizer o contrário, então não há problema com a selecção:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Por alguma razão, a substituição do summands altera a soma?
Depois selecciona-o (mas o objecto não é seleccionável), consequentemente nada é seleccionado
Depois, define-o como seleccionável. Mas é "demasiado tarde para beber o borjomi" ...
Por isso, aqui está o código completo:
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);
}
}
Sim, duplamente verificado em todos os tipos de objectos, e tem de colocar"SELECTABLE" primeiro e depois"SELECTED" (SELECCIONADO)
Obrigado pela sua participação e ajuda para a sua resolução!
Posso sugerir 1. posso adicionar indicadores personalizados em 1 bloco? Se sim, como o devo fazer?
2. é possível corrigir o código para que os negócios sejam abertos nos dois sentidos (agora, por exemplo, se um negócio de compra é aberto, o negócio de venda não é aberto até que o negócio de compra seja fechado)