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

 
FOTOGRAF14:
if(Close[1]<High[i] && Close[1]>Low[i])

i++;

¿Cómo puedo hacer que una condición se compruebe en la siguiente barra y no en cada tick?

Tengo esta construcción

static datetime TimeN=0;  


void OnTick()
  {

datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return;
   TimeN=TimeC;

 
-Aleks-:

Este enfoque funciona si el indicador funciona en el gráfico - y necesito esto en un script - en un gráfico ya hecho.
Э... este enfoque funciona en todas partes. Desde EAs, scripts, otros indicadores podrás conseguir lo que necesitas. Si prepara un indicador que se adapte a sus necesidades específicas.
 
Alexey Kozitsyn:
Э... este enfoque funciona en todas partes. Usted puede obtener lo que necesita de EAs, scripts, otros indicadores. Si prepara el indicador para sus necesidades específicas.

No lo entiendo.

"En OnCalculate(), cuando se cumpla la condición rates_total > prev_calculated - calcula el indicador y escribe el valor en este buffer extra;"

¿Qué grabamos? El valor del indicador en la última barra, ¿no?

 
-Aleks-:

No lo entiendo.

"En OnCalculate(), cuando se cumple la condición rates_total > prev_calculated - calcula el indicador y escribe el valor en este buffer adicional;".

¿Qué escribimos? El valor del indicador en la barra anterior, ¿no?

Registramos lo que calculamos.
 
Alexey Kozitsyn:
Escribamos lo que calculamos.

Entonces es una tontería cambiar el cálculo de la MÁSCARA - contar la misma MÁSCARA dos veces.
 
-Aleks-:

Entonces es una tontería cambiar el cálculo del MAK - para contar el mismo MAK dos veces.

¿Ha escrito un solo indicador desde cero para juzgar qué es "tonto" y qué no?

De todos modos, buena suerte en la resolución del problema. Me retiro de la discusión.

 
Alexey Kozitsyn:

¿Ha escrito un solo indicador desde cero para juzgar qué es "tonto" y qué no?

De todos modos, buena suerte en la resolución del problema. Me retiro de la discusión.

Sí, escribo indicadores para uso personal, pero sin OnCalculate().

"Tonto" se refiere al método, no a su autor, desde luego no pretendía ofender a nadie....

Me refiero a esta solución para la simple MA[n]-Cierre[n]/periodo+Apertura[n]/periodo

Estoy interesado en soluciones similares para otras formas de calcular MAs.

 
Alexander Antoshkin:

No soy un buen orador. Si empiezo a hablar desacreditaré la ciencia).

Encuentre a Albert Buraga con su tema "Más allá del mercado" él ha estado discutiendo este tema durante mucho tiempo, y escuche ...... algoritmos y cálculos están todos allí, su grupo está en contacto

no hay necesidad de poner un enlace a su sitio - lo borrarán. muestra tu interés y lo encontrarás...... no soy su alumno y no quiero hacerle publicidad, pero he tomado para mí 1/3 de lo que dice que falta.

La pantalla de mi trabajo tiene este aspecto: Trading desde el viernes ...apenas me he acercado a mi ordenador ... El 80% del tiempo trabajaba con órdenes pendientes y beneficios en niveles previamente calculados...

...y así es cada día

Gracias por la información, lo investigaré. Tengo entendido que también vive en smartlab.

 
Miré a través de una gran cantidad de literatura en la web, aconsejar qué libro de texto, autor, o un curso de cursos gratuitos o de vídeo.
 

Hola, podríais aconsejar cómo resolver este problema: en RSI>50 la variable x se cuenta una vez y en RSI<50 la variable y se cuenta una vez (esta parte la escribí en el código) y en RSI>70 el valor de la variable x se resta del precio actual (esta parte es el problema). El código es el siguiente:

1 parte:

bool RSI_HIGHER_50=false;
bool RSI_LOWER_50=false;
void OnTick()
{
double RSI=iRSI(NULL,0,14,PRICE_CLOSE,1);
double x;
double y;
double z;
{
if (RSI>50&& !RSI_HIGHER_50)
{
x=MarketInfo(NULL,MODE_BID);
RSI_HIGHER_50=true;
RSI_LOWER_50=false;
}
}
{
if (RSI<50 && !RSI_LOWER_50)
{
y=MarketInfo(NULL,MODE_ASK);
RSI_LOWER_50=true;
RSI_HIGHER_50=false;
}
}
}

2 parte:

if (RSI>70)
{
z=Close[1]-x;
}

Si sólo conectas estas partes, la variable z no se calculará correctamente. ¿Es posible fijar/guardar el valor de la variable x para realizar más operaciones con ella? ¿Cómo lograr el cálculo correcto de la variable z bajo la condición anterior?

Gracias.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Razón de la queja: