Librerías: BestInterval - página 22

 
fxsaber:

Funcionará correctamente si usted hace MT4Orders enclode antes de BestInterval.

La biblioteca se refiere únicamente a las operaciones de comercio y su historia. Además, puede trabajar en paralelo con SB y otros.

Asi que los indicadores no la afectan de ninguna manera.

Ya veo, gracias, lo probaré.
 
fxsaber:

BestInterval en la compensación sólo en un caso específico (hecho por mí mismo) toma el historial de operaciones correctamente.

¿Cuál es este caso, si no es un secreto? Tal vez pueda usar algo similar sin chamanismo.

 
traveller00:

¿Cuál es el caso, si no es un secreto? Yo podría ser capaz de utilizar algo similar sin ningún chamanismo.

Un TC cambiaformas.

 
fxsaber:

No puedo responder a eso. Aún no lo sé.

Decir que estoy contento es claramente quedarse corto..... BestInterval es impresionante ahora. Y los cambios son mínimos. Como siempre, un ejemplo.


Aquí tenemos un pase de 24 horas.


Aplicamos el clásico BestInterval.

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 10721.00 = 8018.00 + 2703.00 (33.71%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 13:00 - 08:00, CountHours = 18
00:00:00 - 08:03:48 : Profit = 3278.00 (30.58%), Total = 161 (79.50%), PF = 2.21, Mean = 20.36, DD = 518.00, RF = 6.33
13:07:59 - 23:59:59 : Profit = 7443.00 (69.42%), Total = 389 (74.55%), PF = 2.14, Mean = 19.13, DD = 417.00, RF = 17.85
SUMMARY: 00:00:00 - 23:59:59 : Profit = 10721.00 (100.00%), Total = 550 (76.00%), PF = 2.16, Mean = 19.49, DD = 536.00, RF = 20.00

Podemos ver que el beneficio ha aumentado en un tercio, y otros indicadores han mejorado.


Pero queríamos flexibilidad. Y aquí está.

Profit = 8018.00 = 8018.00 + 0.00 (0.00%) - Amount of Delete Intervals = 0 (2019.09.14 - 2019.12.04)
00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09
SUMMARY: 00:00:00 - 23:59:59 : Profit = 8018.00 (100.00%), Total = 739 (73.34%), PF = 1.44, Mean = 10.85, DD = 1317.00, RF = 6.09

Profit = 4868.00 = 8018.00 + -3150.00 (-39.29%) - Amount of Delete Intervals = 1 (2019.09.14 - 2019.12.04), 20:00 - 01:00, CountHours = 4
00:00:00 - 01:31:54 : Profit = 1067.00 (21.92%), Total = 32 (87.50%), PF = 4.63, Mean = 33.34, DD = 177.00, RF = 6.03
19:29:54 - 23:59:59 : Profit = 3801.00 (78.08%), Total = 118 (83.90%), PF = 5.53, Mean = 32.21, DD = 249.00, RF = 15.27
SUMMARY: 00:00:00 - 23:59:59 : Profit = 4868.00 (100.00%), Total = 150 (84.67%), PF = 5.29, Mean = 32.45, DD = 310.00, RF = 15.70


El beneficio no aumentó, ¡disminuyó! Pero mire los otros indicadores. En lugar de encontrar el intervalo con el mayor beneficio y probabilidad de ajuste, se encontró un intervalo mucho más estrecho, pero mucho más sabroso que el clásico.


La innovación se añade así

#define  BESTINTERVAL_SLIPPAGE // Crear un filtro artificial para calcular BestInterval.


La calidad de la investigación de patrones de mercado ha mejorado mucho. Implicaciones significativas para el trabajo con varios probadores.

[Eliminado]  
Así que 150 oficios es un ajuste mucho más probable, ¿no?
 
trader_number_one:
Así que 150 operaciones es un ajuste mucho más probable, ¿no?

Elnúmero de operaciones depende de la longitud del intervalo.

 

A veces el borrado de intervalos se fastidia. Concretamente

const double Beneficio = dDeals[i].Beneficio + SlipPerLot * dDeals[i].Lotes;

produce NaN porque dDeals[i].Lots es igual a NaN en i=0.

Parece que las patas crecen desde la función int Set( const DEAL &dDeals[] ) donde el campo Lots no se rellena cuando Amount=0. ¿O es más correcto decir que Lots no se rellena en void ToNull( void )?

Pero en cualquier caso, el bug es muy desagradable, ocurre raramente y no es fácil de depurar.

 
traveller00:

Pero en cualquier caso el fallo es muy desagradable, se manifiesta raramente y no es fácil de depurar.

Sí, me alegré de publicarlo sin comprobarlo bien. Lo comprobaré, gracias.

 
He corregido la función int Set( const DEAL &dDeals[] ) rellenando Lotes con cero. Si lo he corregido mal o se me ha pasado algo más, por favor, escríbeme de nuevo. Gracias.
 
traveller00:
He corregido la función int Set( const DEAL &dDeals[] ) rellenando Lots con cero. Si lo he corregido mal o se me ha pasado algo más, por favor, escríbeme de nuevo. Gracias.

Hasta ahora sólo he hecho esto

        const double Profit = dDeals[i].Profit ? dDeals[i].Profit + SlipPerLot * dDeals[i].Lots : 0;

El resto no es necesario corregirlo para Lots. Pero hay errores relacionados con otro (antiguo). Necesitan ser corregidos.