Ayuda a la codificación - página 178

 

Necesito ayuda para codificar EA - >10% de beneficio/mes

Hola a todos, tengo una estrategia muy sencilla que parece ser bastante segura y dar un buen rendimiento, pero es horriblemente pesada a mano. Por eso me gustaría que alguien me ayudara a codificarla, tanto para ahorrar el esfuerzo como para poder operar las 24 horas. La estrategia es realmente sencilla: colocar STOPS de compra y STOPS de venta 400 pips por encima y por debajo del precio actual. La distancia entre líneas debe poder elegirse externamente, así como el TP en pips y los Lots (a partir de 0,01). El SL es opcional y también externo. El sistema se deja trabajar hasta que se alcanza un objetivo de beneficio global (también externo). En ese momento, el programa vende todo, cancela todas las órdenes pendientes y empieza a trabajar de nuevo desde cero. Como he dicho, es muy sencillo. Pura matemática, sin rezagos (indicadores). Con esta estrategia he estado obteniendo alrededor de un 10% de beneficios al mes, dependiendo de las condiciones del mercado y de la gestión del dinero. A largo plazo es una apuesta muy segura, pero realmente cansada de ejecutar manualmente. Utilizo el EURUSD, pero si es posible sería un plus poder operar con varios pares al mismo tiempo, sólo para diversificar (aunque no es realmente necesario, teniendo en cuenta los resultados que he tenido hasta ahora).

 

hay alguien que me pueda ayudar, he hecho un código como este

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Tendencia;

if (ccia>ccib&&ccia<=-150) Trend=0;

si (ccia=150) Trend=1;

del código que quería Valor de la tendencia sólo cambiará cuando la condición. así que cuando las condiciones Valor de la tendencia = 0 sólo será cambiado por el segundo IF. aunque el valor de cci es entre -150 y 150.

pero por que siempre obtengo un valor de 0 (cero) al valor de Trend.

 
Q_Mouze:
hay alguien que me pueda ayudar, hice un código como este:

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Tendencia;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

por qué siempre me sale el valor 0 (cero) al valor de Trend.

Cámbialo por esto (para evitar tener el mismo valor cuando no se cumplen las condiciones) :

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

En estos momentos CADCHF está mostrando un valor diferente al predeterminado -1

 
mladen:
Cambiarlo a esto (para evitar tener el mismo valor cuando no se cumplen las condiciones) :
double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;
En un momento CADCHF está mostrando un valor diferente al predeterminado -1

Gracias mladen, pero

double CCIA = ICCI (Símbolo (), PERIOD_H1, 14, PRICE_CLOSE, 0);

double CCIB = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 1);

Tendencia int;

si (CCIA> CCIB CCIA && condición 1

si (CCIA = 150) Tendencia = 1; =====> condición 2

del código quiero que si la condición 1 valor de la tendencia se cambiará a 0, esta condición se mantendrá hasta que las 2 condiciones se producen que cambiará el valor de la tendencia de ser 1.

pero eso ocurre El valor de la tendencia siempre es 0 solo cambia cuando en la condición 2, cuando el valor del cci pasa o está por debajo de 100 el valor de la tendencia cambia de nuevo a 0.

 
Q_Mouze:
Gracias mladen, pero

double CCIA = ICCI (Símbolo (), PERIOD_H1, 14, PRICE_CLOSE, 0);

double CCIB = ICCI (Symbol (), PERIOD_H1, 14, PRICE_CLOSE, 1);

Tendencia int;

si (CCIA> CCIB CCIA && condición 1

si (CCIA = 150) Tendencia = 1; =====> condición 2

del código que quiero si la condición 1 valor de la tendencia se cambiará a 0, esta condición se mantendrá hasta que las 2 condiciones se producen que cambiará el valor de la tendencia de ser 1.

pero eso sucede El valor de la tendencia es siempre 0 solo cambia cuando en la condición 2, cuando el valor de cci pasó o está por debajo de 100 el valor de la tendencia cambió de nuevo a 0.

Q_Mouze

Para ello, una solución sería utilizar una variable estática para la tendencia en su lugar

Entonces el código sería el siguiente :

double ccia = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,0);

double ccib = iCCI(Symbol(),PERIOD_H1,14,PRICE_CLOSE,1);

static int Trend=-1;

if (ccia>ccib&&ccia<=-150) Trend=0;

if (ccia=150) Trend=1;

En este caso la asignación a -1 ocurriría sólo en la primera vez que se ejecuta el código. Después de eso, cuando entren nuevos ticks, el valor de Trend sería "heredado" de un tick anterior y eso es lo que se busca

_____________________

Si quieres hacer eso en valores históricos (como un indicador) entonces tendrías que declarar Trend como un buffer y entonces podrías hacer eso para valores pasados también

 

Todos los días buenos.

Ayuda por favor.

Como bien se verá señales del indicador DSS Bressert + ahtf_ (FILTRO)?

hacerlo:

//---------------------------

doble aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0);

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1);

if (aTrend[1] < aTrend[0]) // comprar

{

Ahora la línea vertical azul

}

if (aTrend[1] > aTrend[0]) // vender

{

Ahora la línea vertical roja

}

//---------------------------------

gran dificultad para tomar la señal. Por favor, ayuda.

Lo siento por mi Inglés ..

Gracias.

Imagen y adjuntar el indicador.

Archivos adjuntos:
 
shtopr:
Todos los días buenos.

Ayuda por favor.

Así se verá señales del indicador DSS Bressert + ahtf_ (FILTRO)?

haciendo así:

//---------------------------

doble aTrend[2];

aTrend[0] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 0);

aTrend[1] =iCustom(NULL, 0, "DSS Bressert + ahtf_(FILTER)", 6, 1);

if (aTrend[1] < aTrend[0]) // comprar

{

Ahora la línea vertical azul

}

if (aTrend[1] > aTrend[0]) // vender

{

Ahora la línea vertical roja

}

//---------------------------------

gran dificultad para tomar la señal. Por favor, ayuda.

Lo siento por mi Inglés ..

Gracias.

Fotografíe y adjunte el indicador.

Para ver cuando las señales están encendidas desactiva la interpolación

También usa el buffer 6 para eso. Cuando es 1 es tendencia alcista, cuando es -1 es tendencia bajista y cuando la tendencia actual != la tendencia anterior hay un cambio de tendencia y hay una señal

 
mladen:
Para ver cuando las señales están encendidas desactiva la interpolación También, usa el buffer 6 para eso. Cuando es 1 es tendencia al alza, cuando es -1 es tendencia a la baja y cuando la tendencia actual != tendencia anterior hay un cambio de tendencia y hay una señal

No he conseguido ((.

Por favor.

Si esto es posible ..

Mostrar código.

Gracias.

P.D.

perdón por la traducción

 
shtopr:
No obtuve ((.

Por favor.

Si esto es posible ..

Mostrar código.

Gracias.

P.D.

perdón por la traducción

En tu foto estás mostrando un gráfico de 1 hora y el valor del indicador diario

En la llamada iCustom() estás usando el time frame actual. Si quieres usar el marco de tiempo diario debes especificarlo en la llamada iCustom (de lo contrario nunca será el mismo)

Además, está utilizando una llamada de barra abierta. Si planea usar una llamada de marco de tiempo múltiple desde el EA, entonces debe saber que usar una barra abierta de marco de tiempo múltiple en la prueba retrospectiva dará resultados inválidos (siempre "conocerá el futuro") así que no debe usar una llamada de barra abierta si planea usar un marco de tiempo múltiple

 

Hola mladen,

¿podrías ayudarme a convertir estos dos a la versión rsi por separado? Lo intento pero no sé cómo hacerlo, es decir, rsi de kairi, rsi de cci... muchas gracias por la ayuda.

Archivos adjuntos:
cci.mq4  4 kb
kairi.mq4  8 kb
Razón de la queja: