Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1176

 
Alexey Belyakov:

https://www.mql5.com/en/code/23479 Celui-ci ne fonctionne pas.

J'ai essayé, mais j'ai un hic dans le code, je ne pense pas que quelqu'un veuille aller dans mes gribouillages, je préfère le refaire.


Alors voilà :

datetime some_time=TimeCurrent();
extern string Symbol3 = ""; //Инструмент (""текущий по умолчанию)
extern double P=5;       //Таймфрейм


int start()
{
int  raznV;
int percV;
int SD=5; // переменная для поиска разницы объёма
int sig;

double VAL2=MathAbs(iVolume(NULL,P,2));  //Т.Объём
double VAL1=MathAbs(iVolume(NULL,P,1));


raznV =MathAbs(iVolume(NULL,P,2)-iVolume(NULL,P,1));  //Разница объёма
percV =MathRound(raznV/(VAL1*0.01)); // Разница в (%)

//Цикл сканирования последних свечей SD,на которых есть разница равная 50%.
for (int i=SD; i>=0; i--)
{
int  sig=(raznV[i])>50;


//Если  есть нужная разница, значение будет больше нуля.
if (sig>0)
{
Alert ("Сигнал");
}

if (SD>5)
{
ObjectDelete("signal4");
} 


return(0);

int sig=(raznV[i])>50 ; Voici le problème. Je ne sais pas comment le présenter d'une manière différente. Et vous devez détecter un écart d'au moins 50 % dans les bougies précédentes.

Votre code est aussi beau qu'un essai écrit par un élève de première année pas très studieux - sans vouloir vous offenser, au moins vous savez écrire des commentaires :)

J'ai particulièrement aiméraznV[i], vous venez de PineScript ? Allez, c'est un langage de programmation normal))

en rouge - erreurs importantes, en jaune - défauts

 
Bon après-midi. J'ai une question à propos d'un mouvement négatif sur un muving. Par conséquent, ouvrir une transaction à cette valeur ou la fermer ne fonctionne pas. Comment résoudre ce problème ?
 

Bonjour. Veuillez m'aider avec l'importation à partir de la dll. J'ai essayé d'importer des fonctions de trans2quik.dll.

#import "trans2quik.dll"
   int _TRANS2QUIK_CONNECT@16(string lpcstrConnectionParamsString, int& pnExtendedErrorCode[], string lpstrErrorMessage, int dwErrorMessageSize);
#import

Cela a fonctionné, la dll a renvoyé le code 0(TRANS2QUIK_SUCCESS). Lorsque j'ai essayé d'importer d'autres fonctions, le compilateur m'a donné une erreur à cause du nom long (je sais par le forum que plus de 31 caractères dans le nom de la fonction n'est pas autorisé). Comment puis-je importer des fonctions ? J'ai essayé de le faire par numéro de fonction, comme décrit ici (https://docs.microsoft.com/ru-ru/cpp/build/exporting-functions-from-a-dll-by-ordinal-rather-than-by-name?view=vs-2019), mais que je l'ai mal fait, ou le compilateur ne peut pas jurer par le numéro (écrit le nom attendu) Je comprends pour joindre une dll besoin d'un wrapper ? Ou est-il possible de modifier les noms de fonctions dans le fichier DLL lui-même ? Si c'est important, il y a des fichiers .h et .lib dans l'archive DLL.

 
Darirunu:
Bon après-midi. J'ai une question à propos d'un changement négatif de mutisme. Par conséquent, l'ouverture d'une transaction à cette valeur ou sa fermeture ne fonctionne pas. Comment puis-je résoudre ce problème ?

Pouvez-vous joindre un morceau de code ?

 
Est-il possible de modifier la vitesse d'essai de manière programmatique ?
 
Yevhenii Levchenko:
Est-il possible de modifier la vitesse d'essai de manière programmatique ?

vous pouvez

 
f1nik:

Bonjour. Veuillez m'aider avec l'importation à partir de la dll. J'ai essayé d'importer des fonctions de trans2quik.dll.

Cela a fonctionné, la dll a renvoyé le code 0(TRANS2QUIK_SUCCESS). Lorsque j'ai essayé d'importer d'autres fonctions, le compilateur m'a donné une erreur à cause du nom long (je sais par le forum que plus de 31 caractères dans le nom de la fonction n'est pas autorisé). Comment puis-je importer des fonctions ? J'ai essayé de le faire par numéro de fonction, comme décrit ici (https://docs.microsoft.com/ru-ru/cpp/build/exporting-functions-from-a-dll-by-ordinal-rather-than-by-name?view=vs-2019), mais que je l'ai mal fait, ou le compilateur ne peut pas jurer par le numéro (écrit le nom attendu) Je comprends pour joindre une dll besoin d'un wrapper ? Ou puis-je modifier les noms des fonctions dans la dll elle-même ? Si c'est important, l'archive avec la dll contient des fichiers .h et .lib.

Dans MQL, le numéro n'est pas possible.

 
Koldun Zloy:

Vous ne pouvez pas le faire dans MQL par numéro.

Merci. Il n'y a donc qu'un adaptateur de dll entre le terminal ettrans2quik.dll
 
f1nik:
Merci. Il n'y a donc qu'un adaptateur de dll entre le terminal ettrans2quik.dll

Avez-vous essayé de glisser une chaîne de caractères comme #define str "long long string" ou même comme deux chaînes de caractères via la fonction + ou string.

Après tout, Comment est également limité dans la longueur de la chaîne, mais les variables peuvent être poussées au point de ne pas tenir sur l'écran en quelques lignes.

 
Bonjour. Pouvez-vous suggérer un script ou une fonction permettant de calculer la taille du lot en fonction de la marge spécifiée pour le Forex, car tous les scripts calculent la marge sur la taille du lot. Il serait pratique d'ouvrir pour un certain montant fixe de fonds gratuits sur le dépôt, comme dans BOO.