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
¡Hola chicos he estado tratando de conseguir este asesor experto para ejecutar operaciones largas en mt4 sin éxito. sólo ejecuta operaciones cortas a pesar de la signal_buy está allí. por favor, ¿podría alguien echar un vistazo a este código y arreglarlo para mí o decirme qué hacer. soy nuevo en la programación y construido a partir de un constructor de estrategia en línea. gracias de antemano! el código se adjunta.
I am not sure about the -3 shift parameter : it shift the curve to the left, so the current bar is undefinited. Try to replace all -3 by 0 to see if the buy orders are triggered.
I would replace
double Var2 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Var3 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double Var4 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);
double Buy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double Sell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current + 0);
double CloseBuy1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);
double CloseSell1_1 = iMA(NULL, 0, 3, -3, MODE_SMA, PRICE_CLOSE, Current + 0);
double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current + 0);by
[PHP]double Buy1_1 = iMA(NULL, 0, 3, 0, MODE_SMA, PRICE_CLOSE, Current);
double Buy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);
double Sell1_1 = Buy1_1;
double Sell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_LOWER, Current);
double CloseBuy1_1 = Buy1_1;
double CloseBuy1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);
double CloseSell1_1 = Buy1_1;
double CloseSell1_2 = iBands(NULL, 0, 20, 2, 1, PRICE_CLOSE, MODE_UPPER, Current);Rem :
- Var1,2,3,4 no se utilizan.
- Tanto CloseBuy1_2 como CloseSell1_2 son los mismos: uno de ellos está probablemente equivocado (MODE_LOWER)
Necesito ayuda con el código
Michel, muchas gracias por tu ayuda, se ha arreglado perfectamente, sois los mejores, por fin puedo descansar. Ya os contaré que tal me han salido las pruebas.
por cierto, ¿dices que -3 nunca podrá trabajar en este expert advisor? gracias de nuevo.
... por cierto, ¿dices que el -3 nunca podrá funcionar en este expert advisor? gracias de nuevo.
A decir verdad, nunca entendí muy bien el uso de este desplazamiento : si quieres saber el valor de una indicación 3 barras antes de la barra actual, solo usa 3 como desplazamiento, pero el último; el primero solo desplaza el dibujo de la curva, y si usas un valor negativo, es como si el pasado estuviera conociendo el futuro...
¡De todas formas me encantaría que alguien me explicara su uso !
Pero para responder a tu pregunta, intenta saber la estrategia exacta que quieres seguir, ¿de dónde viene ese -3?
hola
en este experto me gustaría modificar todos los sl a últimos pedidos sl igual que tp pero no he podido
por favor ayudenme
¿Qué he hecho?
Necesito ayuda para codificar en MT4
Tengo un poco de código a continuación:
StopLoss=EMAtrend-iClose(NULL,0,1);
TakeProfit=StopLoss
If(EMAshort>EMAlong && EMAshort_prev<EMAlong_prev)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Ask+StopLoss*Point,Bid+TakeProfit*Point, "Comprar al precio de cierre",10000,0,Green);
}
If(EMAshortEMAlong_prev)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,0,StopLoss,Bid+TakeProfit*Point, "Vender al precio de cierre",11000,0,Rojo);
}
La idea era:
1. Abrir la orden al precio de cierre cuando se cumplan los criterios;
2. Quiero que la EMAtrend sea el nivel de stoploss;
3. La distancia entre la EMAtrend y la barra de precio de cierre será la distancia para el takeprofit desde el precio de apertura
Intento el código anterior pero no pasa nada y hay un error 130.
Por favor, ayúdeme.
Necesito ayuda con el código
Hola a todos
Estoy tratando de conseguir un ea para compilar, pero aparece el siguiente error:
Now the part of the ea causing this is right at the start of the code :
If I block this out it comes up with errors for the following bit of code :
[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }
}//end if(OrderSymbol
}//end for
}//end if */Lo que quiero saber es si hay una manera fácil de arreglar esto.
No soy bueno en la codificación, sólo copiar y pegar.
Gracias de antemano
Basza
Hola a todos
Estoy tratando de conseguir un ea para compilar, pero aparece el siguiente error:
Now the part of the ea causing this is right at the start of the code :
If I block this out it comes up with errors for the following bit of code :
[CODE] if(TotalTradesThisSymbol(TradeSymbol)==0) { int BS=0,SS=0,BL=0,SL=0; }
if(TotalTradesThisSymbol(TradeSymbol)>0) {
for(cnt=0;cnt<total;cnt++) {
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol) {
if(OrderMagicNumber()==11) { BS=OrderTicket(); }
if(OrderMagicNumber()==22) { SS=OrderTicket(); }
if(OrderMagicNumber()==33) { BL=OrderTicket(); }
if(OrderMagicNumber()==44) { SL=OrderTicket(); }
}//end if(OrderSymbol
}//end for
}//end if */Lo que quiero saber es si hay una manera fácil de arreglar esto.
No soy bueno en la codificación , sólo copiar y pegar.
Gracias de antemano
BaszaPuedes definir TradeSymbol como cadena en la primicia global, pero allí no puedes evaluar la función Symbol(). Así que sustituye todo "TradeSymbol" por "Symbol()", o asigna el valor en la función init() o start() así:
ayuda en la programación
Hola estoy tratando de programar un ea, y he seguido su curso (muy interesante!)
Sé bastante bien como programar en java y algo de c++
Estaba tratando de programar un ea con indicadores de tendencia del cerebro la idea detrás es
cuando brainTrend2stop y braintrend1stop DOTs están presentes comprar (y viceversa)
pero si llamo a la función icustom así
BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;
sólo obtengo el valor del indicador en la barra actual
¿hay alguna forma de hacerlo booleano? me gustaría escribir una función como
buy=true
BuyCondition = (IndicatorName1=true && IndicatorName2=true);
¿alguien puede ayudar por favor?
Controlar si se ejecuta una orden de entrada...
Tengo un EA que abre y gestiona la posición, pero a veces el indicador da la misma señal múltiple y el EA abre cada vez que esta señal sale una nueva posición - pero no quiero una segunda o tercera y así sucesivamente posición, sólo la primera - ¿es posible que el EA compruebe la posición abierta sobre la base del número mágico y el par para evitar tales entradas múltiples?
Hola estoy tratando de programar un ea, y he seguido tu curso (muy interesante!)
Sé bastante bien como programar en java y algo de c++
Estaba tratando de programar un ea con indicadores de tendencia cerebro la idea detrás es
cuando brainTrend2stop y braintrend1stop DOTs están presentes comprar (y viceversa)
pero si llamo a la función icustom así
BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1) ;
sólo obtengo el valor del indicador en la barra actual
¿hay alguna forma de hacerlo booleano? me gustaría escribir una función como
buy=true
BuyCondition = (IndicatorName1=true && IndicatorName2=true);
¿alguien puede ayudar, por favor, por favor?