[¡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 226

 
doon:

¿Cómo puedo hacer que un EA compre o venda a una hora determinada(dormir para no usar)?

Las funciones de fecha-hora le ayudarán: https://book.mql4.com/ru/functions/datetime
 
Fam:
Las funciones de fecha-hora le ayudarán: https: //book.mql4.com/ru/functions/datetime

Gracias, pero todavía tendrá que insertar un resbalón allí.

 
¡Gente! Estoy tratando de hacer, que el comercio mucho dependiendo del riesgo.... lo que no funciona....escribe
 EURUSD,M15: OrderSend error 4051

dígame dónde está el error....

void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenBuy); 
   if (UseSound) PlaySound(NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenSell); 
   if (UseSound) PlaySound(NameFileSound); 
} 
string GetCommentForOrder() {   return(Name_Expert); } 
double GetSizeLot() { 
   double ldlot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
   ldlot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) ldlot=NormalizeDouble(ldlot-ldlot*losses/DecreaseFactor,1);
     }
   if(ldlot<0.1) ldlot=0.1;
                         } 
double GetStopLossBuy() {       return (Bid-sStopLoss*Point);} 
double GetStopLossSell() {      return(Ask+sStopLoss*Point); } 
double GetTakeProfitSell() {    return(Bid-sTakeProfit*Point); } 
double GetTakeProfitBuy() {     return(Bid+sTakeProfit*Point); } 

return(0);
 

Gracias a todos, lo probaré...
 
charter:

Me temo que esto sólo es cierto para las series temporales.

En mi caso, no hay ni siquiera un lugar donde pinchar.

Tu idea es correcta, es decir, hay que invertir el orden de alguna manera, pero aún no sé cómo


No te preocupes, funciona.
 
Vovo4ka:
¡Gente! Estoy tratando de hacer, que el comercio mucho dependiendo del riesgo.... lo que no funciona....escribe

dígame dónde está el error....


se olvidó de poner una línea en el lote.
return (ldlot);
 
todem:

Me olvidé de poner una línea en el lote.

derecho...... se olvidó.... muchas gracias.... lo he comprobado ya 20 veces, no he podido averiguar qué diablos...)
 

Ayuda con una pregunta sobre requote+slippage.

La situación es la siguiente: envío una solicitud de transacción por Expert Advisor, Slippage=3 pt, se produce el error 138 Requote. Traté de RefreshRates() y lo intenté de nuevo con un nuevo Ask, pero el precio del servidor es mejor que el Ask que envié (la segunda vez después de RefreshRates()), y lógicamente tengo que estar de acuerdo, pero debido a que la desviación del precio del servidor es mayor que el Slippage en la solicitud - esta solicitud es rechazada. (((

¿Cómo se puede controlar esta situación? Es decir, si el precio del servidor es mejor entonces para mover el deslizamiento o lo que, por lo que la solicitud es aceptada por el servidor. ¿O no es posible?

 
ZZZEROXXX:

Ayuda con una pregunta sobre requote+slippage.

La situación es la siguiente: envío una solicitud de transacción por Expert Advisor, Slippage=3 pt, se produce el error 138 Requote. Traté de RefreshRates() y lo intenté de nuevo con un nuevo Ask, pero el precio del servidor es mejor que el Ask que envié (segunda vez después de RefreshRates()), y lógicamente tengo que estar de acuerdo, pero debido a que la desviación del precio del servidor es mayor que el Slippage en la solicitud - esta solicitud es rechazada. (((

¿Cómo se puede controlar esta situación? Es decir, si el precio del servidor es mejor entonces para mover el deslizamiento o lo que, por lo que la solicitud es aceptada por el servidor. ¿O no es posible?


Aumenta el deslizamiento. Las operaciones deben haberse abierto en un mercado rápido. A veces pasa después de noticias importantes que los eurobucks son tan rápidos en 1-2 ticks que es una pesadilla. Y mientras el servidor está procesando la orden del asesor, el precio cambia de forma muy pronunciada.
 
Zhunko:
MT4 tiene un convertidor incorporado. Servicio -> Archivo de citas.

Gracias. Pero el objetivo es el siguiente. Con barras diarias (velas), actualizadas con la llegada de las cotizaciones, el gráfico se comporta como un gráfico normal: puede colgar en él otros indicadores, EAs, construir canales, niveles, etc. Debería ser algo así como marcos de tiempo no estándar, pero no estándar en el desplazamiento de las barras (velas) en relación con el tiempo terminal: H4 - en -3, -2, -1, 1, 2 o 3 horas; D1 - en -23, -22, ... 1, 2, ... o 23 horas; W1 - para -6, -5, ... o 6 días y así sucesivamente. El desplazamiento debe fijarse en los parámetros de entrada del indicador.

¿Existe tal cosa?

Se lo agradezco de antemano.