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

 
Hay una pregunta sobre TimeLocal(), esta funcióndevuelve la hora local del ordenador donde se está ejecutando el terminal cliente. Al mismo tiempo TimeToStr convierte un valor que contiene el tiempo en segundos desde el 01.01.1970 .
Por ejemplo:


void init() {
   Print("Time_Start = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS) );
}

get:

2014.04
.11 15:05:50.031 2001.01.03 07:25 : Time_Start = 2001.01.03 07:25:00
¿Cómo convertir el formato de tiempo obtenido de
TimeLocal() a "2014.04.11 15:05:50"?

 
Por favor, dígame, esto puede parecer una pregunta inapropiada, pero ¿ha conocido alguna vez un Asesor Experto que opere por patrones de velas?
 
Profitov:
Por favor, dígame, esto puede parecer una pregunta inapropiada, pero ¿ha conocido alguna vez un Asesor Experto que opere por patrones de velas?

Sí, lo he hecho :) Estoy trabajando sólo en esta dirección. En general, te has equivocado de lugar. Si quieres aprender, tienes que preguntar.
 

Tengo la siguiente pregunta. Se trata, según entiendo, de la disposición del código antes de la compilación. Lo esencial es esto:

Tengo todas las bibliotecas, como resulta, escritas por separado. Cada biblioteca tiene su propio archivo de inclusión, que se incluye en el código del Asesor Experto o en otra biblioteca, si se quiere añadir una biblioteca. Aquí es lo mismo de siempre.

He escrito una biblioteca que es, como diría yo, básica, pero que también es muy utilizada. En general, algunas funciones de esta biblioteca son utilizadas por algunas bibliotecas y otras por otras. El archivo de cabecera de esta biblioteca tiene relativamente muchas variables globales. Me interesa este punto. Si enlazo esta biblioteca con otras diferentes, cada una de las cuales necesita sólo algunas funciones de esta biblioteca, ¿el enlazador optimizará de alguna manera el código? ¿O toda la biblioteca se añadirá a las bibliotecas donde la importé?

 
hoz:

Tengo una pregunta...

Parece que la pregunta ya se formuló hace unos meses. Sólo puedes obtener una respuesta normal de los desarrolladores, ya que los detalles y el lenguaje de la gestión de tareas sólo los conocen ellos. A continuación, mis especulaciones.

El mecanismo de carga dinámica de funciones de biblioteca - DLL, no implica la descarga dinámica de las mismas.

Cualquier función de la biblioteca de llamadas dinámicas se carga en el momento de referirse a ella (la función).

Si cargar una función implica cargar algún entorno(variables globales), entonces no veo otra solución sencilla que cargar toda la biblioteca.

Si una función de la biblioteca en la DLL llama a una función de otra biblioteca con las mismas características, esta última se cargará completamente.

Ahora viene la parte divertida.

Sólo los desarrolladores podrán responder: qué ocurre si se repite la secuencia anterior de llamadas a funciones.

Mi recomendación: no utilices nunca variables globales en funciones de biblioteca y no leas periódicos soviéticos en el desayuno.

 
tara:

La pregunta parece haberse formulado hace unos meses. Una respuesta normal sólo puede obtenerse de los desarrolladores, ya que los detalles y el lenguaje de la gestión de tareas sólo los conocen ellos. A continuación, mis especulaciones.

El mecanismo de carga dinámica de funciones de biblioteca - DLL, no implica la descarga dinámica de las mismas.

Cualquier función de la biblioteca de llamadas dinámicas se carga en el momento en que se hace referencia a ella (la función).

Si cargar una función implica cargar algún entorno (variables globales), entonces no veo otra solución sencilla que cargar toda la biblioteca.

Si una función de una biblioteca en una DLL llama a una función de otra biblioteca con las mismas características, esta última se cargará completamente.

Ahora viene la parte divertida.

Sólo los desarrolladores podrán responder: qué ocurre si se repite la secuencia anterior de llamadas a funciones.

Mi recomendación: no utilices nunca variables globales en funciones de biblioteca y no leas periódicos soviéticos en el desayuno.

Una biblioteca se descarga cuando el hilo que llamó a esa biblioteca termina, si no hay otro mecanismo para mantener la biblioteca. Por ejemplo, con un contador de llamadas.

Las variables globales son malvadas :-) Es mejor no usarlos nunca.

 

Buenas tardes,

Estoy probando los robots en el probador y obtengo un cierre aleatorio de posiciones seguido de su apertura, ¿qué significan estas entradas de intercambio en los resultados de la prueba? Se me está yendo toda la martingala al carajo por eso :)

107 2014.04.01 17:19 vender 54 1,23 1,38105 1,38204 1,37891 0,00 9664,86

108 2014.04.02 00:00 swap close 54 1.23 1.37934 1.38204 1.37891 210.33 9875.19

109 2014.04.02 00:00 swap open 55 1.23 1.37934 1.38204 1.37891 0.00 9875.19

110 2014.04.02 08:31 s/l 55 1,23 1,38204 1,38204 1,37891 -332,10 9543,09


 
Zhunko:

Una biblioteca se descarga cuando el hilo que llamó a esa biblioteca termina, si no hay otro mecanismo para mantener la biblioteca. Por ejemplo, con un contador de llamadas.

Las variables globales son malvadas :-) Es mejor no usarlos nunca.


Entonces, ¿cómo se gestionan estas cuestiones? Digamos que hay una lista de variables que se utilizan en diferentes bibliotecas. Por ejemplo, la variable bi_Err, que contiene el último error. Resulta que sin una variable global, tengo que declarar la misma variable en cada biblioteca y manejar el análogo de la variable bi_Err. Y hay muchas variables de este tipo. Así que la pregunta fue planteada porque resulta que sin utilizar variables globales en estos casos, en cada biblioteca, donde se utilizan tales variables, tengo que declarar estas variables (que ahora son globales), y los valores de estas variables a través de los parámetros de las funciones, que utilizan estas variables.

Resulta que en lugar de declarar estas variables globalmente una vez, tengo que declararlas en cada biblioteca por separado. Y esto no tiene realmente sentido.

 
hoz:

Se conocieron... los suyos :) Eso es más o menos todo lo que estoy goteando. En general, te has equivocado de dirección. Si quieres aprender, pregunta...

Gracias, eso es lo que quiero preguntar donde empezar a indagar en esta dirección ya que ustedes ya están trabajando en la misma dirección.
 
Profitov:

Gracias, eso es lo que quiero preguntar donde empezar a cavar en esta dirección ya que usted ya está trabajando en la misma dirección.

No entiendo muy bien el motivo de la pregunta. En cuanto al algoritmo, es tu elección. En cuanto al código, no hay nada complicado. Las velas tienen su precio máximo, mínimo, de apertura y de cierre. Y cuando tenga estos datos, podrá obtener cualquier otro dato del mercado, incluidos los niveles de Fibo, si es necesario.