Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 318

 
Vitaly Muzichenko:

:D


¡Gracias, buen hombre!

 

Aquí está más detallado

 
Ras al Ghul:

O tu variante es muy complicada, o no entiendo el valor del que hablas...


En mi variante, la pieza resaltada es jurada:

'Array' - array requerido.

¿No ponemos el valor del indicador en la matriz de esta manera?



Tenga en cuenta que, obviamente, debe haber más de un valor en la matriz para que el cálculo sea correcto.Vitaly Muzichenko señaló correctamente el error, no lo repetiré una vez más.

 
voron_026:

Sí, tienes razón. Los rectángulos se dibujan en las mismas coordenadas. Resuelto el problema de la siguiente manera:

Añadida la variableTimeFrame, para cambiar rápidamente el plazo calculado

Bueno, sí, eso es lo correcto.

Observa el signo de igualdadUseDojiCandles.

if(UseDojiCandles == true && Doji() == 1 && New_Bar == true)
 
Aleksey Vyazmikin:

Sí, así es.

Observa el signo de igualdad deUseDojiCandles

Así que amplía la respuesta que hay una comparación "==" y hay una asignación "="

 
Vitaly Muzichenko:

Así que amplía la respuesta, que hay una comparación "==" y hay una asignación "=".


Está claro que el hombre lo sabe, sólo cometió un error tipográfico.

 
Aleksey Vyazmikin:

Está claro que el hombre lo sabe, sólo cometió un error tipográfico.


Sí, así es, gracias por el consejo. Ya lo he corregido.

Estoy trabajando en ello.

Enganchado el martillo y el patrón de martillo invertido
 
voron_026:

Sí, así es, gracias por el consejo. Ya lo he arreglado.

Ahora estoy trabajando en ello.

He conectado los patrones "Martillo" y "Martillo invertido"

Tengo la suposición de que patrones similares funcionarán de manera diferente cuando los precios se mueven hacia el norte y hacia el sur - creo que esto debe tenerse en cuenta al interpretarlos.

 
  for(int i=0; i<limit; i++) {
    Last[i] = Symbol1_Vol*Vol1*iClose(Symbol1_Name,0,iBarShift(Symbol1_Name,0,Time[i])) - 
              Symbol2_Vol*Vol2*iClose(Symbol2_Name,0,iBarShift(Symbol2_Name,0,Time[i]));



 for(int i=0; i<limit; i++) {
    if(ButtonSt) { // кнопка выбора, отображать Bands, или Envelopes
     MA[i]=iMAOnArray(Last,0,Env_Period,0,MODE_SMA,i);
     LineUp[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_UPPER,i);
     LineDn[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_LOWER,i);
    } else {
     MA[i]=iMAOnArray(Last,0,BB_Period,0,MODE_SMA,i);
     LineUp[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
     LineDn[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
    }
  }

Técnicamente, la forma de hacerlo parece estar clara.

for(int i=0; i<limit; i++) {
    RSI[i] = iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,i);
  }

for(int i=0; i<limit; i++) {
    BandsMn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_MAIN,i);
    BandsUp[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
    BandsDn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
  }

Pero la esencia del proceso no está clara:

Por ejemplo, ¿qué valor debe tener el límite y por qué exactamente ese valor?

A juzgar por la variable i al final de las funciones de los indicadores, estamos introduciendo datos con un desplazamiento.

Es decir, ¿el límite debería depender del periodo del indicador?


Gracias por su atención y paciencia.

 
Ras al Ghul:

Técnicamente, la forma de hacerlo parece estar clara.

Pero la esencia del proceso no está clara:

Por ejemplo, ¿qué valor debe tener el límite y por qué exactamente ese valor?

A juzgar por la variable i al final de las funciones indicadoras, introducimos los datos con un desplazamiento.

Es decir, ¿el límite debería depender del periodo del indicador?


Gracias por su atención y paciencia.

Límite - el número de barras en el gráfico; necesita mostrar el indicador hasta el final del historial cuando se desplaza el historial.