[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 100

 

Chers professionnels, veuillez me conseiller sur cette question :

J'ai un tableau de chaînes de caractères unidimensionnel écrit précédemment dans un fichier texte.

EURUSD 1654.31

GBPUSD -1654.61

USDCAD 110.98

USDJPY 1180.17

Supposons que le bénéfice total de USDCAD ait changé et que je doive remplacer la 3ème ligne par "USDCAD 115.64".

Je lis ces données comme un tableau de chaînes à une dimension, mais je ne peux pas remplacer seulement cet élément dans le fichier texte (quelqu'un peut-il écrire une fonction ?).

Ou vaut-il mieux ne pas s'embêter et écraser tout le tableau ?

J'ai juste des données provenant d'EAs qui se tiennent sur différentes paires - chaque paire a une chaîne différente - il serait bien sûr préférable de ne changer qu'un seul élément probablement.

 

Salut à tous ! !! Aide à la compréhension de l'exemple de l'HELPA

//--------------------------------------------------------------------
//obviousexpert.mq4
// Destiné à être utilisé comme exemple dans le tutoriel MQL4.
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Book, 2007"
#lien de propriété "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables.mqh> //Description des variables
#include <Check.mqh> // Vérification de la légalité du programme.
#include <Terminal.mqh> // Comptabilité des commandes
#include <Events.mqh> // Suivi des événements, mis à jour.
#include <Inform.mqh> // Fonction d'information
#include <Trade.mqh> // Fonction de commerce
#include <Open_Ord.mqh> // Ouverture d'une seule commande d'un type spécifié.
#include <Close_All.mqh> // Fermeture de tous les ordres d'un type spécifié.
#include <Tral_Stop.mqh> // Modification du StopLoss de tous les ordres d'un type spécifié.
#include <Lot.mqh> // Calcul du nombre de lots
#include <Criterion.mqh> // Critères commerciaux
#include <Errors.mqh> // Fonction de gestion des erreurs.
//--------------------------------------------------------------- 4 --
int init() // Fonction spéciale init
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//dist. min.
Terminal() ; // Fonction de commande
return ; // Sortie de init()
}
//--------------------------------------------------------------- 5 --
int start() // Démarrage de la fonction spéciale
{
if(Check()==false) // Si les conditions d'utilisation.
return ; // ...ne sont pas atteints, quittez.
PlaySound("tick.wav") ; // À chaque tic-tac
Terminal() ; // Fonction de comptabilisation des commandes
Events() ; // Informations sur les événements
Trade(Criterion()) ; // Fonction de commerce
Inform(0) ; // Pour recolorer les objets
return ; // Exit()
}
//--------------------------------------------------------------- 6 --
int deinit() // Fonction spéciale deinit()
{
Inform(-1) ; // Pour supprimer les objets
return ; // Quitter deinit()
}
//--------------------------------------------------------------- 7 --

2) Seulement dans l'emplacement de stockage ? ou dans la conception du code également ?

Les questions sont les suivantes : 1) Quelle est la différence entre les fichiers d'inclusion (#include<...> et #include "..."), 3) Et quelle est la différence entre les fonctions importées (#import) et la directive #include ?

L'exemple de HELPA de usualexpert.mq4 illustre l'Expert Advisor, qui a été construit sur les fichiers include, à en juger par les crochets <> dans son répertoire #include.

Questions : Le fichier #include <Variables.mqh> est inclus // Une description des variables, lorsqu'elles sont créées selon l'exemple :

//--------------------------------------------------------------------
// Variables.mqh
// Destiné à être utilisé comme exemple dans le tutoriel MQL4.
//--------------------------------------------------------------- 1 --
// Description des variables globales
extern double Lots =0.0 ; // Nombre de lots
extern int Percent =0 ; // Pourcentage des fonds alloués
extern int StopLoss =100 ; // StopLoss pour les nouveaux ordres (points)
extern int TakeProfit =40 ; // TakeProfit pour les nouveaux ordres (points)
extern inttern TralingStop=100 ; // TralingStop pour les ordres de marché (points)
//--------------------------------------------------------------- 2 --
int
Niveau_nouveau, // Nouvelle valeur de la distance minimale
Level_old, // Valeur précédente de la distance minimale
Mas_Tip[6] ; // Tableau des types de commande
// [] type d'ordres : 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//--------------------------------------------------------------- 3 --
double
Lots_New, // Nombre de lots pour les nouvelles commandes
Mas_Ord_New[31][9], // Tableau des commandes en cours .
Mas_Ord_Old[31][9] ; // .
// indice 1 = numéro de commande
// [][0] n'est pas défini
// [][1] prix de l'ordre ouvert (valeur absolue)
// [][2] Ordre StopLoss (valeur absolue)
// [][3] Ordre TakeProfit (valeur du taux abs.)
// [][4] numéro de commande
// [][5] nombre de lots de l'ordre. (taux abs.)
// [][6] Type de commande 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] numéro magique de la commande
// [][8] 0/1
//--------------------------------------------------------------- 4 --

La compilation donne une erreur -- '\end_of_program' - no function defined qu'est-ce que cela signifie et dois-je ajouter quelque chose à la fin de cet exemple ?

Et les fichiers inclus doivent-ils ressembler à ceci ou doivent-ils être ajoutés à l'en-tête ?

#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#lien de propriété "http://www.metaquotes.net/"
#bibliothèque de propriété
//+------------------------------------------------------------------+
//| retourner la description de l'erreur |
//+------------------------------------------------------------------+

Par exemple, dans le cadre de ( usualexpert.mq4 // destiné à être utilisé comme exemple dans le tutoriel MQL4. ) Il y a #include <Check.mqh> // Vérification de la légitimité des programmes utilisés. Sans ce chapeau, il génère une erreur (Start function not found and cannot be run). Tout va bien ?

Ou bien, les fichiers d'inclusion ne contiennent que des descriptions de fonctions personnalisées situées dans la bibliothèque de fonctions à l'adresse (bibliothèques). S'il existe déjà dans le fichier du conseiller expert ?

 
Las-tochka:

Salut à tous ! !! Aidez-moi à comprendre un exemple de HELPA

//--------------------------------------------------------------------
// usualexpert.mq4
// Conçu pour être utilisé comme exemple dans le tutoriel MQL4.
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Book, 2007"
#property link "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables.mqh> //Description des variables
#include <Check.mqh> // Vérifier la légalité de l'utilisation du programme
#include <Terminal.mqh> // Comptabilité des commandes
#include <Events.mqh> // Fonction de suivi des événements, mise à jour
#include <Inform.mqh> // Fonction d'information
#include <Trade.mqh> // Fonction de négociation
#include <Open_Ord.mqh> // Ouverture d'un seul ordre d'un type spécifié
#include <Close_All.mqh> // Fermeture de tous les ordres d'un type spécifié
#include <Tral_Stop.mqh> // Modification du StopLoss de tous les ordres d'un type spécifié
#include <Lot.mqh> // Calcul du nombre de lots
#include <Criterion.mqh> // Critères de négociation
#include <Errors.mqh> // Fonction de gestion des erreurs.
//--------------------------------------------------------------- 4 --
int init() // Fonction spéciale init
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );// Distance minimale.
Terminal() ; // Fonction de comptage des ordres
return ; // Sortie init()
}
//--------------------------------------------------------------- 5 --
int start() // Fonction spéciale start
{
if(Check()==false) // Si conditions d'utilisation.
return ; // ..ne sont pas satisfaits, quitter
PlaySound("tick.wav") ; // À chaque tick
Terminal() ; // Fonction de comptabilisation des ordres
Events() ; // Informations sur les événements
Trade(Criterion()) ; // Fonction de négociation
Inform(0) ; // Pour recolorer les objets
return ; // Quitter start()
}
//--------------------------------------------------------------- 6 --
int deinit() // Fonction spécifique deinit() function deinit()
{
Inform(-1) ; // Pour supprimer des objets
return ; // Quitter deinit()
}
//--------------------------------------------------------------- 7 --

2) Seulement dans l'emplacement de stockage ? ou dans la conception du code également ?

Les questions sont les suivantes : 1) Quelle est la différence entre les fichiers d'inclusion (#include<...> et #include "..."), 3) Et quelle est la différence entre les fonctions importées (#import) et la directive #include ?

L'exemple de HELPA, en particulier, illustre l'Expert Advisor, qui a été construit sur la base des fichiers inclus, à en juger par les crochets <> dans son fichier #include.

Questions : Include\file #include <Variables.mqh> //Description des variables, lorsqu'elles sont créées par l'exemple :

//--------------------------------------------------------------------
// Variables.mqh
// Conçu pour être utilisé comme exemple dans le tutoriel MQL4.
//--------------------------------------------------------------- 1 --
// Description des variables globales
extern double Lots =0.0 ; // Nombre de lots
extern int Percent =0 ; // Pourcentage alloué
extern int StopLoss =100 ; // StopLoss pour les nouveaux ordres (pips)
extern int TakeProfit =40 ; // TakeProfit pour les nouveaux ordres (pips)
extern int TralingStop=100 ; // TralingStop pour les ordres de marché (pips)
//--------------------------------------------------------------- 2 --
int
Level_new, // Nouvelle valeur de distance minimale
Level_old, // Valeur de distance minimale précédente
Mas_Tip[6] ; // Tableau de type d'ordre
// [] type d'ordre 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//--------------------------------------------------------------- 3 --
double
Lots_New, // Nombre de lots pour les nouveaux ordres
Mas_Ord_New[31][9], // Tableau d'ordres actuel ..
Mas_Ord_Old[31][9] ; // ... et ancien
// 1er indice = numéro d'ordre
// [][0] ne peut pas être défini
// [][1] prix de l'ordre ouvert (taux abc)
// [][2] ordre StopLoss (taux abc)
// [][3] ordre TakeProfit (taux abc)
// [][4] numéro d'ordre
// [][5] nombre de lots d'un ordre (taux abc). (Taux Abc)
// [][6] Type de commande 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] ordre numéro magique
// [][8] 0/1 commentaire fait
//--------------------------------------------------------------- 4 --

La compilation donne une erreur -- '\end_of_program' - aucune fonction n'a défini ce que cela signifie et s'il est nécessaire d'ajouter quelque chose à la fin de cet exemple.

Et les fichiers d'inclusion doivent-ils ressembler à ceci ou doivent-ils être ajoutés à l'en-tête ?

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property library
//+------------------------------------------------------------------+
//| return error description |
//+------------------------------------------------------------------+

Par exemple, dans le cadre de ( usualexpert.mq4 // destiné à être utilisé comme exemple dans le tutoriel MQL4. ) Il y a #include <Check.mqh> // Vérification de la légalité des programmes utilisés. Sans ce chapeau, il génère une erreur (Start function not found and cannot be run). Tout va bien avec elle ?

Ou bien, les fichiers d'inclusion ne contiennent que les descriptions des fonctions personnalisées, qui se trouvent dans la bibliothèque de fonctions à l'adresse (bibliothèques). S'il existe déjà dans le fichier du conseiller-expert ?

Lisez bien l'exemple du manuel - tout y est... Sont incluses les sections de programme (nommées structurellement selon leur contenu, en fonction de la tâche effectuée par chacune d'elles) - elles n'ont pas besoin d'être compilées. Ils sont copiés par l'expert et les inclusions sont placées dans le fichier *.ex4 de manière séquentielle, en fonction de la manière dont vous les avez écrites dans le texte du programme. C'est pourquoi la description personnalisée #include <Variables.mqh> //Variables est la PREMIÈRE dans le bloc 3 du programme. Essayez de le déplacer à la fin de ce bloc et compilez le conseiller expert - voyez combien d'erreurs il y aura.
 
alsu:
.......

Une meilleure façon de calculer le mode est de construire une fonction de distribution empirique (à ne pas confondre avec la distribution de fréquence), puis de l'interpoler de linéaire par morceaux à lisse, et enfin de chercher le point de dérivation maximale. Un tel algorithme est exempt des inconvénients énumérés ci-dessus et fonctionne assez efficacement même avec des échantillons de petite taille. Au moins, j'ai dû résoudre la tâche consistant à trouver un mode pour des échantillons de 50-100 éléments avec un nombre comparable d'intervalles en utilisant MQL - et tout était OK. Le seul inconvénient est que la vitesse de calcul diminue généralement de manière significative lors de l'utilisation d'interpolations, bien sûr, si l'on veut la lisser qualitativement.

Alexey, merci beaucoup. .... Le principe général de cette fonction est clair pour moi))))
 
Bonjour, pourriez-vous me dire ce que signifie Comment(""), ce que la fonction produira dans ce cas ?
 
Chuma:
Bonjour, pourriez-vous me dire ce que signifie Comment(""), ce que la fonction produira dans ce cas ?
Une boîte avec le texte entre guillemets
 
Comment() affiche le texte non pas dans la boîte mais dans le coin supérieur gauche du graphique.
 
J'ai rencontré une divergence, il y a un indicateur qui fonctionne aux prix d'ouverture et il y a un EA où le TF qu'il trade est défini en utilisant les signaux de cet indicateur. J'ai défini 15 min dans l'EA et dans le testeur - en ouvrant les prix, j'obtiens quelques résultats. Mais si nous mettons par exemple 1 minute dans le testeur - aux prix ouverts le résultat n'est pas trop radicalement, mais change. Je ne comprends pas ce qui se passe. Il s'avère que le prix d'ouverture de la minute ne coïncide pas avec le prix d'ouverture de l'heure ? Ou est-ce une erreur du testeur ? Pouvez-vous me dire où le chien est enterré ?
 
moskitman:
la boîte avec le texte entre guillemets

Je voulais dire quand il n'y a que des guillemets entre parenthèses : Comment("")

 
Chuma:

Je voulais dire quand il n'y a que des guillemets entre les parenthèses : Comment("")

Efface les commentaires précédents.