¡Phoenix está aquí! - página 13

 
AZBOfin:
wow, se pone más confuso mi el minuto

propongo lo siguiente

1) todos los cálculos realizados se basan en la hora del servidor y no en la hora local

2) todos los ajustes de hora en el EA deben hacerse en GMT

3) introducción de una nueva variable llamada ServerOffset

esta variable refleja un desplazamiento de la zona horaria GMT a la zona horaria del servidor

mi hora local no es relevante. hoy estoy aquí en GMT-7, mañana podría estar en GMT-4, la próxima semana en GMT+2

pero mi servidor de comercio está siempre en el mismo lugar. y esto debería ser la base de todos los cálculos.

solo mis 2cents - hendrick eres el hombre, ¿que piensas?

AZBOfin

Yo estaba pensando en algo a lo largo de esas mismas líneas ... mantenerlo simple para el cambio de tiempo desafiado como yo ... Apoyo la moción de una variable ServerOffset ... Me gustaría saber cómo hacerlo yo mismo. Lo único mejor sería que el código detectara lo que necesita y se ajustara automáticamente para que el usuario no tenga que estropearlo.

 
Archivos adjuntos:
 
Hendrick:
Necesito ayuda. Las señales de COMPRA y VENTA de Phoenix son generadas por el siguiente trozo de código:

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0);

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

.

Hendrick, parece que todavía te sigo en estos foros.

Firebird v63g tenía un código de tendencia, pero no se utilizó. Yo lo uso en un Firebird modiifed y parece que funciona en la detención de las operaciones durante las tendencias.

extern int DVLimit = 10; // incluido por Renato

int TrendUp=0, Trenddown=0;

double iFXAnalyser(int FXA_Period, int mode, int shift)// Función local hecha por MrPip

if ( (iFXAnalyser(0,MODE_DIV,0)>DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)>0 )) Trendup=1;

if ( (iFXAnalyser(0,MODE_DIV,0)<-DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)<0 )) TrendDown=1;

Entonces pur "&& TrendUp !=1" tras DealTime==1 en el trigger SELL. Y "&& TrendDown !=1" después de DealTime==1 en el trigger de COMPRA.

Otro método es poner un factor de control para RV! para regular la actividad comercial.

extern double RVI_Factor =50; // Factor 0-200 añadido al valor de RVI para regular la actividad comercial

Luego en los disparadores de VENTA y COMPRA cambiar los códigos de RVI a "RVI(0+(RVI_Factor*Punto))" respectivamente.

Otro método es poner una segunda envolvente iMA más grande para estrechar la zona de negociación activa para fomentar la negociación durante los periodos sin tendencia.

extern double PercentLimit = 0.15; // Segunda envolvente mayor (banda) que detiene la negociación.

int Safe2=0;

if ( myMA*(1+(PercentLimit/100))=Ask) Safe2=1;

Poner "&& Safe2==1" en los triggers de VENTA y COMPRA. Puede adjuntar un segundo indicador de tipo Firebird ajustado a PercentLimit para ver la zona de negociación activa.

Yo uso un Firebird con los tres filtros y tiene un promedio de ~50% menos de operaciones con ~90% de tasa de ganancia. El problema que tengo es el efecto que tienen las noticias en el mercado. He reportado en este hilo, que los últimos 4 viernes tuvieron un gran efecto negativo debido al arrastre de las operaciones abiertas del jueves. Estoy probando a eliminar días y/o horas de negociación para ver si puedo gestionar mejor las pérdidas del grupo histórico.

Hendrick, esto sería un desarrollo adicional de su gráfico de resultados de tiempo de negociación y sería mucho trabajo. Pero, me gustaría tener un EA que es 6/24 tiempo de negociación programable y puede estudiar su historia, determinar los malos tiempos de negociación y dejar de operar durante estos tiempos, mientras que el mantenimiento de un historial de comercio fantasma para estos tiempos. Cuando las operaciones fantasma históricas vuelvan a ser rentables, estos tiempos se restablecerán como buenos tiempos de negociación. Es un deseo, pero voy a tratar de trabajar en esto o ver si un codificador puede hacer que esto funcione. En este momento, yo uso yor tipo de gráfico y tratar de hacer esto manualmente.

Demasiado teclear. Bueno, esto es lo que pasa cuando bebes vino mientras estás en un hilo. Si todo esto no tiene sentido, es culpa del vino.

Wackena

 
Hendrick:
Necesito ayuda. Las señales de COMPRA y VENTA de Phoenix son generadas por el siguiente trozo de código:

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0);

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

Alguien en el hilo de Firebird sugirió el siguiente cambio

en lugar del tuyo

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

Lo han cambiado por:

RVI=iMACD(NULL,0,24,52,9,PRECIO_CIERRE,MODO_MAIN,0)-iMACD(NULL,0,24,52,9,PRECIO_CIERRE,MODO_MAIN,1);

Afirmaron que daba menos señales falsas. ¿Ayuda eso?

 

Señal adicional

Hola Hendrick,

cuando me preparo para operar, siempre miro a un TF más alto para ver la tendencia que se está formando.

¿Quizás añadir una señal adicional a Phoenix en el mismo TF de 15 minutos sea demasiado limitado?

Por favor, eche un vistazo al indicador Multi-Time-Frame XO.

Puedes tenerlo configurado en cualquier TF que quieras, pero para que Phoenix trabaje en el M15 yo

para trabajar en el M15, yo lo pondría en H4 o incluso en D1.

Tal vez es más flexible tener su configuración de TF en el panel de entradas de la EA por lo que puede ser optimizado en el camino.

Ver imagen adjunta con el indicador cargado dos veces; una para M15 y la otra para H4.

Saludos,

Herbert

PS, cambié el iRVI de Firebird a iMACD como recordó Holyguy7 hoy, pero aunque aumentó la velocidad de Firebird en el backtesting como efecto secundario , tenía la impresión de que no eliminaba las señales falsas.

Archivos adjuntos:
 
holyguy7:
Alguien en el hilo de Firebird sugirió el siguiente cambio:

en lugar del suyo:

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1);

Lo han cambiado por:

RVI=iMACD(NULL,0,24,52,9,PRECIO_CIERRE,MODO_MAIN,0)-iMACD(NULL,0,24,52,9,PRECIO_CIERRE,MODO_MAIN,1);

Afirmaron que daba menos señales falsas. ¿Ayuda eso?

Hola Holyguy,

Para la versión 2 de Phoenix ahora estoy usando una SMA 120 y una SMA 12 en un gráfico de 15M. El objetivo principal es evitar que Phoenix coloque operaciones en contra de la tendencia. Hasta ahora parece funcionar bien.

 
HerbertH:
Hola Hendrick,

Cuando me preparo para operar, siempre miro a un TF más alto para ver la tendencia que se está formando.

¿Quizás añadir una señal adicional a Phoenix en el mismo TF de 15 minutos sea demasiado limitado?

Por favor, eche un vistazo al indicador Multi-Time-Frame XO.

Puedes tenerlo configurado en cualquier TF que quieras, pero para que Phoenix trabaje en el M15 yo

para trabajar en el M15, yo lo pondría en H4 o incluso en D1.

Tal vez es más flexible tener su configuración de TF en el panel de entradas de la EA por lo que puede ser optimizado en el camino.

Ver imagen adjunta con el indicador cargado dos veces; una para M15 y otra para H4.

Saludos,

Herbert

PD, yo cambié el iRVI de Firebird por el iMACD como recordaba hoy Holyguy7, pero aunque aumentó la velocidad de Firebird en el backtesting como efecto secundario , tenía la impresión de que no eliminaba las señales falsas.

Hola Herberth,

Ver mi respuesta anterior a Holyguy.

 

Phoenix v2

Phoenix versión 2.

Cambios:

eliminado la divergencia (creo que no es útil)

eliminado Surf-orders (el rendimiento no era bueno)

reemplazado RVI por este trozo de código:

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

if(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

if(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

El propósito de este código es evitar que Phoenix esté colocando operaciones en contra de la tendencia.

Para probarlo:

Utilice la configuración del archivo. TF=15. Todos los pares disponibles.

Archivos adjuntos:
 
Hendrick:
Phoenix versión 2.

Cambios:

eliminado la divergencia (creo que no es útil)

eliminado Surf-orders (el rendimiento no era bueno)

reemplazado RVI por este trozo de código:

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

if(AdMA > 1)

{

AdSELLSignal = true;

SortOrder = "SELLSignal";

}

if(AdMA < -1)

{

AdBUYSignal = true;

SortOrder = "BUYSignal";

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true;

SortOrder = "BUYSELLSignal";

}

El propósito de este código es evitar que Phoenix esté colocando operaciones en contra de la tendencia.

Para probarlo:

Utilice los ajustes del archivo. TF=15. Todos los pares disponibles.

Gracias, poner en los gráficos.

¿has hecho algún backtest?

 
Yauhen:
Gracias, poner en los gráficos. son u hacer cualquier backtest?

Hola,

No hay backtest, sólo pruebas de futuro.

Razón de la queja: