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
Tenga en cuenta que usted puede necesitar para almacenar continuamente la propagación, así ... dependiendo del tipo de EA que está escribiendo. de lo contrario inútil
es HIGH [0] -- barra actual que acaba de EMPEZAR
para la baja, no sé, tal vez baja[1]
Orden correcto para poner OrderSend(),OrderModify()
Hace un día leí un tema en el foro sobre la función OrderSend() y OrderModify()
y este tema me da una pista de por qué algunos EA funcionan y otros no, y me pregunto cómo comprobar si la función OrderSend() y OrderModify() está bien escrita.
hola a todos...
Por favor, dígame cómo el código para obtener la lista de todos los pares en MT4?
gracias
Charles
Hola,
No es correcto escribir Ask[1], pero ¿cómo puedo obtener el precio Ask del último tick?
Gracias.Tienes que guardar los ticks en tiempo real, y luego acceder a ellos desde tu EA o indicador. Podría intentar codificar un ejemplo para ti si todavía estás interesado.
hola a todos...
Por favor, dígame cómo codificar para obtener la lista de todos los pares en MT4?
gracias
CharlesTómate tu tiempo hombre,, creo que es más fácil de hacer en Mql5 por lo que sólo tiene que esperar a que las cosas se establecen
obtener valores mágicos de tendencia en una variable...
¡¡¡hola!!!
Estoy trabajando en un EA y me pregunto cómo puedo obtener los valores del indicador de tendencia mágica en una variable. obviamente no hay ninguna función nativa para la tendencia mágica, como iMA hace para las medias móviles y así ....
¡hasta ahora parece que tengo que codificar desde cero. pero no encuentro ninguna información sobre las matemáticas!
¿alguien podría ayudar?
¡¡¡muchas gracias!!!
¡¡¡hola!!!
Estoy trabajando en un EA y me pregunto cómo puedo obtener los valores del indicador de tendencia mágica en una variable. obviamente no hay ninguna función nativa para la tendencia mágica, como iMA hace para las medias móviles y so....
Hasta ahora parece que tengo que codificar desde cero, pero no encuentro ninguna información sobre las matemáticas.
¿alguien podría ayudar?
¡¡¡muchas gracias!!!Busca información de como usar la función ICustom en MQL4 . Con esta función puedes llamar a indicadores externos en tu EA
-guyver
Robot - Automat EA sobre 2 medias móviles MA rápidas y lentas
#define SIGNAL_NONE 0
#define SEÑAL_BUY 1
#define SEÑAL_VENTA 2
#define SEÑAL_CLOSEBUY 3
#define SEÑAL_CLOSESELL 4
extern int NúmeroMágico = 0
extern bool SignalMail = False;
extern bool EachTickMode = True
extern double Lotes = 0.2
extern int Slippage = 3;
extern bool UseStopLoss = True
extern int StopLoss = 15;
extern bool UseTakeProfit = True
extern int TakeProfit = 30
extern bool UseTrailingStop = True
extern int TrailingStop = 20
int BarCount;
int Actual;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| función de inicialización de expertos ||.
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
si (EachTickMode) Current = 0; si no, Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta ||.
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experta |
//+------------------------------------------------------------------+
int inicio() {
int Orden = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Orden = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Comienzo de la variable |++
//+------------------------------------------------------------------+
double Var1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Var2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Buy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Buy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Sell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double Sell1_2 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseBuy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseBuy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseSell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
double CloseSell1_2 = iMA("GBPUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Current + 1);
//+------------------------------------------------------------------+
//| Fin de la Variable ||++
//+------------------------------------------------------------------+
//Comprobar posición
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Cerrar
//+------------------------------------------------------------------+
//| Señal Inicio(Salida Compra) || /Cerrar
//+------------------------------------------------------------------+
if (CloseBuy1_1 > CloseBuy1_2 && False) Orden = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| Señal Fin(Salir de la Compra) |++
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continuar;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continuar;
}
}
}
} else {
//Cerrar
//+------------------------------------------------------------------+
//| Señal de inicio (salida de la venta)
//+------------------------------------------------------------------+
if (CloseSell1_1 > CloseSell1_2False) Orden = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| Señal de Fin(Salir de la Venta) |++
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continuar;
}
/Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continuar;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Señal Begin(Entry) |
//+------------------------------------------------------------------+
si (Compra1_1 < Compra1_2 && Falso) Orden = SEÑAL_BUY;
if (Sell1_1 < Sell1_2 && False) Orden = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Fin de la señal
//+------------------------------------------------------------------+
//Compra
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Comprobar el margen libre
if (AccountFreeMargin() < (1000 * Lots)) {
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; si no, StopLossLevel = 0.0;
si (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; si no, 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("Orden de COMPRA abierta : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error al abrir la orden de COMPRA : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
/Vender
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Comprobar el margen libre
if (AccountFreeMargin() < (1000 * Lots)) {
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; si no, StopLossLevel = 0.0;
si (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; si no, TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("Orden de venta abierta : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error al abrir una orden de VENTA : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+
//donde esta el error, porque no se, ayudenme. gracias
¿Qué error obtiene?