[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 95

 
PariaH:

Por favor, dígame cómo abrir una nueva orden si se activa un Stop Loss o un TP. Preferiblemente un código. ¡¡¡Muchas gracias de antemano!!!

Abrir cualquier código de un EA desde https://www.mql5.com/ru/code

o abra el código del Asesor Experto que viene con MT4, por ejemplo, Moving Average.mq4.

Ahí, si te fijas bien, verás cómo se hace.

Después de eso podrás hablar.

 

Ahí, si te fijas bien, verás cómo se hace.

Después de eso, puedes hablar.

Esa no es exactamente la respuesta que esperaba... Quiero un ejemplo concreto, no el código completo del programa...

 
alexhammer:

Hoy he esbozado un nuevo EA, lo estoy escribiendo para mí, pero si sale bien lo compartiré con vosotros más adelante.

Me gustaría que me dierais vuestra opinión sobre qué más añadir. Puede reorganizar el stop y el takei, mover la línea en la pantalla, mostrar las órdenes abiertas y más estadísticas sobre las cuentas. Lo más importante es añadir algunas opciones para los trailing stops y mostrar visualmente su movimiento. ¿Qué otras peticiones habrá?

Se ve bien :).

Al menos, quiero enseñar a mi Asesor Experto a no perder el depósito.

Una buena EA no es garantía de una buena vida.

 
PariaH:

Ahí, si te fijas bien, verás cómo se hace.

Después de eso, puedes hablar.

Esa no es exactamente la respuesta que esperaba... Quiero un ejemplo concreto, no el código completo del programa...

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
   if(Open[1]>ma && Close[1]<ma)  
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//---- buy conditions
   if(Open[1]<ma && Close[1]>ma)  
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//----
  }
Esto es parte del código del EA suministrado con MT4.
 
coronel:

Enseñar a un EA al menos a no perder un depósito.

Una hermosa EA no es garantía de una hermosa vida.


¡No me des lecciones sobre los EA! Esto no es un EA de comercio si no lo entiendes. Y en la pantalla hay una cuenta demo con órdenes especialmente abiertas para probar el rendimiento de este EA.
 
alexhammer:

¡No me des lecciones sobre los EA! Esto no es un asesor experto en comercio si no lo entiendes. Y en la pantalla hay una cuenta demo con órdenes especialmente abiertas para probar el trabajo de este EA.

Por favor, perdóname si mi post ha sonado a sermón.

Sólo estaba expresando mi punto de vista sobre el autotrading.

 
¡Vamos, Paz! :) Sólo estaba esperando algunas ideas y deseos, no estoy tratando de hacerlo por mí mismo.
 
alexhammer:
¡Vamos, el mundo! :) Sólo esperaba escuchar algunas ideas, deseos, no sólo para mí porque lo estoy intentando.

Hay toneladas de ideas en este sitio, pero no conozco a nadie que se gane la vida como operador automático.

 
coronel:
Esto es parte del código del EA suministrado con MT4.


SPY... Pero no es eso otra vez :) la cosa es que no uso indicadores... Sólo tengo que abrir una nueva orden si se activa un STOP o PREF. ¿Cómo se puede aplicar esto de otra manera...

aquí está parte del código.... pero no funciona ....

for(int i=1; i<=TotalPedidos(); i++) // ???? ???????? ?????

{

if(OrderSelect(i-1,SELECT_BY_POS)==true)

{

double SL=OrderStopLoss();

double TP=OrderTakeProfit(); // TP ?????????? ???.

double Price =OrderOpenPrice();

{

if(SL >= Price)

{

OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Green);

}

}

Alert(i);

}

}

 
PariaH:


SPS... Pero no es eso otra vez :) la cosa es que no uso indicadores... Sólo tengo que abrir una nueva orden si se activa el STOP o el PREF. ¿Cómo se puede aplicar esto de otra manera...

aquí está parte del código.... pero no funciona ....


Sigue siendo el mismo trozo de código, pero sin el indicador:

int start()
  {
   int    res;
//---- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//---- 
   if(OrdersTotal()==0)//если нет открытых ордеров
     { 
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);// открыть SELL
 //     res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue); //открыть BUY
     }
//----
 return(0);}