MetaTrader 4 Build 529 beta liberado con nuevo compilador - página 22

 
Renat:

Construye uno.

Las aplicaciones de 32 bits en Windows de 64 bits se instalan exclusivamente en Archivos de programa (x86): son los requisitos de compatibilidad de Microsoft.

Los directorios de datos en el área de Users/AppData ya no son basura, y ya no son recomendaciones de Microsoft (que a todos los desarrolladores no les importó durante muchos años), sino la dura verdad de la vida. En los últimos sistemas operativos, Microsoft ha dado un mazazo a todo el mundo para que funcione correctamente, porque no hay otra forma de hacer frente al UAC. En el mercado de masas es la única forma que queda.

Para forzar al terminal a almacenar la mayor parte de los datos en el directorio local o a trabajar en modo portátil/transportable (por ejemplo, en flash), utilice la bandera /portable. Pero esto todavía no se aplica al almacenamiento de datos generales no personalizados en Users/AppData.

Entonces, ¿cómo se explica que las builds antiguas, incluida la actual 509, no creen nada en Users/AppData con los parámetros que he especificado? Quiero decir exactamente con los parámetros que he especificado.
 
Renat:

1. se puede. vamos a rehacer la ventana de la misma manera que MT5

2. Mira en "Archivo - Abrir directorio de datos". Aquí es donde se leerá la ruta de acceso

3. mejor utilizar el conjunto completo (varios iconos en un solo archivo) de 16x16 a 64x64 (128x128) archivos .ico. Pronto los programas se mostrarán con sus iconos nativos justo en la interfaz del sistema operativo.

  1. Perfecto
  2. Lo he buscado: D : \NNNuevaMT4\N-¿No debería ser D:\NNNuevaMT4\NMQL4\ ? Y si no lo es, debería ser "\\N-QL4\N-los archivos de la búsqueda de dos fractales32x32.ico";???
  3. ¿Existe algún programa informático para crear estos conjuntos? No he hecho gráficos en trescientos años.
(Gracias.
 
artmedia70:
  1. Fino
  2. Lo he buscado: D : \NNNuevaMT4\N-¿No debería ser D:\NNNuevaMT4\NMQL4\ ? Y si no es así, la ruta debería ser "\MQL4\files\FindTwoFractals32x32.ico";???
  3. ¿Existe algún software para crear estos kits? No he hecho ningún gráfico en trescientos años.
Gracias.

2. el terminal sabe que el seguidor MQL4 se añade automáticamente. Para que se escriba correctamente con \Narchivos

3. Mira a tu alrededor: hay todo tipo de versiones de ICON Studio, incluidas las gratuitas.

 
Renat:

2. el terminal sabe que el seguidor MQL4 se añade automáticamente. Para que se escriba correctamente con \Narchivos

3. Busca por ahí: hay todo tipo de versiones de ICON Studio, incluidas las gratuitas.


Gracias
 
Barbarian:
Entonces, ¿cómo se explica que las builds antiguas, incluida la actual 509, no creen nada en Users/AppData con los parámetros que he especificado? Me refiero exactamente a los parámetros que he mencionado.

La razón es que alguien no se preocupó por los requisitos de Microsoft y trabajó en contra del sistema de gestión de derechos durante muchos años. Estamos arreglando los problemas acumulados de MT4.

Por el momento, si quieres vender en masa cualquier cosa que escriba activamente en sus directorios, tienes que pensar directamente en un UAC estricto y en derechos de usuario restringidos. Y no hay que olvidar la base de instalación de millones de ordenadores.

 

Renat, ¿podría publicar anuncios breves con una lista de cambios en las nuevas construcciones? Para no tener que hacer pruebas a ciegas.

¿Se implementarán estas características? ¿Tenemos que esperar?

'ChartGetInteger' - function not defined

'ChartWindowFind' - function not defined

'AccountInfoString' - function not defined

'TimeTradeServer' - function not defined

'ExpertRemove' - function not defined

'AccountInfoInteger' - function not defined

 
ALXIMIKS:


Lo único que intento es devolver la funcionalidad a mi indicador MT4 509 (ahora es funcional en un 90%, lo único que echo en falta es la posibilidad de cambiar a futuro)

Pero para ver el futuro, hay que trasladar la serie temporal al pasado.

Se le ha dicho, utilice SetIndexShift(0, 1);

No es necesario copiar nada.

Y la descripción en el tooltip lo ajustará.

 
komposter:

Renat, ¿podría publicar anuncios breves con una lista de cambios en las nuevas construcciones? Para no tener que hacer pruebas a ciegas.

¿Se implementarán estas características? ¿Tenemos que esperar?

Añadiré "SymbolSelect" a la lista. +1 al deseo de las descripciones de las nuevas construcciones.
 
komposter:

Renat, ¿podría publicar anuncios breves con una lista de cambios en las nuevas construcciones? Para no tener que hacer pruebas a ciegas.

¿Se aplicarán estas características? ¿Tenemos que esperar?

'ChartGetInteger' - function not defined

'ChartWindowFind' - function not defined

'AccountInfoString' - function not defined

'TimeTradeServer' - function not defined

'ExpertRemove' - function not defined

'AccountInfoInteger' - function not defined

Se pondrán en práctica.

Prepararemos una lista de cambios la próxima semana, cuando empezaremos a involucrar a los comerciantes en las pruebas masivas. Por ahora, estamos realizando pruebas sin anuncios y sólo en el foro ruso.

 
komposter:

Se le ha dicho, utilice SetIndexShift(0, 1);

No es necesario copiar nada.

Y la descripción en el tooltip lo ajustará.


describió mi idea (balancear el gráfico, poniendo el presente en el pasado mientras se me ocurre el futuro), si no está muy claro, alas........

Me gustaría que me sugirieran otra forma de dibujar lo que necesito en las barras negativas con valores adecuados en las barras positivas.

(Estaba trasladando el presente al pasado, luego lo complementé con mi visión del futuro, y todo eso se trasladó de nuevo, pero al futuro).

En cuanto a ArrayCopy(llow,Low); y ArrayCopySeries ( llow, 1); la idea inicial sobre el trabajo erróneo de ArrayCopy (llow,Low) apareció debido a los valores devueltos erróneos de algunas de sus funciones en comparación con el uso de ArrayCopySeries (llow, 1). Pero cuando ejecuté un bucle de búsqueda de diferencias entre los valores de ambas matrices obtenidas por ArrayCopy(llow,Low) y ArrayCopySeries (llow, 1) sólo obtuve 0 (los miembros de la matriz son absolutamente iguales) para todas las variantes de la precisión del cálculo. A veces aparecían valores interesantes, por ejemplo, Low = 1.351400000000000000000000; pero la diferencia era siempre 0. Decidí analizar mi función línea por línea donde paso arrays para obtener valores del buffer indicador.

He obtenido datos interesantes para ArrayMaximum. Código:

 int z=      100;        // z- количество баров для проверки
     delt=     2;        // delt - количество баров для выборки в функции ArrayMaximum()
     poz_max1= 0;        // poz_max1- значение(номер бара) получаемое от функции ArrayMaximum() для массива получаемого от ArrayCopySeries (llow1,   1);
     poz_max2= 0;        // poz_max2- значение(номер бара) получаемое от функции ArrayMaximum() для массива получаемого от ArrayCopy       (llow2, Low);

 double llow1[];         //  массив получаемый от ArrayCopySeries (llow1,   1);
        llow2[];         //  массив получаемый от ArrayCopy       (llow2, Low);

 ArrayCopySeries (llow1,   1);  
 ArrayCopy       (llow2, Low);
 
 while(true){                                     // цикл проверки разности с динамической точностью
    for (int i =z;i>=0;i--){                      // цикл проверки разности с статической  точностью
       poz_max1=ArrayMaximum (llow1, delt, i);    // находим бар с максимальным значением среди delt баров начиная с i для массива получаемого от ArrayCopySeries (llow1,   1);
       poz_max2=ArrayMaximum (llow2, delt, i);    // находим бар с максимальным значением среди delt баров начиная с i для массива получаемого от ArrayCopy       (llow2, Low);
    
       if (poz_max1-poz_max2>x){                  // проверяем или одинаковые результаты мы получили (еще не выучил закарлюки которые нада для красивого принта)
          Print ("poz_max1[i]= ",poz_max1,"   poz_max2[i]= ",poz_max2,"   diff[i]= ",poz_max1-poz_max2, "    i=",i); 
          Print ("llow1[i]= ", llow1[i],"   llow2[i]= ",llow2[i],"    i=",i); 
          Print ("llow1[poz_max1]= ", llow1[poz_max1],"   llow2[poz_max1]= ",llow2[poz_max1],"    i=",i); 
          Print ("==========================================================");  
          brc=true;                               // флаг выхода 
       } 
    }
    if (brc==true||x<1 e-15) return(0);
    x/=10;
 }

El resultado, una implementación diferente de ArrayMaximum para dos matrices

2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: ==========================================================
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:        llow1[i]= 1.3297          llow2[i]= 1.3297    i=1
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: llow1[poz_max1]= 1.3512   llow2[poz_max1]= 1.3297    i=1
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:     poz_max1[i]= 2            poz_max2[i]= 1        diff[i]= 1    i=1
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: ==========================================================
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:        llow1[i]= 1.3501          llow2[i]= 1.3501     i=4
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: llow1[poz_max1]= 1.3512   llow2[poz_max1]= 1.3501    i=4
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4:     poz_max1[i]= 5            poz_max2[i]= 4         diff[i]= 1    i=4
2013.11.07 16:24:16     CopeSerrias EURUSD_t,H4: ==========================================================

La conclusión: los valores a buscar en ArrayMaximum() en matrices obtenidas con ArrayCopy( llow, low) y ArrayCopySeries (llow, 1) son diferentes.

Para ArrayCopy (llow2,Low) , las barras de ArrayMaximum() van en dirección hacia adelante:

Para ArrayMaximum (llow2,5,5), se mirarán las barras 5, 4, 3, 2, 1.

Así es como debería ser ?????????????