jarikn: Chicos, ayudadme a hacer una alerta para un indicador. Quiero probar una combinación de diferentes indicadores, pero necesito una función de alerta. Quiero que la alerta se muestre sólo una vez cuando aparezca la flecha. Si no es difícil por favor ayúdame a escribir esta función, no puedo hacerlo, las alertas aparecen un minuto entero o todo el tiempo, incluso mt4 se cuelga.
Añadir una variable
si no es una señal la variable se convierte en falsa
Otra pregunta, ¿por qué este indicador es una carga pesada para la CPU? Abro 10 pares de divisas y mt4 se empantana mucho. me gustaría cambiar el indicador a un asesor experto, ¿también se retrasaría así?
Hola a todos, tengo un indicador que muestra el ángulo de la tendencia en grados (aunque no normalizado). Todo está bien en el gráfico. Puede estar en la propia curva angular (azul) o en su curva media (verde) - Fig. 1. Al llamar al indicador en el Asesor Experto a través de double Custom = iCustom(Symbol(), window, "Angle", 0, 1), el programa produce unos números enormes - Figura 2. La ventana de diálogo - período del gráfico, "Angle" - nombre del indicador, 0 - buffer cero donde se calcula la línea azul (puedo poner 1 - buffer MA verde, pero el resultado será similar), 1 - desplazamiento. ¿Cuál puede ser el problema?
Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
He escrito un EA y todo parece funcionar. Pero la cuestión es que las órdenes deben cerrarse al cruzar los resbalones. Para ser más precisos, sólo se cierra la primera orden, y no importa qué camino haya tomado, entonces el registro genera el error OrderClose error 4051. ¿Cuál es el problema?
//-----------------------------------------------------------if (CountSell() == 0 && mama1<mama2 && cci>verh && cci1>verh && cci<cci1)
{
tiket = OrderSend(Symbol(), OP_SELL,Lots,Bid,Slippage,0,0,"",Magic,0, Red);
if (tiket>0)
{
SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if (OrderSelect(tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP,0))
Print("Ошибка модификации ордера на продажу");
} elsePrint("Ошибка открытия ордера на продажу");
}
if (CountBuy() == 0 && mama1>mama2 && cci<nuz && cci1<nuz && cci>cci1)
{
tiket = OrderSend(Symbol(), OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
if (tiket>0)
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if (OrderSelect(tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP,0))
Print("Ошибка модификации ордера на покупку");
} elsePrint("Ошибка открытия ордера на покупку");
}
if(mama1>mama2 && CountSell()>0)
{
for(int i = OrdersTotal() -1;i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
OrderClose(OrderType(),OrderLots(),Ask,Slippage,Black);
}
}
}
if(mama1<mama2 && CountBuy()>0)
{
for(int i = OrdersTotal() -1;i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
OrderClose(OrderType(),OrderLots(),Bid,Slippage,Black);
}
}
}
Tango_X: ¿Podríais decirme cómo hacer que un objeto sea seleccionado mediante programación? No he encontrado nada de eso en la Ayuda
Si se utiliza la función estándar de creación de objetos, la configuración por defecto es selección = true. Por ejemplo, para la línea de tendencia, la cuarta línea desde abajo:
bool TrendCreate(constlong chart_ID = 0, // ID графикаconststring name = "TrendLine", // имя линииconstint sub_window = 0, // номер подокнаdatetime time1 = 0, // время первой точкиdouble price1 = 0, // цена первой точкиdatetime time2 = 0, // время второй точкиdouble price2 = 0, // цена второй точкиconstcolor clr = clrRed, // цвет линииconstENUM_LINE_STYLE style = STYLE_SOLID, // стиль линииconstint width = 4, // толщина линииconstbool back = false, // на заднем планеconstbool selection = true, // выделить для перемещенийconstbool ray_right = false, // продолжение линии вправоconstbool hidden = true, // скрыт в списке объектовconstlong z_order = 0) // приоритет на нажатие мышью
Prueba esto, debería funcionar.
No. Sigue emitiendo una alerta. Aquí está todo el código y las indulgencias. Tal vez estoy haciendo algo mal
Chicos, ayudadme a hacer una alerta para un indicador. Quiero probar una combinación de diferentes indicadores, pero necesito una función de alerta. Quiero que la alerta se muestre sólo una vez cuando aparezca la flecha. Si no es difícil por favor ayúdame a escribir esta función, no puedo hacerlo, las alertas aparecen un minuto entero o todo el tiempo, incluso mt4 se cuelga.
Añadir una variable
si no es una señal la variable se convierte en falsa
si (señal y variable== false) {
alerta;
variable=true;
}
Añadir una variable
la variable se convierte en falsa si aparece una nueva vela
si (señal y variable== false) {
alerta;
variable=true;
}
no será más de 1 por velaBien. Gracias.
Bien. Gracias.
Lo cambié allí.
Hola a todos, tengo un indicador que muestra el ángulo de la tendencia en grados (aunque no normalizado). Todo está bien en el gráfico. Puede estar en la propia curva angular (azul) o en su curva media (verde) - Fig. 1. Al llamar al indicador en el Asesor Experto a través de double Custom = iCustom(Symbol(), window, "Angle", 0, 1), el programa produce unos números enormes - Figura 2. La ventana de diálogo - período del gráfico, "Angle" - nombre del indicador, 0 - buffer cero donde se calcula la línea azul (puedo poner 1 - buffer MA verde, pero el resultado será similar), 1 - desplazamiento. ¿Cuál puede ser el problema?
¿Podríais decirme cómo hacer que un objeto sea seleccionable? No he encontrado nada de eso en la Ayuda
OBJPROP_SELECTED
Selección de objetos
mql5
mql4
¿Podríais decirme cómo hacer que un objeto sea seleccionado mediante programación? No he encontrado nada de eso en la Ayuda
Si se utiliza la función estándar de creación de objetos, la configuración por defecto es selección = true. Por ejemplo, para la línea de tendencia, la cuarta línea desde abajo: