Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1107
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
vous ne pouvez pas exécuter quelque chose de long dans OnInit - le terminal peut décharger le code
dans l'indicateur ne doit pas glisser
Oui, je suis bête... Peut-être, au lieu d'une boucle infinie dans OnInit, revenir de OnCalculate avec la même condition ? - il devrait y avoir un nombre défini lorsqu'il n'y a pas de connexion, soit -1, ou 0, ou EMPTY_VALUE
Salutations aux commerçants et aux programmeurs !
Pouvez-vous me dire s'il est possible d'utiliser une méthode non standard pour calculer la période de la MA(Moving Average) ? Je veux dire que la position de la MA sur la barre actuelle (zéro) ne sera pas déterminée par les 20 dernières barres (par exemple), mais par chaque 5m des 100 dernières, ou simplement en spécifiant le nombre de barres dans l'historique, à partir de la barre actuelle. Et, s'il existe une telle possibilité, est-il possible de spécifier la fonction directement dans le code de l'indicateur ?
Merci pour ces informations.
Bonjour. Comment afficher le symbole du triangle vers le bas et vers le haut ?
Voici le code
bool OutText(const string name="Label",
const string text="Label", // texte
const int x=0, // Coordonnée X
const int y=0, // coordonnée le long de l'axe Y
const color clr=clrYellow, // couleur
const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // méthode d'ancrage
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // coin du graphique pour l'ancre
const int font_size=12, // taille de la police
const string font="Arial", // police de caractères
const double angle=0.0, // pente du texte
const bool back=false, // back
const bool selection=false, //sélectionner pour le déplacement
const bool hidden=true, // caché dans la liste des objets
const long z_order=0,
const int sub_window=0, // nombre de sous-fenêtres
const long chart_ID=0 // ID du graphique
) // priorité au clic
{
//--- réinitialiser la valeur de l'erreur
ResetLastError() ;
//--- créer une marque de texte
si(ObjectFind(chart_ID,name)==-1)
{
if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
{
Print(__FUNCTION__, " : échec de la création d'une étiquette de texte ! Code d'erreur = ",GetLastError()) ;
// retour(false) ;
}
}
//--- définir les coordonnées du marqueur
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x) ;
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y) ;
//--- Définir l'angle de la carte, par rapport auquel les coordonnées du point seront déterminées.
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner) ;
//--- définir le texte
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text) ;
//--- définir la police du texte
ObjectSetString(chart_ID,name,OBJPROP_FONT,font) ;
//--- définir la taille de la police
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size) ;
//--- définir l'angle d'inclinaison du texte
ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle) ;
//--- définir la méthode d'ancrage
ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor) ;
//--- définir la couleur
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr) ;
//--- affichage en avant-plan (false) ou en arrière-plan (true)
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back) ;
//--- activer (true) ou désactiver (false) le mode de déplacement de la marque avec la souris.
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection) ;
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection) ;
//--- cache (true) ou affiche (false) le nom de l'objet graphique dans la liste des objets.
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden) ;
//--- définir la priorité de l'événement de réception du clic de souris
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order) ;
//--- exécution réussie
retour (vrai) ;
}
Comment faire pour que le symbole du triangle apparaisse ?
Ce qui devrait être écrit
OutText("LabelBuy1", ">", 100, 20, clrWhite, ANCHOR_UPPER,CORNER_LEFT_UPPER,14, "Arial") ;
Pour faire un triangle ?
Plus tôt, j'ai posé la question de savoir comment simuler la fonction Print() du côté de la bibliothèque pour vérifier les données entrant dans les fonctions de la bibliothèque et pour rechercher les erreurs. On m'a conseillé d'utiliser les ressources C++ : c'est-à-dire d'enregistrer les informations dans un fichier du côté de la bibliothèque dll. En général, la bibliothèque ne peut pas créer un fichier pour y écrire les informations, le fichier n'est créé ni dans le répertoire du projet, ni dans le dossier avec le robot, essayé de spécifier le chemin par défaut ne fonctionne pas, la sortie des informations via cout ne fonctionne pas non plus, mais probablement pas parce que ce n'est pas tout à fait une application console. Qui peut vous conseiller ?
Comment remplacer l'image standard dans la description par ...
... Je peux mettre le mien ?
Comment remplacer l'image standard dans la description par ...
... Je peux mettre le mien ?
#Icône de propriété
Comme c'est simple... Merci !
Bonjour !
Pourriez-vous me dire comment implémenter la détection d'objets graphiques dessinés manuellement sur un graphique (ligne horizontale ou de tendance, par exemple) et ensuite récupérer leurs propriétés (niveau de prix au bon moment) ?
Bonjour !
Pourriez-vous me dire comment implémenter la détection d'objets graphiques dessinés manuellement sur un graphique (ligne horizontale ou de tendance, par exemple) et ensuite récupérer leurs propriétés (niveau de prix au bon moment) ?
Bonjour !
Pourriez-vous me dire comment implémenter la détection d'objets graphiques dessinés manuellement sur un graphique (ligne horizontale ou de tendance, par exemple) et ensuite récupérer leurs propriétés (niveau de prix au bon moment) ?
Ils ont un préfixe standardisé, par exemple : numéro Trenler. Vous pouvez rechercher comme suit : dans la boucle if(StringFind(ObjectName(0,i), "Trendline")==0) pour les anciens ou pour les nouveaux if(StringFind(sparam, "Trendline")==0))