MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 22

 
Renat:

Construire un.

Les applications 32 bits sur Windows 64 bits sont installées exclusivement dans Program Files (x86) - ce sont les exigences de compatibilité de Microsoft.

Les répertoires de données dans la zone Users/AppData ne sont plus des déchets, ni des recommandations de Microsoft (dont tous les développeurs se sont moqués pendant de nombreuses années), mais la dure vérité de la vie. Dans les systèmes d'exploitation récents, Microsoft a donné un coup de massue à tout le monde pour qu'il fonctionne correctement, parce qu'il n'y a pas d'autre moyen de faire face à l'UAC. Dans le marché de masse, c'est le seul moyen qui reste.

Pour forcer le terminal à stocker la plupart des données dans le répertoire local ou à travailler en mode portable/transportable (par exemple sur la flash), utilisez l'option /portable. Mais cela ne s'applique toujours pas au stockage de données générales non personnalisées dans Users/AppData.

Alors comment pouvez-vous expliquer que les anciennes versions, y compris la 509 actuelle, ne créent rien dans Users/AppData avec les paramètres que j'ai spécifiés ? Je veux dire exactement avec les paramètres que j'ai spécifiés.
 
Renat:

1. vous pouvez. nous allons refaire la fenêtre de la même manière que MT5

2. Regardez "File - Open data directory". C'est l'endroit où le chemin sera lu

3. mieux vaut utiliser un ensemble complet (plusieurs icônes dans un seul fichier) de 16x16 à 64x64 (128x128) fichiers .ico. Bientôt, les programmes seront affichés avec leurs icônes natives directement dans l'interface du système d'exploitation.

  1. Parfait
  2. J'ai regardé : D:\NewMT4\ Ne devrait-on pas dire D:\NewMT4\MQL4\ ? Et si ce n'est pas le cas, ce devrait être "\\NMQL4\\\Nfiles\NFindTwoFractals32x32.ico" ;? ???
  3. Existe-t-il un logiciel permettant de créer de tels ensembles ? Je n'ai pas fait de graphiques depuis 300 ans.
(gloussements) : Merci.
 
artmedia70:
  1. Fin
  2. J'ai regardé : D:\NewMT4\ Ne devrait-on pas dire D:\NewMT4\MQL4\ ? Et si ce n'est pas le cas, il devrait y avoir "\\NMQL4\\\Nfiles\NFindTwoFractals32x32.ico" dans le chemin ;? ???
  3. Existe-t-il un logiciel pour créer ces kits ? Je n'ai pas fait de graphiques depuis 300 ans.
Merci.

2. le terminal sait que le suiveur MQL4 est ajouté automatiquement. Donc c'est écrit correctement avec les \files.

3. regardez autour de vous - il existe toutes sortes de versions d'ICON Studio, y compris des versions gratuites.

 
Renat:

2. le terminal sait que le suiveur MQL4 est ajouté automatiquement. Donc c'est écrit correctement avec les \files.

3. faites des recherches - il existe toutes sortes de versions d'ICON Studio, y compris des versions gratuites.


Merci.
 
Barbarian:
Alors comment pouvez-vous expliquer que les anciennes versions, y compris la 509 actuelle, ne créent rien dans Users/AppData avec les paramètres que j'ai spécifiés ? Je veux dire exactement avec les paramètres que j'ai mentionnés.

La raison en est que quelqu'un ne s'est pas soucié des exigences de Microsoft et a travaillé contre le système de gestion des droits pendant de nombreuses années. Nous corrigeons les problèmes accumulés de MT4.

Actuellement, si vous voulez vendre en masse tout ce qui écrit activement dans leurs répertoires, vous devez penser directement à un UAC strict et à des droits d'utilisateur restreints. Et n'oubliez pas la base d'installation de millions d'ordinateurs.

 

Renat, pourriez-vous publier de courtes annonces avec une liste des changements dans les nouvelles constructions ? Pour que nous n'ayons pas à tester aveuglément.

Ces fonctionnalités seront-elles mises en œuvre ? Devons-nous simplement attendre ?

'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:


Tout ce que j'essaie de faire, c'est de rétablir la fonctionnalité de mon indicateur MT4 509 (il est fonctionnel à 90 % maintenant, la seule chose qui me manque est la possibilité de passer au futur).

Mais pour voir le futur, vous devez déplacer la série temporelle vers le passé.

On vous a dit d'utiliser SetIndexShift(0, 1) ;

Vous n'avez pas besoin de copier quoi que ce soit.

Et la description dans l'infobulle l'ajustera.

 
komposter:

Renat, pourriez-vous publier de courtes annonces avec une liste des changements dans les nouvelles constructions ? Pour que nous n'ayons pas à tester aveuglément.

Ces fonctionnalités seront-elles mises en œuvre ? Devons-nous simplement attendre ?

Je vais ajouter "SymbolSelect" à la liste. +1 au souhait de descriptions de nouvelles constructions.
 
komposter:

Renat, pourriez-vous publier de courtes annonces avec une liste des changements dans les nouvelles constructions ? Pour que nous n'ayons pas à tester aveuglément.

Ces fonctionnalités seront-elles mises en œuvre ? Devons-nous simplement attendre ?

'ChartGetInteger' - function not defined

'ChartWindowFind' - function not defined

'AccountInfoString' - function not defined

'TimeTradeServer' - function not defined

'ExpertRemove' - function not defined

'AccountInfoInteger' - function not defined

Ils seront mis en œuvre.

Nous préparerons une liste de changements la semaine prochaine, lorsque nous commencerons à impliquer les commerçants dans les tests de masse. Pour l'instant, nous effectuons des tests sans annonces et uniquement sur le forum russe.

 
komposter:

On vous a dit d'utiliser SetIndexShift(0, 1);

Vous n'avez pas besoin de copier quoi que ce soit.

Et la description dans l'infobulle l'ajustera.


décrit mon idée (balancer le graphique, mettre le présent dans le passé tout en imaginant mon futur), si ce n'est pas très clair, hélas.........

Je serais heureux si vous me suggériez une autre façon de dessiner ce dont j'ai besoin sur les barres moins avec des valeurs adéquates sur les barres plus.

(Je déplaçais le présent dans le passé, puis je le complétais avec ma vision du futur, et tout cela à nouveau, mais dans le futur).

En ce qui concerne ArrayCopy (llow,Low) ; et ArrayCopySeries (llow, 1) ; l'idée initiale d'un mauvais fonctionnement de ArrayCopy (llow,Low) est apparue à cause des mauvaises valeurs retournées de certaines de ses fonctions en comparaison avec l'utilisation de ArrayCopySeries (llow, 1). Mais lorsque j'ai exécuté une boucle pour rechercher les différences entre les valeurs des deux tableaux obtenues par ArrayCopy (llow,Low) et ArrayCopySeries (llow, 1), je n'ai obtenu que 0 (les membres du tableau sont absolument égaux) pour toutes les précisions de comptage possibles. Parfois, des valeurs intéressantes apparaissaient, par exemple Low = 1,3514000000000000000001 ; mais la différence était toujours de 0. J'ai décidé d'analyser ma fonction ligne par ligne, là où je passe des tableaux pour obtenir les valeurs du tampon indicateur.

J'ai obtenu des données intéressantes pour ArrayMaximum. Code :

 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;
 }

Le résultat, une implémentation différente de ArrayMaximum pour deux tableaux.

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 conclusion : les valeurs à rechercher dans ArrayMaximum() dans les tableaux obtenus avec ArrayCopy (llow, low) et ArrayCopySeries (llow, 1) sont différentes.

Pour ArrayCopy (llow2,Low) , les barres ArrayMaximum() vont dans la direction avant :

Pour ArrayMaximum (llow2,5,5), les barres 5, 4, 3, 2, 1 seront examinées.

C'est ainsi que cela devrait être ? ????????????

Raison: