Comment coder ? - page 333

 

Bonjour Mladen,

Je l'ai fait,

mais lorsqu'il est placé dans MT4,

rien n'apparaît dans la sous-fenêtre,

S'il vous plaît regardez dans ce code source.

Merci.

Dossiers :
 
luffy:
HI Mladen,

Je l'ai fait,

mais lorsqu'il est placé dans MT4,

rien n'apparaît dans la sous-fenêtre,

Veuillez examiner ce code source.

Merci.

luffy

Deux choses :

1. Ajouter if (R!=0) avant le S = (Q/ R) ;

2. Vous bouclez sur toutes les barres mais vos tableaux ne contiennent que 14 éléments. Si vous voulez utiliser les tableaux comme des tampons (ayant le même nombre d'éléments que de barres sur le graphique), alors la taille des tableaux doit toujours être vérifiée et redimensionnée en conséquence). Vous pouvez consulter cet indicateur : https://www.mql5.com/en/forum/174961/page22 (la fonction iHull()) pour voir comment les tableaux doivent être utilisés dans des cas comme celui-ci.

 

S'il vous plaît, faites en sorte qu'il dessine des lignes dans la sous-fenêtre.

J'ai essayé et je n'arrive toujours pas à dessiner les lignes.

Merci de m'aider.

 
luffy:
S'il vous plaît, que quelqu'un fasse cela pour dessiner des lignes dans la sous-fenêtre.

J'ai essayé et je n'arrive toujours pas à faire dessiner les lignes.

Merci de m'aider.

luffy

Puisque vous essayez d'utiliser ces tableaux comme des tampons, déclarez-les tous dans la section init comme des tampons (il n'y a plus de limite de 8 tampons dans le nouveau metatrader 4) et cela fonctionnera.

C'est de loin la solution la plus simple

 

Existe-t-il un moyen de restreindre le code pour qu'il ne fonctionne que sur un seul ordinateur ?

 
apprentice coder:
Existe-t-il un moyen de restreindre le code pour qu'il ne fonctionne que sur un seul ordinateur ?

Vous pourriez le faire en vous limitant au numéro de série de la paritition C : (en utilisant la fonction API Windows GetVolumeInformation())

Le format de la fonction est le suivant :

BOOL WINAPI GetVolumeInformation(

_In_opt_ LPCTSTR lpRootPathName,

_Out_opt_ LPTSTR lpVolumeNameBuffer,

_In_ DWORD nVolumeNameSize,

_Out_opt_ LPDWORD lpVolumeSerialNumber,

_Out_opt_ LPDWORD lpMaximumComponentLength,

_Out_opt_ LPDWORD lpFileSystemFlags,

_Out_opt_ LPTSTR lpFileSystemNameBuffer,

_In_ DWORD nFileSystemNameSize

) ;

Il se trouve dans kernel32.dll. Mais si l'utilisateur formate sa partition C :, vous devrez également mettre à jour le code.

 
mladen:
Vous pourriez le faire en vous limitant au numéro de série de la paritition C : (en utilisant la fonction API Windows GetVolumeInformation())

Le format de la fonction est le suivant :

Elle se trouve dans kernel32.dll. Mais si l'utilisateur formate sa partition C :, vous devrez également mettre à jour le code.

Merci

Je vais faire un essai

 
mladen:
Vous pourriez faire cela en limitant au numéro de série de la partition C : (en utilisant la fonction API Windows GetVolumeInformation())

Le format de la fonction est le suivant :

Elle se trouve dans kernel32.dll. Mais si l'utilisateur formate sa partition C :, vous devrez également mettre à jour le code.

Malheureusement cette fonction ne suffit pas à elle seule. En plus je peux voir quelques clients avec des séries de lecteurs identiques, la pire situation est avec les émulateurs Windows fonctionnant sur Macs et linux, qui retournent toujours zéro pour cette série. Beaucoup d'utilisateurs les utilisent.

 
Ovo:
Malheureusement, cette fonction ne suffit pas à elle seule. En outre, je peux voir quelques clients avec une série de lecteur identique, la pire situation est avec les émulateurs Windows fonctionnant sur Macs et linux, qui renvoient toujours zéro pour cette série. Beaucoup d'utilisateurs les utilisent.

Je ne connaissais pas les émulateurs

Ensuite, le dongle semble être une solution, mais j'ai vu trop de dongles fissurés, alors ...

 
mladen:
Je ne connaissais pas les émulateurs Alors le dongle semble être une solution, mais j'ai vu trop de dongles fissurés, donc ...

En fait, il existe plusieurs émulateurs, et seuls certains d'entre eux renvoient zéro (par exemple, wine).

J'ai vérifié mes statistiques - 290 des 9000 enregistrements de la base de données MT4 avaient un numéro de série égal à zéro, soit environ 3%. En général, les émulateurs n'implémentent pas correctement les fonctions liées au matériel, et certains appels gèlent même le terminal lorsqu'ils sont invoqués. Je ne suis donc pas sûr que le dongle puisse résoudre ce problème de manière fiable. Jusqu'à présent, je n'ai pas trouvé de solution qui fonctionnerait sur tous les émulateurs.