Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 490
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour !
J'ai un EA qui effectue certains calculs. Il utilise différentes opérations mathématiques, des tableaux, des boucles. Il enregistre le résultat dans un fichier. Il doit tout recommencer depuis le début après avoir effectué toutes les actions. Il a effectué tous les calculs une fois et se bloque pour la deuxième fois sans prendre aucune mesure. Pouvez-vous me dire s'il est nécessaire de mettre à zéro les variables, d'effacer les tableaux ou autre chose avant de commencer un nouveau calcul ?
Avez-vous essayé de fermer le fichier ?
Comment programmer une béquille/indicateur/script (comme un indicateur avec des onglets "à propos, général, paramètres d'entrée, couleurs, affichage") pour MT4 afin qu'il prenne les données du fichier .csv, comme le format dufichier source:
C'est-à-dire quel'indicateur a pris les données enregistrées d'un fichier et les a miscomme un segment de ligne (TF, TA) ou une bande colorée(EA) avec les paramètres de l'étendue égale à "un jour". (de la bordure à la bordure des séparateurs verticaux de jours sur МТ4), pour les lignes sélection de la couleur de la ligne, du type de ligne, sélection de la couleur du texte et de la taille du commentaire et substitution de la ligne de commentaire comme "TF - 1,192" la deuxième ligne "TF - 1,1733" qui sont reprises des lignes correspondantes du fichier. La fourchette est purement horizontale et à partir de la ligne EUR;TF;1.192;1,1733 il prend le premier chiffre pour un slot et le deuxième chiffre pour le deuxième comme début du slot 1.192 et fin du slot 1.192.
I l existe aussi des fourchettes, par exemple EA, le principe est le même du début à la fin de la journée mais le prix est différent et la ligne commence et se termine par CHF;AB1;1.03484132734247;1.02549513556164 le début est1.03484132734247 la fin de la fourchette1.02549513556164. Fonctionne lorsque vous allumez MT4 (comme un indicateur normal sur le gafik), chaque jour sur le graphique et ajoute toutes les données exactement pour le jour en cours une fois, toutes les lignes appliquées précédemment n'est pas supprimé du graphique et ne se duplique pas. Avec tout cela, il sélectionne et affiche tous les segments et les intervalles du jour, uniquement là où se trouve la fenêtre active et sur d'autres fenêtres actives (c'est-à-dire là où il fonctionne) (c'est-à-dire qu'il a ouvert une paire et l'indicateur a dessiné tous les segments et les intervalles du jour actuel et s'est arrêté, et ainsi de suite pour les paires).
Par exemple, comment doit se présenter l'onglet de l'indicateurParamètres d'entrée:
j'ai essayé de gribouiller moi-même, mais je n'ai rien obtenu alors que cela semblait facile (mais je suis un humanitaire, que pouvez-vous faire....) Aidez-moi s'il vous plaît, je me noie ! !!!!!!!
Bonjour !
Veuillez m'aider à trouver un bug dans le programme suivant ! !!
//+------------------------------------------------------------------+
//|test.mq4 |
//| Copyright 2018, MetaQuotes Software Corp.
//|https ://www.mql5.com ||
//+------------------------------------------------------------------+
#property copyright "365_MA"
#lien de propriété "https://www.mql5.com"
#propriété version "1.00"
#propriété stricte
extern Period_MA = 365 ; //Period MA 1
extern double Delta = 0.0010 ; //Distance à laquelle l'ordre peut être ouvert
string Symb ; //Nom de l'instrument commercial
//int Total ; //nombre de commandes
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert|
//+------------------------------------------------------------------+
int init()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation de l'expert|
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Obj_Label") ;
ObjectDelete("Obj_Label2") ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert|
//+------------------------------------------------------------------+
int start()
{
double prise = Bid ;//prix courant
double CurrMAValue = iMA(Symb, Period(),Period_MA, 0,Mode_EMA, PRICE_CLOSE, 0) ; //la valeur de la Moyenne Mobile
double Price2MA = prix - CurrMAValue ;//distance entre le MA et le prix
datetime NextClose = Time(0) + Period()*60*2 ;//il est temps de fermer
int MinutesToNextClose = (NextClose - TimeCurrent())/60 + 1 ; //temps de fermeture en minutes
//int err ;
//Rafraîchir les informations textuelles sur le graphique
ObjectSetText ("Obj_Label", "TF" + Period() + ", " + DoubleToStr(price, 4) + ", tick " + TimeToStr(TimeCurrent(), TIME_SECONDS) + ", O@" + TimeToStr(Time[0], TIME_MINUTES) + ", NC@" + TimeToStr(NextClose, TIME_MINUTES) + " (" + MinutesToNextClose + " min)", 10,
ObjectSetText ("Obj_Label2", "Delta " + DoubleToStr(Delta,4) + ", valeur MA " + DoubleToStr(CurrMAValue, 4) + ", distance à MA " + DoubleToStr(Price2MA, 4), 10, "Arial", DarkGreen ) ;
//considérer le prix et générer des alertes
si ((MathAbs(Price2MA) < Delta) && // si la distance à МА est inférieure à delta
(Price > CurrMAValue) && // et le prix est supérieur à la MA
(Open(0) > CurrMAValue+Delta) // et la bougie actuelle s'est ouverte plus haut que MA+Delta
(
Alerte ("Le prix s'approche de la MA par le haut ;)
)
si ((MathAbs(Price2MA) < Delta) && // si la distance à la MA est inférieure au delta
(prix < CurrMAValue) && // et le prix est inférieur à la MA
(Open(0) < CurrMAValue-Delta)) // et la bougie actuelle s'est ouverte sous le delta de la MA
(
Alerte ("Le prix s'est approché en dessous de la MA ;)
)
retour(0) ;
//+------------------------------------------------------------------+
Après la compilation, l'erreur suivante apparaît
Bonjour !
Veuillez m'aider à trouver un bug dans le programme suivant !!!
Après la compilation, l'erreur suivante.
Une accolade a été omise.
Je dois intégrer le zigzag dans mon indicateur (actuellement, il compte par poignée).
Le problème est que mon indicateur n'utilise pas OnCalculate().
Alors comment faire fonctionner le zigzag et comment obtenir les taux_total et prev_calculé ?
Le taux_total est le nombre de barres sur le graphique. Il est déterminé à l'aide de la fonction Bars.
prev_calculated - créez un analogue vous-même, déclarez-le globalement (ou statiquement) et écrivez-y le nombre de barres effectivement calculé dans l'itération actuelle. Cela signifie qu'après avoir calculé avec succès les valeurs de l'indicateur, nous devons enregistrer le nombre de barres actuelles dans celui-ci. Si les calculs n'aboutissent pas, il est préférable de l'annuler afin de recalculer les valeurs de l'indicateur pour chaque barre de l'historique lors de la prochaine itération.
Re : Alekseu Fedotov
Qu'est-ce qu'un corset, désolé
Re : Alekseu Fedotov
Qu'est-ce qu'un corset, désolé
Entre crochets, l'indice du tableau x[25].
void start()
{
Dans le bloc d'opérateurs entre accolades
}
Entre parenthèses, l'argument de la fonction sin(30)
entre crochets l'indice du tableau x[25]
void start()
{
Dans le bloc d'opérateurs entre accolades
}