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.
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
En MetaTrader5 es posible generar un EA en 3 bloques. 1 bloque da señales de un indicador o de varios indicadores. 2 barras de arrastre en bloque. 3 riesgos en bloque.
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)?
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
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)?