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
stevenpun Dices que la compra tiene 0.1 lote + 0.2 lote y la venta debe ser 0.4 lotes. ¿Te importaría aclararlo?
Hola mladen , lo siento por la respuesta tardía .
Porque he estado enfermo durante unos días.
He hecho una imagen
Por ejemplo, cuando la compra tiene 2 ordenes abiertas (0.1 Lote + 0.2 Lote), pero de repente el tren ha cambiado a venta.
El ea abrirá una orden de venta por 0.1 lote, pero yo quiero que se abra por 0.4 lote.
¿Es posible modificarlo?
Hola de nuevo,
Intenté usar lo anterior con un comentario pero solo mostraba el Max. ¿Puede ayudarme con dos funciones? Una que muestre la línea de precio inmediata por encima de la oferta y la segunda la línea por debajo de la oferta. Gracias.
Aquí está el código.
//+------------------------------------------------------------------+
//| SimpleGrid.mq4+
//+------------------------------------------------------------------+
#include
#include
#property strict
//variables exportadas
extern string GridStartingPrice = " Precio inicial para colocar las líneas ";
extern double GSP = 0.0
extern int GR = 5;
extern double GridStep = 5;
extern color CGL = Oro
extern color BGL = Verde
extern color SGL = Rojo;
extern bool ClearAllObjects = False;
// variables locales
double PipValue=1; // esta variable está aquí para soportar corredores de 5 dígitos
bool Terminated = false
string LF = "\n"; // utilícelo en bloques personalizados o de utilidad donde necesite saltos de línea
int NDigits = 4; // se utiliza principalmente para NormalizeDouble en bloques de tipo Flex
int ObjCount = 0; // cuenta todos los objetos creados en el gráfico, permite la creación de objetos con nombres únicos
int current = 0;
int init()
{
NDigits = Dígitos;
if (false) ObjectsDeleteAll(); // borrar el gráfico
Comment(""); // borrar el gráfico
return(0);
}
// Inicio del experto
int inicio()
{
si (Bares < 10)
{
Comentario("No hay suficientes barras");
return (0);
}
if (Terminado == true)
{
Comment("EA Terminado");
return (0);
}
OnEveryTick7();
return (0);
}
void OnEveryTick7()
{
PipValue = 1;
if (NDigits == 3 | NDigits == 5) PipValue = 10;
CentreGridLine();
}
void CentreGridLine()
{ si (ObjectFind("CGL") == (-1) )
{
{
string objName = "CGL" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0],GSP);
ObjectSet(objName, OBJPROP_PRICE1, GSP);
ObjectSet(objName, OBJPROP_COLOR,CGL);
}
TradeLine();
UprBnd();
LwrBnd();
}
}
void TradeLine()
{
int i
double GridStep1= (GridStep*2);
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double SGSP= (GSP-((GridStep/2)*PipValue*Point))
double BBGSP= (BGSP-((GridStep*(GR))*PipValue*Point)) ;
doble SSGSP= (SGSP+((GridStep*(GR))*ValorPip*Punto));
{
for(i=0; i<GR;i++)
{
SGL("Vender "+i,BBGSP+GridStep1*i*PipValue*Point);
}
}
{
for(i=0; i<GR;i++)
{
BGL("Comprar "+i,SSGSP-GridStep1*i*PipValue*Point);
}
}
}
void BGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, price);
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(objName, OBJPROP_WIDTH, 1);
ObjectSet(objName, OBJPROP_COLOR, BGL);
}
void SGL(string objName, double price)
{
ObjectCreate(objName, OBJ_HLINE, 0, 0, price);
ObjectSet(objName, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(objName, OBJPROP_WIDTH, 1);
ObjectSet(objName, OBJPROP_COLOR, SGL);
}
void UprBnd()
{ if (ObjectFind("UPRBND") == (-1) )
{
double BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;
double price= (BGSP+((GridStep*(GR))*PipValue*Point)) ;
string objName = "UPRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price );
ObjectSet(objName, OBJPROP_PRICE1,price);
ObjectSet(objName, OBJPROP_COLOR, DodgerBlue);
ObjectSet(objName, OBJPROP_WIDTH,3);
}
}
void LwrBnd()
{ if (ObjectFind("LWRBND") == (-1) )
{
double SGSP= (GSP-((GridStep/2)*PipValue*Point));
double price= (SGSP-((GridStep*(GR))*PipValue*Point));
string objName = "LWRBND" ;
ObjectCreate(objName, OBJ_HLINE, 0, Time[0], price );
ObjectSet(objName, OBJPROP_PRICE1,price);
ObjectSet(objName, OBJPROP_COLOR, Tomate);
ObjectSet(objName, OBJPROP_WIDTH, 3);
}
}
int deinit()
{
if (ClearAllObjects) ObjectsDeleteAll();
return (0);
}
//+------------------------------------------------------------------+Hermes
¿Puedes adjuntar el archivo mq4?
Hermes ¿Puedes adjuntar el archivo mq4?
Aquí está. Gracias
Hola,
necesito ayuda con un Ea que he hecho, está relacionado con 2 medias móviles y 2 marcos temporales diferentes para filtrar la tendencia, me gustaría añadir un indicador RSI para filtrar las operaciones, configurar por ejemplo RSI periodo 8 nivel 50, si es mayor que el nivel 50 del RSI al cruzar abrimos solo orden de mercado de venta, si es menor que el nivel 50 del RSI al cruzar abrimos solo orden de mercado de compra. Adjunto el Ea, al principio estaba realted a keltnerchannels, pero ahora quiero sólo para ser utilizado como Ma1 y Ma2.
¿Puede alguien ayudarme con estos cambios?
Gracias
Aquí está. Gracias
Hermes
Pruebe esto: simpleg_1.mq4
Hola,
Necesito ayuda con un Ea que he hecho, está relacionado con 2 medias móviles y 2 plazos diferentes para filtrar la tendencia, me gustaría añadir un indicador RSI para filtrar las operaciones, configurar por ejemplo RSI periodo 8 nivel 50, si es mayor que el nivel 50 del RSI al cruzar abrimos solo orden de mercado de venta, si es menor que el nivel 50 del RSI al cruzar abrimos solo orden de mercado de compra. Adjunto el Ea, al principio estaba realted a keltnerchannels, pero ahora quiero sólo para ser utilizado como Ma1 y Ma2.
¿Puede alguien ayudarme con estos cambios?
Graciasdaniel1983
Es casi seguro que nunca obtendrás cruces de mas y rsis al mismo tiempo (es decir - casi nunca obtendrás señales). Pruébalo: haz un indicador sencillo que haga lo que describes y verás qué raro es que se den esas condiciones al mismo tiempo
daniel1983 Es casi seguro que nunca tendrás cruces de mas y rsis al mismo tiempo (es decir - casi nunca tendrás señales). Pruébalo: haz un indicador sencillo que haga lo que describes y verás que rara vez se dan esas condiciones al mismo tiempo
Hola Mladen,
Quiero decir
- en cualquier nivel entre 0 y 50 sólo vender
- en cualquier nivel entre 50 y 100 sólo comprar,
no en este mismo punto de intersección, el cruce puede ser en cualquier nivel (43, 41, 18, 25) para órdenes de mercado de compra, confirmando con la tendencia del marco de tiempo superior. He probado esto y cerca del 80% de las órdenes abiertas parece que con este filtro no se abrirán en sentido contrario.
Ahora mismo el Ea abre orden de compra cuando el cruce está iniciando una tendencia bajista, con este filtro en el 80% de los casos filtrará este cruce sin entrar la orden en este punto. donde esos Ma cruzan.
En este Ea he introducido un timeframe superior, pero he hecho pruebas con mejores resultados utilizando un timeframe inferior para filtrar la tendencia.
Adjunto una imagen de un ejemplo de test configurado:
Para el EURUSD
En este caso estoy usando EMA 2 y EMA 67, y RSI (8) timeframe 1min y Hitimeframe 5min, en este caso tienes una orden de mercado de compra que no es rentable, esta orden de mercado de compra ocurre en el cruce de EMa's pero con RSI en un nivel inferior a 50.
Luego tiene una orden de mercado de venta que se abre en los cruces pero con el RSI por debajo de 50, y esta orden es la orden de mercado correcta que quiero filtrar de todas las señales.
¿Es posible hacer esto?
Gracias
Daniel
Hermes Pruebe esto : simpleg_1.mq4
Hola Mladen,
Por fin funciona usando esto. Gracias
void LoopBS()
{
double max =(ObjectGet("UPRBND",OBJPROP_PRICE1));
double min =(ObjectGet("LWRBND",OBJPROP_PRICE1));
for (int i =ObjectsTotal()-1; i>=0; i--)
{
string name = ObjectName(i);
if (StringSubstr(name,0,3)=="Buy")
{
double BS=ObjectGet(nombre,OBJPROP_PRICE1);
if ((Ask<BS) && (BSmin))
{
max = ObjectGet(nombre,OBJPROP_PRICE1);
{
Comment(DoubleToStr(BS,Digits)," ");
}
}
}
}
}
Señales inexactas
Señales inexactas
Queridos, artesanos. Podrían señalar mejor para hacer. M1, M5, M15
¡Señales inexactas Estimados, artesanos! Podrían señalar mejor para hacer. M1, M5, M15
Simplemente muestra si los últimos 3 cierres son mayores o menores que las últimas 3 aperturas. Nada que mejorar en eso