Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 340

 
evasivo:


Hay un botón SRC en el panel de edición, el código se colorea allí automáticamente ;)

En cuanto al código, si utiliza if (OrderSymbol() == Symbol()...) entonces if (OrderSymbol()!= Symbol()) continue; no necesitamos ni lo uno ni lo otro.

for (int k = 0; k < OrdersTotal(); k++) es mejor sustituir esto por

for (int k = OrdersTotal()-1; k >=0 ; k--), es más seguro



Lo escribí así


if(NumberOfPositionsSell(Symbol())==1 &&  NumberOfPositionsBay_otl(Symbol())==1  &&GetOrderLotsOtlBay(Symbol())==start_Lot*2  &&GetOrderLotsSell(Symbol())==start_Lot)
{
 
     for (int kk = OrdersTotal()-1; kk >=0 ; kk--) 
      {
      
       if (OrderSelect(kk,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP ) {
      

      tp_buy_otl=NormalizeDouble(b+((((2*Point)+spred+(b+Point+spred-GetOrderPriceSell(Symbol()))/Point)/2)*Point), Digits);
      sl_buy_otl=NormalizeDouble(GetOrderPriceSell(Symbol()), Digits);
      OrderModify(OrderTicket(), NormalizeDouble(b+Point+spred, Digits),sl_buy_otl,tp_buy_otl,0);
     
       Alert("tp_buy_otl = ",DoubleToStr(tp_buy_otl, Digits)+"\n"+"sl_buy_otl =  ",DoubleToStr(sl_buy_otl, Digits)+"\n"+" цена открытия бай стоп = ",  DoubleToStr(b+Point+spred, Digits)+"\n"+"OrderSymbol() =  ",OrderSymbol()+"\n"+"OrderType() = ",OrderType());
     
      
     }
      
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_SELL ) {
      
      sl_sell_otl=NormalizeDouble(b+spred+Point, Digits);
      OrderModify(OrderTicket(),OrderOpenPrice(), sl_sell_otl,OrderTakeProfit(),0);
       
      }
      }
      }
      
} 

а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скин
да и открытый селл он модифицировал а отложенный нет


En cuanto eliminé la orden pendiente para el gbpusd y quité el EA de la misma, la orden para el euro se modificó inmediatamente


 
max020780:

En cuanto eliminé la orden pendiente en gbpusd y quité el EA de la misma, la orden en euro se modificó inmediatamente

Utilice Magicky para filtrar los pedidos. Y no se comprueba la modificación repetida de los topes (que provoca el error de modificación 1).
 

Hola a todos. Amigos, me pueden decir si este testeo de un EA durante 5 años se puede considerar exitoso. O bien la rentabilidad es pequeña y la reducción grande. Me gustaría saber mi opinión, ¿los datos del tester son muy diferentes a los de la cuenta real (lo he probado en el terminal de Alpari)? Estoy mostrando los resultados:

Periodo cantidad rentabilidad Disminución de la demanda importe de la operación
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233
 
alexey1979621:

Hola a todos. Amigos, me pueden decir si este testeo de un EA durante 5 años se puede considerar exitoso. O bien la rentabilidad es pequeña y la reducción grande. Me gustaría saber mi opinión, ¿los datos del tester son muy diferentes a los de la cuenta real (lo he probado en el terminal de Alpari)? Estoy mostrando los resultados:

Periodo cantidad rentabilidad Disminución de la demanda importe de la operación
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233

Esto es una gran reducción, y la rentabilidad no es suficiente... ¿A cuánto asciende la detracción de los fondos?

O podría serlo:

Reducción absoluta: 2 ,40 USD
Máximo: 9 ,08 USD

Relativo: 0 ,78%)

Dinero máximo: 97,81% )))

 
evillive:

Es una gran reducción, y la rentabilidad es un poco baja... ¿Cuál es la reducción de los fondos?

Puede ser:

Reducción absoluta: 2,40 USD.
Máximo: 9,08 USD

Relativo: 0,78%

Máximo de fondos: 97,81% )))

Se indica la reducción relativa. La reducción absoluta es más o menos la misma en porcentajes y en dinero. ¿Los datos de los probadores difieren mucho de los de la cuenta real? Entonces, ¿qué debo hacer con el Asesor Experto - debo colocarlo en la cuenta real (parece funcionar bien durante 3 semanas en la cuenta de demostración) o ponerlo en el estante hasta que haya nuevas ideas para su mejora?
 
Que trabaje en la demo durante al menos medio año. El probador no muestra el drawdown por medio, pero se puede ver en el tiempo real. Lo que he mostrado - el trabajo sin paradas, las detracciones excesivas. El tiempo de vida de las cuentas anteriores - 2-3 meses, este está vivo desde agosto, voy a ver cuánto tiempo va a durar )))
 
Si tienes experiencia, ¿de qué parámetros deberías partir: rentabilidad mínima y drawdown? Si la rentabilidad es inferior al 1,5% y el drawdown es superior al 50% en 5 años, entonces mi Expert Advisor debe ser puesto en el estante hasta tiempos mejores.
 
Forexman77:

Estoy usando mi propio indicador en el EA, veo visualmente durante las pruebas que está creciendo y según las condiciones debería abrirse la compra, pero no sucede.

Veo los siguientes errores en el registro (tengo dos tipos, los muestro uno por uno):

TestGenerator: error de datos no coincidentes (límite de volumen 372 en 2013.12.11 21:00 superado)

TestGenerator: error de datos no coincidentes (el valor bajo 1,33097 en 2013.09.12 19:45 no se alcanza desde el marco temporal más bajo, el precio bajo 1,33105 no coincide)

¿Quizás hay algunas peculiaridades con el funcionamiento de los indicadores personalizados? Llevo dos meses trasteando con este EA y lo estoy posponiendo indefinidamente.

Descargue el historial completo del símbolo que se está probando. No es el EA el que provoca el error, es el historial "torcido".
 
Forexman77:

Los errores 129,138 se producen de vez en cuando en un EA. El problema se resuelve sólo después de reiniciar el terminal.

Quiero añadir la función de Información de Mercado para actualizar la oferta y la demanda y luego comprobarlo.

¿Es posible llamar artificialmente a los errores 129,138?

Error 129 - precio incorrecto

Error 138 - nuevos precios (recotización)

Antes de enviar una solicitud de negociación, obtenga los últimos precios actualizando el entorno de negociación mediante RefreshRates(), o directamente desde MarketInfo()

No lo olvides:

Los Asesores Expertos y los scripts trabajan con su propia copia de datos históricos. La copia de los datos del símbolo actual se crea en el primer lanzamiento del Asesor Experto o del script.

Cada vez que se vuelve a ejecutar el Asesor Experto o el script, se actualiza la copia creada inicialmente. Mientras se ejecuta el Asesor Experto o el script, pueden llegar uno o más ticks nuevos, por lo que los datos pueden quedar desactualizados.

 
artmedia70:

Error 129 - precio incorrecto

Error 138 - nuevos precios (recotización)

Antes de enviar una solicitud de negociación, obtenga los últimos precios, ya sea actualizando el entorno de negociación mediante RefreshRates(), o directamente desde MarketInfo()

No lo olvides:

Los Asesores Expertos y los scripts trabajan con su propia copia de datos históricos. La copia de los datos del símbolo actual se crea en el primer lanzamiento del Asesor Experto o del script.

Cada vez que se vuelve a ejecutar el Asesor Experto o el script, se actualiza la copia creada inicialmente. Mientras se ejecuta el Asesor Experto o el script, pueden llegar uno o más ticks nuevos, por lo que los datos pueden quedar desactualizados.


¡Muchas gracias!

Ahora sé cuál es el problema.

Lo usé para comprar:

if  (iClose(Symbol(),Period(),0) <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }

Por lo que sé, la compra es ask, pero iClose(Symbol(),Period(),0) toma los precios de bid. Este puede ser el motivo del error.

Ahora uso la siguiente combinación:

double pa=MarketInfo(Symbol(),MODE_ASK);
if  (pa <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }
Pero entonces tengo una pregunta, porque el EA no es un EA basado en pips, el precio estuvo en la zona de compra durante mucho tiempo y se actualizó con cada tick.

¿Por qué no se abre el comercio? Resulta que el EA se cuelga del error y no ve más movimiento de precios?

Tomé la plantilla para mi Asesor Experto de https://c.mql5.com/mql4/book/mq4/experts/tradingexpert.mq4

En su opinión, ¿debería añadir a la función de gestión de errores de este EA una comprobación de los errores 129 y 138?

En caso afirmativo, ¿cómo hacerlo?