Propuesta a la administración y a los vecinos - página 6

 
Фьючерсные объемы для МТ:

Me uno a la pregunta... ¿qué es lo que apesta del código en el primer puesto?

Sobre la OOP. No sólo hay mucho material, sino una tonelada. Pero no en este sitio. E incluso aquí hay algo. Algunas personas son demasiado perezosas para hacer una búsqueda y un estudio adecuados.

Al menos, sólo funciona en la fuente de alimentación en la que está instalado el Asesor Experto....
 
Vladimir Pastushak:
Al menos, sólo funciona en el símbolo en el que está instalado el Asesor Experto....

No, el código es bastante bueno. Es que quieres algo de él para lo que no está diseñado.

Y ese será el mayor problema de su propuesta en general.

Se pueden escribir muchas cosas de forma efectiva de muchas maneras. Diferentes personas evalúan tanto la tarea como la solución, y los criterios de su eficacia, de diferentes maneras.

Por ejemplo, en MT es más importante para mí tener un código sencillo que ser capaz de montarlo a partir de ladrillos universales.

 
Владимир:

No te preocupes. No es mi oficio.

Si te pido que me muestres un ejemplo de escritura de código, di "¿Cuánto tiempo queda hasta el final del plazo?" Estás 100% garantizado para mandarme ala mierda

o al departamento de trabajo. Eso es sólo para dar ejemplo.

Eso es lo que temen y no quieren hacer. Pero los dedos siempre están extendidos.

También se puede decir que la mayoría de los que piden que se les muestre el código son simplemente perezosos, y que les da pereza buscar en la base de código para encontrar el código "¿Cuánto tiempo queda hasta el final del plazo?

No es interesante revelarse ante los perezosos)

 

Владимир:

VOLDEMAR tiene razón. Los programadores son todos diferentes.

Artyom Trishkin 2015.05.31 11:27

//+----------------------------------------------------------------------------+
   datetime GetTimeLeft(string symbol, int timeframe) {return(60*timeframe+(iTime(symbol,timeframe,0)-TimeCurrent()));}
//+----------------------------------------------------------------------------+

Elijo a Artyom Trishkin.

Estoy de acuerdo, sería increíble si todos fueran iguales...

Y respeto a Artyom(artmedia70), pero en este caso no puedo elegirlo... Y la brevedad del código, aún no es la panacea.

El código conciso puede ser inseguro y potencialmente peligroso...

iTime

Devuelve el valor del tiempo de apertura de la barra (especificado por el parámetro shift) del gráfico correspondiente.

datetime  iTime(
   string           symbol,          // символ
   int              timeframe,       // период
   int              shift            // сдвиг
   );

Parámetros

símbolo

[Nombre del símbolo. NULL significa símbolo actual.

marco temporal

[en] Período. Puede ser uno de los valores de la enumeración ENUM_TIMEFRAMES. 0 significa el período del gráfico actual.

turno

[in] Índice del valor del marco temporal (desplazamiento relativo a la barra actual en el número de barras especificado).

Valor devuelto

Valor del tiempo de apertura de la barra (especificado por el parámetro shift) del gráfico correspondiente o 0 en caso de error. Es necesario llamar a GetLastError() para obtener más información sobre el error.


 

Foro de negociación, sistemas de negociación automatizados y pruebas de estrategias

Presentaciones a la administración y a los locales

Vladimir Pastushak, 2015.05.31 08:20

La pregunta para ti es qué código crees que es más correcto...

1

void depth_trend()
  {
//--- определение индекса на покупку
   double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0);
   index_rsi = 0;
   if(rsi>90.0) index_rsi=4;
   else if(rsi>80.0)
      index_rsi=3;
   else if(rsi>70.0)
      index_rsi=2;
   else if(rsi>60.0)
      index_rsi=1;
   else if(rsi<10.0)
      index_rsi=-4;
   else if(rsi<20.0)
      index_rsi=-3;
   else if(rsi<30.0)
      index_rsi=-2;
   else if(rsi<40.0)
      index_rsi=-1;
  }

2

int refresh_depth_trend()
  {
   int    index_rsi=0;
   double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,0),up=60,dw=40;
   for(int i=1; i<=4; i++,up+=10,dw-=10)
      index_rsi=rsi>up ? i : rsi<dw ?(i*-1):index_rsi;
   return index_rsi;
  }

3

int refresh_depth_trend()
  {
   return MathFloor( MathAbs( (rsi-50.0)/10.0 - (rsi-50.0)*0.0001 ) ) * ((rsi>50)-0.5)*2;
  }

-- no he comprobado la corrección de cada opción -- pero asumiendo que las tres opciones son idénticas según los resultados -- entonces cualquier opción es correcta

-- sobre la concisión del código -- ¿qué opción es la más fácil y rápida de editar? --¿Qué variante, al cabo del tiempo, es más fácil y rápida de tratar lógicamente y sin más explicaciones?

 
Владимир:

Elijo

Por eso los programadores se abanican los dedos :) Realmente no tienes mucho donde elegir y no lo has entendido. En mi archivo puedes ver un ejemplo de implementación con la visualización del tiempo restante en el gráfico por segundos. Y esta función actualizará el temporizador sólo en la siguiente recepción de ticks, cuando se actualice TimeCurrent() + su salida tiene que ser realizada de alguna manera, es decir, debemos sobreadaptarla con algún código breve. En mi ejemplo, todo el relleno con óptica de precisión ya está ahí, y TimeCurrent() se utiliza puramente para la sincronización con el servidor :)
 
Por cierto, TimeCurrent es una función muy delicada
 
Y MQL5 tieneTimeTradeServer - muy interesante, pero no he tenido la oportunidad de usarlo todavía
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Puzanov:
Por eso los programadores utilizan un abanico de dedos :) Realmente no tienes nada que elegir y no lo has entendido. En mi archivo hay un ejemplo de implementación con visualización por segundos del tiempo restante en el gráfico. Y esta función actualizará el temporizador sólo en la siguiente recepción de ticks, cuando se actualice TimeCurrent() + su salida tiene que ser realizada de alguna manera, es decir, debemos sobreadaptarla con algún código breve. En mi ejemplo, todo el relleno con óptica de precisión ya está ahí, y TimeCurrent() se utiliza puramente para la sincronización con el servidor :)

¿Por qué, te tropiezas con un "abanico" de mis dedos?

Te mostré cómo saber cuánto tiempo queda antes de que se abra la siguiente vela en cualquier marco de tiempo. Eso es todo. La pregunta era exactamente la misma.

 
Estimados programadores, ¿dónde puedo encontrar un método de programación en µl, en el que los programas establecidos en las columnas de exel se utilicen directamente y, por lo tanto, todo el programa de exel se "conduzca" al µl?
Razón de la queja: