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, genio codificador y gente amable:D
Ahora estoy desarrollando un simple EA, pero no puedo entender las siguientes condiciones.
Si la posición anterior se cierra por Take Profit, hacer una nueva entrada que establece 20 pips por s / l y t / p en el próximo precio de apertura. (en el gráfico de 5M)
Traté de escribir uno.
if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))
//La última posición fue una orden instantánea OP_BUY o OP_SELL
{
if(OrderClosePrice() == OrderTakeProfit())
// Si el precio de cierre es el mismo que el precio
de toma de beneficios{
if(OrderType() == OP
_BUY) /Eltipo de orden es de compra
{
OrderSend
(OP_BUY,Lots,Ask,Slippage,
SLpips
,
Ask+20*Point
,
"",MAGIC
);// Los lotes y otras variables son definidas por mi mismo
}
else if(OrderType() == OP_SELL)
{
OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);
}
}
He probado muchas veces con el probador de estrategias, pero no puedo actuar como espero.
Alguien me puede ayudar con esta pregunta.
[lang=pl]Hola,
¿Puedes adjuntar el código completo del EA?
Saludos,
Grzesiek[/lang]
...
Trate de usar esto en comparación
tal vez eso ayuda
Hola, genio codificador y gente amable:D
Ahora estoy desarrollando un simple EA pero no puedo entender las condiciones de abajo.
Si la posición anterior se cierra por Take Profit, hacer una nueva entrada que establece 20 pips por s / l y t / p en el próximo precio de apertura. (en el gráfico de 5M)
Traté de escribir uno.
if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))
//La última posición fue una orden instantánea OP_BUY o OP_SELL
{
if(OrderClosePrice() == OrderTakeProfit())
// Si el precio de cierre es el mismo que el precio
de toma de beneficios{
if(OrderType() == OP
_BUY) /Eltipo de orden es de compra
{
OrderSend
(OP_BUY,Lots,Ask,Slippage,
SLpips
,
Ask+20*Point
,
"",MAGIC
);// Los lotes y otras variables son definidas por mi mismo
}
else if(OrderType() == OP_SELL)
{
OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);
}
}
He probado muchas veces con el probador de estrategias, pero no puedo actuar como espero.
Alguien me puede ayudar con esta pregunta.
Gracias chicos.
Intenté insertar NormarizeDouble pero no funcionó..
¿Podríais enseñarme por qué no funciona?
---------------------------------------------------
#include
#define MAGIC 20120101
#define COMENTARIO "Riding9"
extern double Lotes = 0.1
extern int Deslizamiento = 3;
extern int SLpips = 20
extern int TPpips = 50;
extern int StartTime = 1;
extern int FinishTime = 23
extern int MAPeriod = 48;
int SeñalDeEntrada(int magia)
{
double pos = MyCurrentOrders(MY_OPENPOS, magic);
double Ma9 = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
int ret = 0;
if((pos <= 0) && (Close[3] Open[2] && Open[2] >= Ma9) || (Open[2] Ma9)) && (Close[1] > Open[1] && Open[1] > Ma9)) ret = 1;
else if((pos <= 0) && (Open[3] Ma9) && (Close[2] Ma9) && (Close[1] > Open[1] && Close[1] > Ma9)) ret = 1;
if((pos >= 0) && (Close[3] >= Ma9) && ((Close[2] < Open[2] && Open[2] Ma9 && Close[2] < Ma9)) && (Close[1] < Open[1] && Open[1] < Ma9)) ret = -1;//
else if((pos >= 0) && (Open[3] > Ma9 && Close[3] Open[2] && Open[2] < Ma9) && (Close[1] < Open[1] && Close[1] < Ma9)) ret = -1;
return(ret);
}
bool MiOrdenEnviarSL(int type, double lots, double price, int slippage, int slpips, int tppips, string comment, int magic)
{
int mult=1;
if(Dígitos == 3 | Dígitos == 5) mult=10;
slippage *= mult;
if(type==OP_SELL || type==OP_SELLLIMIT | type==OP_SELLSTOP) mult *= -1;
double sl=0, tp=0;
if(slpips > 0) sl = price-slpips*Point*mult;
if(tppips > 0) tp = precio+tppips*Punto*mult;
return(MyOrderSend(type, lots, price, slippage, sl, tp, comment, magic));
}
int inicio()
{
if(Hour() >= StartTime && Hour() < FinishTime)
{
int sig_entry = SeñalDeEntrada(MAGIC);
if(sig_entry > 0)
{
MyOrderClose(Slippage, MAGIC);
MyOrderSendSL(OP_BUY, Lots, Ask, Slippage, SLpips,TPpips, COMMENT, MAGIC);
}
if(sig_entry < 0)
{
MyOrderClose(Slippage, MAGIC);
MyOrderSendSL(OP_SELL, Lots, Bid, Slippage, SLpips,TPpips, COMMENT, MAGIC);
}
if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))
{
if (NormalizeDouble(OrderClosePrice(),Digits) == NormalizeDouble(OrderTakeProfit(),Digits))
{
if(OrderType() == OP_BUY)
{
OrderSend(OP_BUY,Lots,Ask,Slippage,SLpips,Ask+20*Point,"",MAGIC);
}
else if(OrderType() == OP_SELL)
{
OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);
}
}
}
return(0);
}
return(0);
}
------------------------------------------------------
Por favor, enséñame mi error si lo descubres.
Saludos.
...
nontan,
Esta línea No selecciona la última orden cerrada, sino la primera (después del saldo inicial) de la cola de órdenes cerradas. Por lo tanto, siempre está comprobando una orden fija en lugar de comprobar cuál fue la última orden y luego acomodarse a ella. Si desea comprobar la última orden cerrada (la última en la cola de órdenes cerradas, pero tenga en cuenta que metatrader no garantiza que sea la última cuando se ordena por fecha-hora de cierre) debe utilizar esta forma de comprobaciónGracias, mladen
No he utilizado todavía la función OrderHistoryTotal, que es la adecuada para este código.
Por fin, tengo un código de deseo después de modified.As resultado EA trabaja para hacer la nueva entrada después de conseguir TakeProfit.
Gracias por su empresa y todo.
Necesito su ayuda maestros codificadores
hola, por favor necesito que alguien me ayude a codificar mi estrategia
hola, por favor necesito que alguien me ayude a codificar mi estrategia
[lang=pl]Sólo dame un detalle
Saludos[/lang]
He mandado un pm
[lang=pl]Sólo dame un detalle Saludos[/lang]
gracias maestro te envié un pm.. es un poco complicado
Código para la actualización automática
Estoy usando un indicador que necesita refrescarse constantemente. Estoy usando un gráfico de 15 minutos por lo que no necesita refrescarse cada tick, aunque eso estaría bien si no hay un gran consumo de energía. Al menos debería tener una opción para el intervalo de tiempo entre cada actualización. Ahora mismo actualizo manualmente cada minuto más o menos usando la pestaña desplegable 'Charts' y seleccionando 'Refresh'.
¿Existe algún código o forma de refrescar el indi y/o el gráfico automáticamente, ya sea a través de un código adicional en el indi o en un EA?
Gracias, el bee
[langtitle=fr]Indicador original Parabolic Sar de Wilder[/langtitle]
[lang=fr]Estoy buscando el ORIGINAL parabólica SAR, quiproquo por Wilder. He hecho el código de este indicador para la plataforma PRT, pero no sé la codificación en MT4.
Si alguien tiene conocimientos de codificación en MT4, puedo dar el código por mensaje privado, para adaptar esto en la codificación de MT4.
Gracias