Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 727
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Me podéis decir cómo seleccionar un objeto cuando se crea, para que no pierda la selección y no se seleccione cuando el usuario lo deseleccione. Fue fácil en el cuarto, pero no funciona en el quinto.
Solía serlo, y funcionaba bien:
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 puedes ver, al crear, podemos seleccionar o no seleccionar el objeto que se está creando a la vez y ya no cambiará y no habrá referencia a él, pero no funciona en la quinta, la crea sin selección.
Cómo hacer mql5 para que el objeto pueda ser seleccionado en la creación y luego gestionado manualmente cuando sea necesario - para seleccionar / no seleccionar
Bueno, lo es, pero el icono no 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);
}
Pues sí, pero el icono no está resaltado
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);
}
Todo está resaltado:
Todo destaca:
Me he dado cuenta de una característica extraña, si lo configuras así, las líneas no se resaltan al crear
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Pero si se hace lo contrario, entonces no hay problema de selección:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Por alguna razón, la sustitución de los sumandos cambia la suma?
Me he dado cuenta de una característica extraña, si lo configuras así, las líneas no se resaltan al crear
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Pero si es al revés, no hay problema de selección:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Por alguna razón, la sustitución de los sumandos cambia la suma?
Aparentemente, cuando
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
último comando, el gráfico se actualiza
Me he dado cuenta de una característica extraña, si lo configuras así, las líneas no se resaltan al crear
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
Pero si se hace lo contrario, entonces no hay problema de selección:
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
Por alguna razón, la sustitución de los sumandos cambia la suma?
Entonces lo seleccionas (pero el objeto no es seleccionable), en consecuencia no se selecciona nada
Entonces, lo pones como seleccionable. Pero es "demasiado tarde para beber el borjomi" ...
Así que aquí está el 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);
}
}
Sí, lo he comprobado dos veces en todos los tipos de objetos, y hay que poner primero"SELECTABLE" y luego"SELECTED"
¡Gracias por su participación y ayuda para resolverlo!
Puedo sugerir 1. ¿Puedo añadir indicadores personalizados en 1 bloque? En caso afirmativo, ¿cómo debo hacerlo?
2. ¿es posible corregir el código para que las operaciones se abran en ambas direcciones (ahora, por ejemplo, si se abre una operación de compra, la de venta no se abre hasta que se cierra la de compra)?