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

 

Puede alguien sugerir, instalar el plugin GetTickerHistory en MT-4, se ejecuta, pero la descarga no va, en Windows 7 x64, ¿es posible descargar los índices externos de otra manera.

Gracias de antemano.

 
001:
Existe una función para cerrar una posición por tiempo.

La posición se cierra, pero da el error OrderClose 138 para cada posición

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: open #1 sell 0.10 EURUSD at 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: close #1 sell 0.10 EURUSD at 1.02940 at price 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: open #2 sell 0.10 EURUSD a 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: close #2 sell 0.10 EURUSD a 1.02660 al precio 1.02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: open #3 sell 0.10 EURUSD at 1.02860 ok

11:44:49 2000.01.13 14:00 Hora+iLowest_old EURUSD,H1: OrderClose error 138 ,

¿Qué puede ser? Lo más interesante es que todo funciona en otro EA.

No tiene procesamiento de códigos de retorno del servidor de comercio. En otras palabras, no se procesan las recotizaciones y el deslizamiento es sólo de 3 puntos:

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

Ah, y las pequeñas cosas:

Cierre en bucle invertido (de lo contrario, fallará):

for(int i=OrdersTotal()-1; i>=0; i--)

La comprobación debe hacerse sobre el tipo de orden, de lo contrario intentará cerrar también las órdenes pendientes:

if(OrderType()>1) continue;
 
pu6ka:

Hay una función llamada SetIndexDrawBegin(). Pero tiene una característica especial: cuenta de izquierda a derecha. De todas formas, en Init, ponte la línea SetIndexDrawBegin(0, Bars-p), y mira si esto es lo que necesitas.
El indicador lee el último número de barras, no tiene problemas. Necesito hacer una ventana del número de barras en la que se contabilizarían estos movimientos y con cada barra se movería la ventana, excluyendo la última barra del último cálculo, añadiendo una nueva. Algo así como el alisado "iMAOnArray", pero el alisado no es adecuado porque saca la media, y yo necesito la suma.
 
artmedia70:

No tiene procesamiento de los códigos de retorno del servidor de comercio. Es decir, no se procesa la recotización, y falta el deslizamiento de sólo 3 puntos:

Ah, y las pequeñas cosas:

Cierre en bucle invertido (de lo contrario, fallará):

La comprobación debe hacerse sobre el tipo de orden, de lo contrario intentará cerrar también las órdenes pendientes:



¡Muchas gracias! Lo probaré ahora. Una pregunta más. ¿Es relevante la recotización en el probador? en mi probador no se cierra.
 
001:

¡Muchas gracias! Lo intentaré ahora. Una pregunta más. ¿Es relevante la cuota en el probador? en mi probador no se cierra.
A continuación, preste atención al precio de la orden comercial. Se cerrará a precio de oferta y se venderá a precio de demanda. No se puede comprobar el tipo de orden y, por lo tanto, no se puede elegir el precio, ya sea el de compra o el de venta.
 

Hola, he descargado varios indicadores RSI multitemporales casi idénticos. Todos tienen el mismo problema. He puesto el indicador en un gráfico de marco de tiempo inferior con el valor de algún marco de tiempo más antiguo. En el Probador de Estrategias se renderiza bien con los datos ya cargados, pero si empiezo a probar deja de dibujarse. Además, la señal se dibuja en el gráfico real, pero en cada barra del gráfico real los valores de la línea del indicador son diferentes. Es decir, la representación de los datos ya cargados es en escalera, pero la representación es diferente para los datos cargados en el modo de tiempo real. Por favor, indique qué cambios hay que hacer para que el indicador dibuje la misma escalera tanto en el gráfico real en tiempo real como en el probador.

El código del indicador está en el archivo adjunto.

Tengo un muy buen Asesor Experto para este indicador y me gustaría agradecerle por ello.

Archivos adjuntos:
mtf_rsi.mq4  3 kb
 
Hola, el EA da el error 1 "No hay error pero no se conoce el resultado" al modificar.Error 1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
No hay problema en hacer que el indicador lea el último número de barras. Necesito hacer una ventana de número de barras en la que se contabilizarían estos movimientos y con cada barra se movería la ventana, excluyendo la última barra del último cálculo, añadiendo una nueva. Algo así como el alisado "iMAOnArray", pero el alisado no es adecuado, porque saca la media, y yo necesito la suma.

Lanza este indicador en M1, a medida que aparecen nuevas barras, las líneas de caimán de la izquierda "se borran". ¿Lo necesitas?

Archivos adjuntos:
 
Example2:
Hola, el EA da el error 1 "No hay error pero no se conoce el resultado" al modificar.

Lo más probable es que esté modificando con el precio antiguo que ya está prescrito en el pedido.
 
pu6ka:

Lo más probable es que se modifique el precio antiguo que ya está prescrito en la orden.


Pero hay una comprobaciónif(OrderOpenPrice()!=ma2)

Razón de la queja: