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
Necesito ayuda
................
Hola,
¿Puede usted por favor dar el código para la barra anterior.
Esto se puede utilizar en el EA para limitar la colocación de las órdenes cuando la barra anterior es más de cierta altura.
Saludos,
SIDDESHSiddesh y otros que puedan ayudar:
El código para la barra anterior es el siguiente:
//para comprar
double indicatorpast = icustom(....................,1);
double indicatornow = icustom(...................., 0);
if (close[1]indicatornow) OpenBUY();
si (close[1]>indicadorpasado && close[0]<indicadornuevo) OpenSELL();
pero con este satatement, el experto abre posiciones no sólo cuando el precio cruza el indicador, sino que también abre posiciones por encima del indicador. Quiero que el experto abra posiciones SOLO cuando el precio cruce el indicador, así que he probado esto:
//para comprar
double indicatorpast = icustom(....................,1);
double indicatornow = icustom(....................,0);
if (close[1]<indicatorpast && close[0]==indicatornow) OpenBUY();
if (close[1]>indicatorpast && close[0]==indicatornow) OpenSELL();
Pero esta declaración no está realizando.
¿Sabe usted lo que está sucediendo? Porque creo que no hay errores en la declaración.
La pregunta es ¿por qué no se abre en el punto exacto del cruce cuando close[0]==Indicatornow? Si la función fuera con ==, impediríamos la apertura de órdenes por encima del punto de cruce entre el indicador y el cierre de la barra actual pero no está funcionando con este tipo de relación entre las variables.
Gente que puede ayudar:
El código de la barra anterior está abajo:
//para comprar
double indicatorpast = icustom(....................,1);
double indicatornow = icustom(...................., 0);
if (close[1]indicatornow) OpenBUY();
si (close[1]>indicadorpasado && close[0]<indicadornuevo) OpenSELL();
pero con este satatement, el experto abre posiciones no sólo cuando el precio cruza el indicador, sino que también abre posiciones por encima del indicador. Quiero que el experto abra posiciones SOLO cuando el precio cruce el indicador, así que he probado esto:
//para comprar
double indicatorpast = icustom(....................,1);
double indicatornow = icustom(....................,0);
if (close[1]<indicatorpast && close[0]==indicatornow) OpenBUY();
if (close[1]>indicatorpast && close[0]==indicatornow) OpenSELL();
Pero esta declaración no está realizando.
¿Sabe usted lo que está sucediendo? Porque creo que no hay errores en la declaración.
La pregunta es ¿por qué no se abre en el punto exacto del cruce cuando close[0]==Indicatornow? Si la función fuera con ==, impediríamos la apertura de órdenes por encima del punto de cruce entre el indicador y el cierre de la barra actual pero no está funcionando con este tipo de relación entre las variables.
¿Habéis experimentado el mismo problema? ¿Alguien sabe cómo resolverlo?
Gracias, de nuevo.
Gente que puede ayudar:
El código de la barra anterior es el siguiente
//para comprar
double indicatorpast = icustom(....................,1);
double indicatornow = icustom(...................., 0);
if (close[1]indicatornow) OpenBUY();
si (close[1]>indicadorpasado && close[0]<indicadornuevo) OpenSELL();
pero con este satatement, el experto abre posiciones no sólo cuando el precio cruza el indicador, sino que también abre posiciones por encima del indicador. Quiero que el experto abra posiciones SOLO cuando el precio cruce el indicador, así que he probado esto:
//para comprar
double indicatorpast = icustom(....................,1);
double indicatornow = icustom(....................,0);
if (close[1]<indicatorpast && close[0]==indicatornow) OpenBUY();
if (close[1]>indicatorpast && close[0]==indicatornow) OpenSELL();
Pero esta declaración no está realizando.
¿Sabe usted lo que está sucediendo? Porque creo que no hay errores en la declaración.
La pregunta es ¿por qué no se abre en el punto exacto del cruce cuando close[0]==Indicatornow? Si la función fuera con ==, impediríamos la apertura de órdenes por encima del punto de cruce entre el indicador y el cierre de la barra actual pero no está funcionando con este tipo de relación entre las variables.
¿Habéis experimentado el mismo problema? ¿Alguien sabe cómo resolverlo?
Gracias, de nuevo.Porque está buscando una coincidencia exacta entre un valor de punto flot ante de 8 dígitos devuelto y el precio - casi nunca serán iguales con resoluciones como esa. Sólo hay que buscar una condición mayor que o menor que.
software de swicthing
hola chicos, necesitaría convertir este indicador o el sistema relativo al comercio en lenguaje mql porque este funciona en metatrader 4. ¿Si cambio de broker y de software, alguien puede' ayudarme?
{Cálculo de la Media Móvil de Regresión Expandida}
{BEGINNING}
{"-HShift" - BARRAS ADELANTADAS}
DataBars:= Ref(Precio,- HShift);
e1:= Mov(DataBars,PeriodMA,TypeMA);
e2:= Mov(e1,PeriodMA,TypeMA);
e3:= Mov(e2,PeriodMA,TypeMA);
e4:= Mov(e3,PeriodMA,TypeMA);
e5:= Mov(e4,PeriodMA,TypeMA);
e6:= Mov(e5,PeriodMA,TypeMA);
c1:= -b*b*b;
c2:= 3*b*b+3*b*b*b;
c3:= -6*b*b-3*b-3*b*b*b;
c4:= 1+3*b+b*b*b+3*b*b;
MV:= c1*e6+c2*e5+c3*e4+c4*e3;
{Cálculo del tiempo de vida MV
para eliminar la distorsión de los valores iniciales}
{Media móvil T3}
e1:= Mov(Pr,PeriodoMA1,TipoMA1);
e2:= Mov(e1,PeriodMA1,TypeMA1);
e3:= Mov(e2,PeriodMA1,TypeMA1);
e4:= Mov(e3,PeriodMA1,TypeMA1);
e5:= Mov(e4,PeriodMA1,TypeMA1);
e6:= Mov(e5,PeriodMA1,TypeMA1);
c1:= -b1*b1*b1;
c2:= 3*b1*b1+3*b1*b1*b1;
c3:= -6*b1*b1-3*b1-3*b1*b1*b1;
c4:= 1+3*b1+b1*b1*b1+3*b1*b1;
MA1:= c1*e6+c2*e5+c3*e4+c4*e3;
{Tendencia alcista y bajista}
Tendencia alcista:=Mv>=MA1;
Tendencia a la baja:=MA1>=Mv;
{Señal larga y corta}
Largo:= cruce(Mv,MA1) y Mv>=MA1;
Corto:= cross(MA1,Mv) y MA1>=Mv;
{AbrirCompra y CerrarCompra}
OpenBuy:= cross(Mv,MA1) y Mv>=MA1;
CloseBuy:= cross(MA1,Mv) y MA1>=Mv;
{AbrirVender y CerrarVender}
OpenSell:= cross(MA1,Mv) y MA1>=Mv;
CloseSell:= cross(Mv,MA1) y Mv>=MA1;
hola chicos, necesitaría convertir este indicador o el sistema de trading relative en lenguaje mql porque este funciona en metatrader 4. ¿Estoy cambiando de broker y de software, es alguien capaz' de ayudarme?
{Media móvil T3}
e1:= Mov(Pr,PeriodMA1,TypeMA1);
e2:= Mov(e1,PeriodMA1,TypeMA1);
e3:= Mov(e2,PeriodMA1,TypeMA1);
e4:= Mov(e3,PeriodMA1,TypeMA1);
e5:= Mov(e4,PeriodMA1,TypeMA1);
e6:= Mov(e5,PeriodMA1,TypeMA1);
c1:= -b1*b1*b1;
c2:= 3*b1*b1+3*b1*b1*b1;
c3:= -6*b1*b1-3*b1-3*b1*b1*b1;
c4:= 1+3*b1+b1*b1*b1+3*b1*b1;
MA1:= c1*e6+c2*e5+c3*e4+c4*e3;
Todos estos códigos son similares, podrías empezar por mirar el código T3
Global, pon esto antes de init()
In the order placement and/or order close stuff, wrap it in this:
{
if blah blah blah, gimme pips // not actual functions but you get the idea
if blah blah blah, close orders // um
}Common function outside main loop:
[CODE]//--- returns true if current bar just formed
bool NewBar()
{
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}Gracias nitty1 por la ayuda. Lo probaré.
También gracias a waltini y devil2000. Ahora debería poder solucionarlo.
Código de cuenta para correr en Demo libremente
Hola:
¿Puede alguien decirme qué código se podría insertar para permitir que un EA que tiene el código de seguridad de la cuenta en él también se ejecute libremente en una cuenta de demostración para que los usuarios puedan probarlo antes de ir en vivo?
¿Es esto posible?
Gracias
Hola:
¿Puede alguien decirme qué código se podría insertar para permitir que un EA que tiene el código de seguridad de la cuenta en él también se ejecute libremente en una cuenta de demostración para que los usuarios puedan probarlo antes de ir en vivo?
¿Es esto posible?
GraciasDesde el metaeditor:
Devuelve TRUE si el experto se ejecuta en una cuenta demo, de lo contrario devuelve FALSE.
Codificación de la "condición de tendencia" con StepMA
Condición de compra:
StepMA (con modo de color: 2) es "largo"
El estocástico cruza 20 de abajo hacia arriba
Condición de venta:
StepMA (con modo de color: 2) es "corto".
El estocástico cruza 80 de arriba a abajo
double StochCurrent = iStochastic(NULL, 0, 21, 3, 8, MODE_SMA, 0, MODE_MAIN, Bar + 0);
double StochPrevious = iStochastic(NULL, 0, 21, 3, 8, MODE_SMA, 0, MODE_MAIN, Bar + 1);
double TrendLong = iCustom(NULL, 0, "stepma_v7ea", 1, 1.0, 0, 0, 0.0, false, 2, 0, 1, Bar + 0);
double TrendShort = iCustom(NULL, 0, "stepma_v7ea", 1, 1.0, 0, 0, 0.0, false, 2, 0, 2, Bar + 0);
Comprar si:
TrendLong && StochCurrent > 20 && StochPrevious < 20
Vender si:
TrendShort && StochCurrent 80
Puede alguien ayudarme con el código de la "condición de tendencia" en el ejemplo anterior, no funciona. He intentado llamar al buffer 1 y al buffer 2 para el modo largo y corto pero no entiendo el código de este indicador. ¡Gracias de antemano!