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
Muchas gracias!!! cockeyedcowboy, eso fue realmente genial!!
¡¡Ahora el mensaje de error está lejos!!
Pero el segundo indicador no se dibuja y no sé por qué
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
Tienes un problema con el segundo buffer porque no tiene datos para los cálculos.
Intenta calcular TODOS los elementos en Buffer_Mom, luego Buffer_Ma.
Ejemplo:
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(int i=0; i<limit; i++)
{
Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);
}
for( i=0; i<limit; i++)
{
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
}
return(0);
}Buena suerte.
Encontrar el OHLC de una barra específica
¿Puede alguien decirme cómo puedo averiguar el precio de cierre de una barra específica utilizando el código MQL? ¿Puedo referenciar una barra por su hora?
Es decir: precio_de_cierre_de_la_barra = Close("04:59:00 AM") ... ¡si fuera tan fácil!
Gracias
¡Hola amigos!
ok tengo otro gran problema...
como codificar esta condicion:
entrar en largo o en corto solo la primera vez
(asi que si tengo muchas señales largas ea entrar solo en la primera vez)
pagare a todos los que me puedan ayudar en esto
este es mi codigo simple para la condicion de compra:
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}¿Puede alguien decirme cómo puedo averiguar el precio de cierre de una barra específica utilizando el código MQL? ¿Puedo referenciar una barra por su hora?
es decir, closing_price_of_bar = Close("04:59:00 AM") ... ¡si fuera tan fácil!
GraciasPruebe esto:
precio_de_cierre = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59"));
Comprar o vender
Hola a todos,
Tengo el EA de compra y el EA de venta que siempre abren más de una posición. Me gustaría que me ayudaran a cambiar o modificar el código para que sólo permita 1(una) posición de compra y 1(una) posición de venta y en 1(una) cuenta.
El SL y el TP estarán usando el precio objetivo, es decir, si el precio de compra ha alcanzado el precio objetivo, cerrará la posición. Lo mismo con el precio de venta.
Agradezco la ayuda de los expertos en código de este foro.
Gracias.
=s21=
Comprar y vender
Oooops...
Aquí está el EA de compra.
Hola, si necesitas que sólo se abra un pedido, puedes añadir la siguiente condición: Si (OrdersTotal()==0).
Así que las reglas para las órdenes de compra serán algo así:
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
[/CODE]
So you will not get second-third-... orders opened until you current order open.
hy folks !
ok i have another big problem...
how to code this condition :
enter long or short only first time
(so if i have many following long signal ea enter only at first time)
i'll pay everyone could help me on this
this is my simple code for buy condition:
[CODE]
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}Prueba esto: precio_de_barra_de_cierre = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59"));
¡Fabuloso! Tuve que añadir 1 paréntesis de cierre extra para que el intérprete dejara de quejarse de un error, pero funcionó de maravilla.
Gracias, Roger09
Hola, si necesitas que sólo se abra una orden, puedes añadir la siguiente condición Si (OrdersTotal()==0).
Así que las reglas para las órdenes de COMPRA serán algo así:
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
gracias Avalancha,
pero no es una solución para mí, porque tengo un TP, no espero hasta la condición opuesta
¿Otra idea? PM me voy a pagar