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

 
Vitaly Muzichenko:

Il est sans dimension tel quel, mais il est bidimensionnel, et vous pouvez mettre un nombre sans dimension d'éléments dans deux dimensions.

Que faites-vous de toute façon, avez-vous une idée de ce que devrait être le résultat du travail que vous faites ? Ou bien vous inventez la logique au fur et à mesure ?

Dans l'exemple actuel, je veux pouvoir placer un nombre infini d'ordres avec n'importe quel lot afin d'éviter de dépasser les limites spécifiées.

Bien sûr, nous connaissons les limites, mais j'aimerais le faire de cette façon.

Je pars du fait que si vous spécifiez un élément entre parenthèses, ce sera le dernier.

Donc, j'ai eu ce genre de conneries. Je m'attendais à un ordre par ordre... Je veux que le résultat (lot d'un tel ordre *coefficient) soit ajouté à l'ordre au lieu du lot.

et la question de la récupération des données à partir de là

Je veux obtenir le résultat suivant tel que je le vois

MonRéseau[0][0.01]

MonRéseau[1][0.01]

MonRéseau[2][0.02]

etc...


void CalcOrders()

{

int CountOrders=0;

double MyArray [99][99];

for(i=OrdersTotal()-1; i>=0; i--)

     {

      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())

         && (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))

         CountOrders++;

         ArrayResize(MyArray,CountOrders+1);

         MyArray[CountOrders][0]=OrderLots();

         Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);

     }

}    

2017.01.13 12:51:14.372 2017.01.05 16:30:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01

 
trader781:

Dans l'exemple actuel, je veux pouvoir placer un nombre infini d'ordres avec des lots quelconques afin de ne pas dépasser ses limites.

Bien sûr, nous connaissons tous les limites, mais je veux le faire de cette façon.

Je pars du fait que si vous spécifiez un élément entre parenthèses, ce sera le dernier.

Donc, j'ai eu ce genre de conneries. Je m'attendais à un ordre par ordre... Je veux que le résultat(lot d'un tel ordre *coefficient) soit ajouté à l'ordre au lieu du lot.

Et la question de la récupération des données à partir de là



void CalcOrders()

{

int CountOrders=0;

double MyArray [99][99];

for(i=OrdersTotal()-1; i>=0; i--)

     {

      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())

         && (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))

         CountOrders++;

         ArrayResize(MyArray,CountOrders+1);

         MyArray[CountOrders][0]=OrderLots();

         Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);

     }

}    

2017.01.13 12:51:14.372 2017.01.05 16:30:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01


Pouvez-vous expliquer ce dont vous avez besoin ?

Stockons tout dans un tableau, et ensuite ?

Puis on fait tourner le tableau et on cherche la position dont vous avez besoin, quoi ?

Lot quelle position, y a-t-il une définition, ou à l'œil, j'ai regardé l'onglet Commerce, oui besoin 6, c'est ça ?
 
Alekseu Fedotov:

Pouvez-vous expliquer ce dont vous avez besoin ?

On met tout dans un tableau, et ensuite ?

On va faire tourner le tableau, chercher la position dont vous avez besoin, quoi ?

Je regarde l'onglet "Commerce", je sais que j'ai besoin de 6, non ?

OnTick()

si la condition pour ouvrir une position est correcte

{position ouverte}

si la condition d'ouverture de la position est correcte

{remplir la même quantité }

Si le dernier lot est en position 2 - ajoutons le lot *1.5 (la fonction trouver le dernier retournera le deuxième) et ce sera le troisième.

si c'est le quatrième ordre

top up {lot zéro+lot un}

s'il s'agit de la cinquième commande

fill {lot 1 position +lot 3}

Il existe actuellement une définition de la dernière position dans la liste

Nous devons l'écrire dans un tableau et sortir le bon en une seule fois parce que je ne vois pas d'autre moyen de mise en œuvre pour le moment, donc le nombre d'ordres et de positions devrait théoriquement être infini.

Je vous ai montré ce que j'ai fait dans la fonction, je ne sais pas si c'est correct ou non.

J'ai besoin d'extraire les données et de savoir à l'avance quel ordre peut être ouvert sur mon compte.

Je ne prétends pas que le système fonctionne, la mise en œuvre est importante.

 
Bon moment. Pouvez-vous nous conseiller si vous voulez tester un EA et qu'il utilise des commandes pour écrire et lire des bits et un fichier csv, comme nous savons qu'il y a des erreurs dans le mode test pour utiliser des opérations avec ces fichiers.
 
Top2n:
Bon après-midi. Pouvez-vous me conseiller si je dois tester un EA et qu'il utilise des commandes pour écrire et lire des bits et un fichier csv, comme nous savons que des erreurs se produisent en mode test lors de l'utilisation d'opérations sur des fichiers.

Aucune erreur ne se produit. N'écrit que dans un dossier différent si l'indicateur n'est pas utilisé.

FICHIER_COMMON

4096

Emplacement du fichier dans le dossier partagé de tous les terminaux clients \Terminal\Common\Files. Cet indicateur est utilisé lors de l'ouverture de fichiers (FileOpen()), la copie de fichiers (FileCopy(), FileMove()) et la vérification de l'existence de fichiers (FileIsExist()).

 
Alexey Viktorov:

Aucune erreur ne s'est produite. N'écrit que dans un dossier différent si l'indicateur n'est pas utilisé.

FICHIER_COMMON

4096

Emplacement du fichier dans le dossier partagé de tous les terminaux clients \Terminal\Common\Files. Cet indicateur est utilisé lors de l'ouverture de fichiers (FileOpen()), la copie de fichiers (FileCopy(), FileMove()) et la vérification de l'existence de fichiers (FileIsExist()).

Eh bien, j'utilise FileOpen()

input string InpFileName="data.bin";
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+InpFileName;

C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files

5004:ERR_FILE_CANNOT_OPEN = Erreur de fichier ouvert

 
Top2n:

Eh bien, j'utilise FileOpen()

input string InpFileName="data.bin";
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+ InpFileName;

C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files

5004:ERR_FILE_CANNOT_OPEN = Erreur d'ouverture de fichier

FileOpen() n'est pas un drapeau... L'indicateur est FILE_COMMON.

Si vous ne voulez pas écrire dans un dossier séparé, vous n'avez pas besoin de le spécifier comme une chaîne vide dans le chemin. Les éléments inutiles sont surlignés en jaune.


 
Alexey Viktorov:

FileOpen() n'est pas un drapeau... L'indicateur est FILE_COMMON.

Si vous ne voulez pas écrire dans un dossier séparé, vous n'avez pas besoin de le spécifier comme une chaîne vide dans le chemin. Les éléments inutiles sont surlignés en jaune.


Il y a un contact merci
 
Bonjour !
Pouvez-vous me dire où je peux trouver des informations sur la propriété #property strict ?
 
Leo59:
Bonjour !
Pouvez-vous me dire où je peux trouver des informations sur la propriété #property strict ?
Par exemple ici https://docs.mql4.com/ru/basis/preprosessor/compilation
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
  • docs.mql4.com
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
Raison: