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

 
culler:

EnviarPedido ()

deslizamiento,// deslizamiento

¿Puede decirme en qué formato?

Ejemplo: 3 - 0,00003 o 0,0003 a una cuenta de cinco dígitos


3 para una cuenta de 4 dígitos es 30 para una cuenta de 5 dígitos respectivamente, pero si realmente quieres, también puedes dejar 3 para una cuenta de 5 dígitos, sólo que las recotizaciones serán constantes.
 

Puedes darme un ejemplo de código, no se me ocurre nada normal.

Cómo forzar la comparación de precios ( por ejemplo: MarketInfo(Symbol(),MODE_BID ) por cuánto ha subido el precio por encima/por debajo desde que comenzó la comparación de precios.

Si utilizo las Variables "A" y "B" con Bid, cómo puedo forzar a que se actualice sólo la Variable "B" y compararlas posteriormente - de lo contrario ambas tendrán siempre los mismos valores.

¿O tal vez haya formas más sencillas de incorporarse?

 
culler:

Puedes darme un ejemplo de código, no se me ocurre nada normal.

Cómo forzar la comparación de precios ( por ejemplo: MarketInfo(Symbol(),MODE_BID ) por cuánto ha subido el precio por encima/por debajo desde que comenzó la comparación de precios.

Si utilizo las Variables "A" y "B" con Bid, cómo puedo forzar a que se actualice sólo la Variable "B" y compararlas posteriormente - de lo contrario ambas tendrán siempre los mismos valores.

¿O tal vez haya formas más sencillas de incorporarse?


Hay que tener en cuenta el tiempo. Recuerde la hora en que se escribió el primer valor de la oferta y luego compárelo con el valor real de la oferta después de un cierto intervalo:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

La variable B C será, por tanto, el valor absoluto de la diferencia de Bid en los últimos 10 segundos.

 

Por favor, avise - mientras depura el programa - en el depurador en la ventana "Seguimiento de los valores de la expresión" en las expresiones escribe "La expresión no pudo ser evaluada" mientras los valores de

estas expresiones aparecen tranquilamente en la ventana llamada por la función Alerta. El programa funciona, las variables tienen asignados valores y en el depurador no se muestran al no poder ser evaluadas. ¿Cómo puede ser esto?

 
evillive:

Hay que tener en cuenta el tiempo. Recuerde el momento en que se registró el primer valor de la oferta, y luego compare en un intervalo determinado con la oferta real en ese momento:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

La variable B C será, por tanto, el valor absoluto de la diferencia de Bid en los últimos 10 segundos.


No hay ninguna referencia al tiempo. El tiempo es el enemigo aquí.

¿Cómo sin tiempo?

 
culler:


No hay ninguna referencia temporal. El tiempo es el enemigo aquí.

¿Cómo sin tiempo?


Pones una variable con el valor del precio en OnInit, y se vinculará al precio durante el inicio del Asesor Experto, entonces puedes compararlo con lo que necesitas
 
culler:


No hay ninguna referencia temporal. El tiempo es el enemigo aquí.

¿Cómo se puede prescindir del tiempo?


No se puede prescindir del tiempo en la cola, es una parte inseparable del sistema, por desgracia. Incluso en la pregunta planteada aparece el tiempo:

Como hacer la comparación de precios ( por ejemplo: MarketInfo(Symbol(),MODE_BID ) cuanto mayor/menor desde el momento de la comparación de precios.

El "momento" es el tiempo allí, el punto de referencia inicial.

 
culler:

Puedes darme un ejemplo de código, no se me ocurre nada normal.

Cómo forzar la comparación de precios ( por ejemplo: MarketInfo(Symbol(),MODE_BID ) por cuánto ha subido el precio por encima/por debajo desde que comenzó la comparación de precios.

Si utilizo las Variables "A" y "B" con Bid, cómo puedo forzar a que se actualice sólo la Variable "B" y se comparen más, de lo contrario ambas tendrán siempre los mismos valores.

¿O tal vez haya formas más sencillas de incorporarse?

LastPrice=0;

NewPrise=0;

if(условие записи  LastPrice &&  NewPrise==0){LastPrice = MarketInfo(Symbol(),MODE_BID);}

if(LastPrice > 0) { NewPrise = MarketInfo(Symbol(),MODE_BID);} 


 
evillive:

En la cola no hay tiempo sin tiempo, es una parte inseparable del sistema, por desgracia. Incluso en esta pregunta el tiempo está presente:

el "momento" es el tiempo, el punto de partida.


no hay tiempo en forex.... hay una serie continua de estados esperados... (predicciones)

Pero para un comerciante, entre dos estados esperados puede pasar una hora, otro mes, otros segundos o incluso un año... :-)))

es su problema... el objetivo de una negociación exitosa es minimizar el periodo de espera.... ( dependiendo de lo que se pretenda...)

 

Hola a todos. Pregunta sobre IndicatorCounted():

#property indicator_separate_window
datetime LastBarTime=0;
int start() 
{
   // каждый свежий бар считаем только 1 раз (сразу после закрытия)
   if (Time[0]!=LastBarTime)               // если идёт расчёт всей истории или начался свежий бар
   {
      LastBarTime=Time[0];
      
      int counted=IndicatorCounted(); if(counted<0) return(-1);
   // if (counted>0) counted--;   <<< зачем оно???
   
                 int i=Bars-counted;  // варианты: считаем историю(i=кол-во баров), сформирован свежий бара (i=2) ПОЧЕМУ?
      if (counted<2) i=Bars-2;        // для корректного начала расчёта (иначе i и тем более i+1 заглядывают в бездну)

      Print("!!!!!!TEST Bars-counted=",i);  // ПОЧЕМУ =2 ???
                     
      for (; i>0; i--) // открытый бар не считаем
      {
      // варианты:
      // 1) в истории недостаточно баров (меньше трёх): итераций цикла не будет
      // 2) произошла переинициализация переменных и тогда надо считать историю с нуля (i указывает на 2-й бар слева)
      // 3) историю уже расчитали, а сейчас сформирован свежий бара: i должна указывать на закрытый бар (i=1)
      }
   }
   
return (0);
}


¿Puedo esperar sólo dos estados en el bucle:

1) inicialización (las variables estáticas se restablecen y i apunta a la segunda barra de la izquierda);

2) se calcula toda la historia (i=2);


Y, en realidad, ¿por qué i=2? Entendería i=1 o i=0, pero ¿por qué 2? ¿Puedo confiar en ese 2? =)

Si no es así, cuál es la forma correcta de hacerlo. Tengo un cálculo en cadena, por lo que la misma barra no puede ser procesada repetidamente.

...

Ok, voy a plantear la pregunta de otra manera. Directo al grano. ¿Puedo utilizar una variable en lugar de IndicatorCounted()?

Es decir, ¿la inicialización primaria de los stats y globals es siempre la misma que el 0 de IndicatorCounted()?