EA N7S_AO_772012 - página 22

 
capellini писал(а) >>

Me gustaría hacer una pregunta de seguimiento...

Hay pares en los que el EA no optimiza de ninguna manera, ni siquiera aparecen los primeros resultados. El USDCHF, por ejemplo.

¿Con qué puede estar relacionado?

Bueno, aquí vamos de nuevo.

Una vez más, por vigésimo sexta vez.
No hay instrumentos idénticos en términos de movimiento de precios, hay otros similares.
No trataremos de adivinar o conjurar sobre los gráficos dónde entrar y cuándo hacerlo.
Por eso, si no hay resultados, o son pobres, debemos cambiar los rangos y los periodos de optimización, y también se puede jugar con el SL y los niveles de arrastre. Para algunos símbolos disminuí el período hasta tres o incluso dos semanas, traté de aumentar el SL para los cruces del Yen. En general, trato de encontrar los mejores valores que proporcionen buenos resultados durante la optimización. Como resultado considero relativamente correctos los parámetros que dan 6-8 mil combinaciones rentables en 10 mil ejecuciones durante la optimización con genética. Entonces, de acuerdo con la ley de los grandes números, la probabilidad de beneficios es dos veces mayor que la probabilidad de pérdidas, lo que significa que la optimización es sólo una formalidad y que los beneficios superarán a las pérdidas al menos dos veces en caso de un número significativo de semanas. En realidad, más.
Por lo tanto, comparta cómo está haciendo las pruebas y cuáles son los resultados. Esto no es fácil en una semana.
Mi saldo de la semana es de +690 dólares y la equidad.... La equidad es un poco más de + $ 750, eh, fue cerca de $ 1000 esta tarde. Casi todos los puestos se han cerrado.

 

Sobre el error. Está aquí en la función startM1(). Debido a esto hubo una diferencia en las primeras operaciones en el probador y la demo.

//+------------------------------------------------------------------+
void startM1() {ticket = -1;RefreshRates();
if (total < HM_ALL) { BuSll (0,1,772012000); cmmnt();
if( !(DayOfWeek( ) == 1 && Hour( ) <2) && !(DayOfWeek( ) == 5 && Hour( ) >=18))
{si (Trd_Up_X && VSR() > 0 && bu<HM_Up_X&&Flq) {
if (MOS( 0, lotes, sl, tp, WindowExpertName(), mn)==1) {Flq=false;}} // sustituir por >=

if (Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y&&Flq) {
if (MOS( 1, lotes, sl, tp, WindowExpertName(), mn)==1) {Flq=false;}} // sustituir por >=
}}

//+------------------------------------------------------------------+

El error no es crítico, por ello no funcionó la prohibición de abrir un negocio más en una barra.

Lo corregiré en nuevas versiones, pero por ahora puedes hacerlo manualmente.

 

SHooter777ру: Советник понравился. После сегодняшнего слива демки оптимизацию делаю под 200$ (MiniForex). В принципе почти не отличается от 2000$. в оптимизационных сетах стоплоссы ставлю 50 с шагом 10, но все равно лучшие профиты со стоплоссами от 500 получаются. Уже в конечных сетах подбираю приемлемые в пределах 50-200 вручную. Влияет ли шаг и стоп в сетах на торговлю? (По наблюдениям не заметил). Еще вопрос: Можно ли оптимизировать под MicroForex (мин. лот 0,01)? Торгую на Pro Finance Group Inc платформа PFG FX Trader 4 (поддерживает MQL4). К сожалению на МикроФорексе нет демки.

¿Alguien ha probado el EA en la vida real? ¿Es muy diferente de la demo?


La imagen muestra el comercio en la demo de esta semana con SHooter777r conjuntos .Al tener +800 en saldo comercial decidí utilizar otro EA en 3 pares y ... La avaricia mató a la codicia: los fondos disponibles cayeron por debajo de 100 y, por supuesto, no se abrieron las contrapartidas, por lo que mi cuenta estuvo a punto de quebrar.


¡Buena suerte en el comercio a todos!

Archivos adjuntos:
 

Descargué el Expert Advisor y me convencí de nuevo de que para leer el ejercicio de otra persona rápidamente, se necesita un conocimiento más profesional del lenguaje mql, para escribir tu propio código, el conocimiento y la experiencia es un mínimo. Los autores, si publican el código, escriben comentarios en él y dividen todo el código en bloques.

Esto puede ser un Asesor Experto interesante, podría haber recomendado algo de mi propia experiencia, pero no quiero ahondar en el código crudo. El tiempo es precioso.

 
.
Archivos adjuntos:
 

Algo de la última versión no funciona.

El optimizador ni siquiera abre una sola operación en la primera etapa.

El probador con parámetros optimizados para el EA anterior funciona de la misma manera.

 

Lo siento. Me pasé media hora escribiendo las instrucciones, pero este foro con fallos no sólo glosa las letras, sino que perdió todo el texto.

Voy a escribirlo en wordpress y pegarlo aquí. Espera un poco.

 

La nueva versión de L9 contiene una serie de adiciones y cambios menores, pero creo que necesarios.

En primer lugar: se ha añadido la función FLG(), que se encarga de dos cosas

//+------------------------------------------------------------------+

bool FLG (int cs )

{ int AE = AccountEquity( ) ;

switch(cs)

{caso 0: if((DayOfWeek( ) == 5 && Hour( ) >=22) || (TrBlnc && (AE > UBlnc))

devolver (true);si no, devolver (false);

caso 1: string dttm = StringConcatenate (Year(),".",Month(),".",Day());

datetime smtm=StrToTime(dttm);

bool Gp;

int shft = iBarShift(NULL,0,smtm);

double iOpn = iOpen (NULL,0,shft); double iCls = iClose (NULL,0,shft+1);

double dOC = MathAbs ((iOpn - iCls)/(Punto*10)) ;

if (dOC>20) Gp = true ; Print (Gp);

string var1=TimeToStr(smtm,TIME_DATE|TIME_SECONDS);

if((TrBlnc && ((AE > UBlnc)||(AE < DBlnc)) || (!Flq)

|| ((DayOfWeek( ) == 1 && Hour( ) <2) || (DayOfWeek( ) == 5 && Hour( ) >=18))

|| ((DayOfWeek( ) == 1 && Hour( ) <14) && Gp))

devolver (false);si no, devolver (true);

}

}

//+------------------------------------------------------------------+

a) FLG( 0 ) - cierre forzado de las posiciones abiertas en las condiciones especificadas.

b) FLG( 1 ) - prohíbe la apertura de posiciones en determinadas condiciones.

Aquí puede insertar cualquier condición adicional y no "sobrecargar" la función void startM1() y otros lugares.

Seleccioné el final de la semana para el cierre forzado si((DayOfWeek( ) == 5 && Hour( ) >= 22) y el aumento de la equidad a algún tamaño

y prohibir la apertura en gep por encima de un determinado valor si(dOC>20) Gp = true ; y si la Equidad aumenta a si((TrBlnc && ((AE > UBlnc)

o disminuir a ||(AE < DBlnc))

 

Por lo tanto, si está probando u optimizando, asegúrese de que la Equidad está dentro del rango establecido en los parámetros

bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000;

o añadir a int init() línea if ( IsOptimization( ) ) TrBlnc = false;//si ( IsTesting() ) TrBlnc = false;

 

Lo que sigue no es un cambio sino una adición más sustancial y se refiere a Delta_G12 ahora no es delta AO sino la función G12(),

que, dependiendo de su parámetro extern int Indctr; utiliza o bien la primera AO si Indctr = 1

o si Indctr = 2 cualquier otra función o indicador ( yo uso el mío, TSM adjunto), si int Indctr = 0 entonces se suman las señales de ambos indicadores &&

//+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF+

double G12() {switch(Indctr)

{caso 0:

iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2);

iCusTSM_1 = iCusTSM (24, 1); iCusTSM_2 = iCusTSM (24, 2);

Dlt_AO12 = iCusAO_1 -iCusAO_2; Dlt_TSM12 = iCusTSM_1-iCusTSM_2;

if ( Dlt_AO12>=0 && Dlt_TSM12 <=0) return (0);

if ( Dlt_AO12<=0 && Dlt_TSM12 >=0) return (0);

return(Dlt_AO12);

caso 1:

iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2);

Dlt_AO12 = iCusAO_1 -iCusAO_2; return(Dlt_AO12);

caso 2:

iCusTSM_1 = iCusTSM (24, 1); iCusTSM_2 = iCusTSM (24, 2);

Dlt_AO12 = iCusTSM_1-iCusTSM_2; return(Dlt_AO12);}}

//+--------------------------------------------------------------------------------------+

double iCusTSM (int pr, int shft)

{ return (iCustom(NULL, 240, "iCus_N7S_TSM_forExp",pr,1,shft)); }

//+--------------------------------------------------------------------------------------+

Razón de la queja: