Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 64
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
Estimados usuarios del foro, por favor ayúdenme mucho.
if (TimeBar==Time[0]) return(0);
double MA1 = NormalizeDouble(iMA(NULL,TimeFrame_2,MA_Period_2,MA_Shift_2,MA_Method_2,Applied_Price_2,0),Digits); // donde 0 es el desplazamiento de la barra actual por el número de períodos atrás
//double MA21 = NormalizeDouble(iMA(NULL,timeframe_2,period_2,ma_shift_2,ma_method_2,applied_price_2,2),Digits);
double MA2 = NormalizeDouble(iMA(NULL,timeFrame_3,MA_Period_3,MA_Shift_3,MA_Method_3,Applied_Price_3,0),Digits);
//double MA31 = NormalizeDouble(iMA(NULL,timeframe_3,period_3,ma_shift_3,ma_method_3,applied_price_3,2),Digits)
double MA3 = NormalizeDouble(iMA(NULL,TimeFrame_4,MA_Period_4,MA_Shift_4,MA_Method_4,Applied_Price_4,0),Digits);
double OsMA = NormalizeDouble(iOsMA(NULL,TimeFrame_5,FastEMA_5,SlowEMA_5,SignalSMA_5,Applied_Price_5,0),Digits)
if (MaxOrders>b && Low[0]>=MathMax(MA1,MA2)&& Low[0]>MA3 && Ask>MathMax(MA1,MA2)+DeltaOpen*Point && Ask>MA3 && MA2<MA3 && MA1<MA3 && OsMA>0 && Trade)
{
if (OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Blue) ==-1) TimeBar=0;
else TimeBar=Time[0];
}
if (MaxOrders>s && High[0]<=MathMin(MA1,MA2) && High[0]<MA3 && Bid<MathMin(MA1,MA2)-DeltaOpen*Point && Bid<MA3 && MA1>MA3 && MA2>MA3 && OsMA<0 && Trade)
{
if (OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Red) ==-1) TimeBar=0;
else TimeBar=Time[0];
}
return(0);
Con estas condiciones, el Asesor Experto abre una operación, digamos, de VENTA, la cierra con ganancias, e inmediatamente abre otra operación de VENTA. Cómo prescribir en un EA, que cuando se recibe la señal, sólo se debe abrir una operación, es decir, una señal - una operación.
Gracias de antemano.
1 variante - o bien comprueba la condición de la operación para que: el índice 2 muestre una señal de compra y el índice 1 una señal de venta, entonces en la apertura de una barra con índice 0 abrirá una operación de venta.
La segunda variante es comprobar el historial de órdenes y comparar los índices de señales y de órdenes, si son iguales, entonces no abra más órdenes.
¿Dónde y cómo se inicializa la variable TimeBar?
Aunque en tu caso no te servirá de mucho. Veo la variable Comercio en las condiciones, así que ajusta la apertura con ella.
Llevo dos días luchando y no consigo resolverlo. Necesito encontrar el precio más bajo de las últimas n barras, pero no de la barra actual, sino de la barra recibida a través de la función. La función devuelve el índice de la barra en la que se abrió la orden. Esta es la barra a partir de la cual tenemos que buscar en el historial las n barras para encontrar el precio más bajo. Abajo está mi código, ¿qué tiene de malo?
así
algo así.
¡Muchas gracias! Intenté usar esta función también, pero de nuevo en un bucle, resulta ser simple )))) Gracias de nuevo.
gifto:
Tengo la siguiente pregunta. ¿Cómo puedo interceptar la rueda del ratón, qué funciones winapi? Déjeme explicarle por qué. Hay un parámetro int en los externos. Tienes que girar la rueda para aumentar o disminuirla.
Cuando descubras cómo hacerlo, publícalo...
Hasta ahora, así es como ha funcionado:
Como Vadim me dijo que no usara ganchos de debajo de MT4, a la plataforma no le gustan, así que no los toco. Probablemente para nada)