[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 55

 
mr_Johns:

if((b_mod) && (precioB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);


Aquí debemos considerar MarketInfo(Symbol(),MODE_STOPLEVEL) es decir

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

priceS < =Bid- MarketInfo(Symbol(),MODE_STOPLEVEL)*Point




No. Esta pregunta ya fue resuelta anteriormente. La función simplemente funcionó durante la prueba en cada tick y no se obtuvo un nuevo precio tan rápidamente. Pero cuando el precio no cambió, se produjo el error.
 
hoz:

Pues bien, si pasas elementos a una función de tipo double oint, ésta también puede realizar las mismas operaciones, pero sin perversiones. ¿Por qué complicarse la vida?

Si una función tiene un tipo, se asume que la función devuelve un valor de ese tipo.

int test() {
  int res;
  
  // какие-то действия
  
  return(res);
}

Su función no devuelve nada.

 
hoz:

No. Esta cuestión ya ha sido resuelta anteriormente. La función simplemente funcionó durante la prueba en cada tick y el nuevo precio no se obtuvo tan rápidamente. Pero cuando el precio no cambiaba, aparecía el error.

¿Cómo que no? Si la condición

precioB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Punto

no se cumple y precioB >Ask (como en el código)

obtendrá un error.

Para no modificar la orden cuando el precio no ha tenido tiempo de cambiar, debemos introducir la condición ¡precioB!=PrecioAbiertoDeLaOrden()

 
MikeM:
Yo escribiríaHour()>=18, y desecharía los minutos por completo.
Y eso es lo correcto. Utilicé la función para otros fines y la trasladé mecánicamente aquí.
//---не давать коду советника работать в пятницу с 18-00 по серверному времени 
   if(DayOfWeek()==5 && Hour()>=18){
      
      return(0);  
   } 
 
¿Puede aconsejar si se puede escribir un indicador en el que las líneas se dibujen en un marco temporal, y los datos para su dibujo se tomen de otro marco temporal? el objetivo: visualizar el rediseño de la última barra. ¿cómo hacerlo?
 
lottamer:
¿Puede aconsejar si es posible escribir un indicador que dibuje líneas en un marco temporal, y los datos para su dibujo sean tomados de otro marco temporal? El propósito: visualizar el re-dibujo de la última barra.

Es elemental Watson... En cada caso, en lugar de Period() utilice PERIOD_M15 (el marco temporal del que desea recibir datos)... Y poner el indicador en el gráfico actual. Es decir, establecer a la fuerza el marco temporal del que se quieren tomar datos.
 
Sepulca:

Es elemental Watson... En cada caso, en lugar de Period() utilice PERIOD_M15 (el marco temporal del que desea obtener datos)... Y poner el indicador en el gráfico actual. Es decir, establecer a la fuerza el marco temporal del que se quieren tomar datos.


Sería fácil, si estuviera escribiendo un Asesor Experto.

pero hay un indicador. No los he escrito antes.

He visto un estocástico estándar como ejemplo. He leído la cartilla de indicadores.

Nunca he leído nada sobre los periodos. parece que significa que las barras se consideran en el marco temporal al que se ha aplicado el indicador.

esta es la razón de mi pregunta.....

 
lottamer:


Esto sería fácil si estuviera escribiendo un EA.

pero hay un indicador. No los he escrito antes.

He visto un estocástico estándar como ejemplo. He leído la cartilla de indicadores.

Nunca he leído nada sobre los periodos. parece que significa que las barras se consideran en el marco temporal al que se ha aplicado el indicador.

esta es la razón de mi pregunta....


En el estocástico estándar:

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)

Si escribe su propio indicador único, utilice int iBars( cadena símbolo, int marco temporal) en lugar de Bars

https://docs.mql4.com/ru/series/iBars

 
Sepulca:


En un estocástico estándar:

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)

Si escribe su propio indicador único, utilice int iBars( cadena símbolo, int marco temporal) en lugar de Bars

https://docs.mql4.com/ru/series/iBars


el problema parecía fácil de resolver.

sustituir todas las barras poriBars (medianteint iB; iB=iBars("EUROUSD",PERIOD_M5);) No hay errores.

pero no hay gráfico. Aparece una ventana vacía.

Está claro que falta algo.

¿Puede el indicador dibujar 12 líneas en una barra? Porque hay 12 pentámeros a la 1 y cada uno dibuja su propia línea.

 
lottamer:


El problema parecía tener fácil solución.

sustituir todas las barras poriBars (medianteint iB; iB=iBars("EUROUSD",PERIOD_M5);) sin errores.

Pero no hay gráfico. Aparece una ventana vacía.

Está claro que falta algo.

¿Puede el indicador dibujar 12 líneas en una barra? Por ejemplo, hay 12 pentámeros a la 1 y cada uno dibuja su propia línea.


Lo mismo ocurre con Close - iClose, Open - iOpen, Time - iTime Volume - iVolume, etc.

El indicador puede dibujar hasta 8 líneas de 0 a 7 https://docs.mql4.com/ru/customind/indicatorbuffers.

Razón de la queja: