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 ?
Bonjour, j'ai besoin d'aide pour un humanitaire (moi) qui essaie de faire un indicateur avec la moindre connaissance de comment le faire))) mais avoir une compréhension de ce qui devrait apparaître)). Donc : 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:
EUR;TF;1.192;1.1733
EUR;TN;1.2037;1.1663
EUR;AB1;1.1906499615;1.1797479615
CHF;TF;1.0362;1.0183
CHF;TN;1.0479;1.0121
CHF;AB1;1.03484132734247;1.02549513556164
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:
Переменная________Значение
Funtik________//--Общие настройки--//
Dessiner TF________true
Dessiner TN _______true
Dessiner AB1______true
Dessiner AB2______false
Couleur de la légende du texte _______Black
Шрифт подписей__________________Arial
Taille de la police pour les légendes de texte ________9
Couleur de la ligne TF ______________
Type de ligne TF _______________
TN Couleur de ligne ______________
Type de ligne TN _______________
Couleur de la bande AB1__________
Couleur de la bande AB2__________
Fréquence des fichiers en secondes ______2
Nom du fichier ___________5.csv
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 ! !!!!!!!
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
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 ;) )
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Куда исчезли "Сообщения"? У меня в профиле исчез раздел...
Veuillez m'indiquer comment corriger l'erreur de quantité de lots invalides pour la fonction FreeMarginCheck dans l'EA, lorsque la valeur du volume (lot) est accidentellement négative. Pour avoir un message sur le mauvais lot, sans message d'erreur, dans le testeur
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.
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 }
STARIJ: 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 }
Merci, mais ça ne compile toujours pas ! Même si tu mets une accolade à la fin, ce que j'ai remarqué !!!!.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
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
}