Ce n'est pas un secret. Il y a beaucoup d'écrits à ce sujet. Peu importe l'outil utilisé pour créer l'histoire. L'objectif est de mettre à jour le graphique pour que le conseiller expert puisse travailler dessus.
Cela peut être fait au moyen de WinAPI. Il a été décrit ici à de nombreuses reprises. J'ai écrit une bibliothèque. Je l'ai posté ici.
Il contient des fonctions permettant de contrôler la mise à jour autonome de la carte. Il ne nécessite aucun script ou expert. Mais ce n'est pas pour tout le monde. Des fonctions sont également à la disposition de tous pour mettre à jour le graphique à partir d'un Expert Advisor, d'un script ou d'un indicateur. Il est plus difficile de les utiliser. Parce que vous devez déterminer lequel de vos programmes va mettre à jour le tableau. Des exemples sont dans le script de test.
Auriez-vous une solution toute faite pour "extraire" la dernière ligne du fichier journal pour l'afficher dans les commentaires ?
Aidez un nerd à sortir. Juste pour revenir sur l'essence de la question.
J'ai deux points sur le graphique, le point 2 - celui qui est le plus proche de la barre zéro et le t.1 - celui qui est le plus éloigné de la barre zéro dans l'historique. J'essaie de tracer une ligne de tendance à partir de ces deux points,
en prolongeant le segment entre ces points de N (variable int RayLong) intervalles en avant. Le code est le suivant :
if (RayLong!=0 && point1s==true && point2s==true)
{
//расчет цены в будущемif (price11s>price22s) {price11s=NormalizeDouble(price11s+((price11s-price22s)*RayLong),Digits);}
if (price11s<price22s) {price11s=NormalizeDouble(price11s-((price22s-price11s)*RayLong),Digits);}
//расчет бара в будущемint bis=iBarShift(Symbol(),0,time22s,true)-iBarShift(Symbol(),0,time11s,true);
Print("Sup "+iBarShift(Symbol(),0,time22s,true)+" "+iBarShift(Symbol(),0,time11s,true)+" "+bis+
" sec="+bis*Period()*60*NormalizeDouble(RayLong,Digits)+" Time="+TimeToStr(time11s+(Period()*60*
(iBarShift(Symbol(),0,time22s,true)-iBarShift(Symbol(),0,time11s,true)+1)*RayLong),TIME_DATE|TIME_SECONDS));
time11s=time11s+(Period()*60*((iBarShift(Symbol(),0,time22s,true)-iBarShift(Symbol(),0,time11s,true))*RayLong));
//time11s=time11s+((time11s-time22s)*RayLong); //альтернативный вариант предыдущей строки
}
Le problème est que le point de calcul est flottant sur la date. Le prix est correct. La date, quant à elle, est soit fine, soit flottante. L'impression montre que cela se produit lorsque la date de règlement n'est pas prévue au calendrier - week-ends ou jours fériés. Veuillez suggérer une solution à ce problème.
Aidez un nerd à sortir. Juste pour revenir sur l'essence de la question.
J'ai deux points sur le graphique, le point 2 - celui qui est le plus proche de la barre zéro et le t.1 - celui qui est le plus éloigné de la barre zéro dans l'historique. J'essaie de tracer une ligne de tendance à partir de ces deux points,
en prolongeant un segment entre ces points par N (variable int RayLong) intervalles en avant. Le code est le suivant :
Le problème est que le point de calcul est flottant sur la date. Le prix est correct. La date, quant à elle, est soit fine, soit flottante. J'utilise Print pour comprendre que cela se produit lorsque la date de règlement n'est pas prévue au calendrier - week-ends ou jours fériés. Veuillez me conseiller sur la façon de résoudre ce problème.
Je ne comprends pas le problème. Si vous dessinez par prix et par barres Il n'y a pas de barres de week-end et de non-week-end sur le graphique. Donc la tendance et devrait se poursuivre sur les prochaines barres correspondant aux dates des jours de trading.
À quoi sert la classe de mémoire statique ? Si possible, pouvez-vous donner un bon exemple de son utilisation dans le code et souligner les caractéristiques qui la distinguent des autres classes de mémoire ? Cette chose semble être inutile, qui sait quoi ?
Comment puis-je faire en sorte qu'il affiche les niveaux de moyenne mobile indiqués dans l'image ?
Pour l'instant, il n'y a que des zéros.
//+------------------------------------------------------------------+ //| fonction d'initialisation de l'expert | //+------------------------------------------------------------------+ int init() { //----
//---- retour(0) ; } //+------------------------------------------------------------------+ //| fonction de désinitialisation des experts | //+------------------------------------------------------------------+ int deinit() { //----
//---- retour(0) ; } //+------------------------------------------------------------------+ //| fonction de démarrage de l'expert | //+------------------------------------------------------------------+ int start() { //---- SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),Red,10,20,0,20) ; SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),Red,10,50,0,20) ; //---- retour(0) ; } //+------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) { si (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0) ; ObjectSetText(nm, tx, fs) ; ObjectSet(nm, OBJPROP_COLOR, cl) ; ObjectSet(nm, OBJPROP_XDISTANCE, xd) ; ObjectSet(nm, OBJPROP_YDISTANCE, yd) ; ObjectSet(nm, OBJPROP_CORNER, cr) ; ObjectSet(nm, OBJPROP_FONTSIZE, fs) ; }
Comment puis-je faire en sorte qu'il affiche les niveaux de moyenne mobile indiqués dans l'image ?
Pour l'instant, il n'y a que des zéros.
//+------------------------------------------------------------------+ //| fonction d'initialisation de l'expert | //+------------------------------------------------------------------+ int init() { //----
//---- retour(0) ; } //+------------------------------------------------------------------+ //| fonction de désinitialisation des experts | //+------------------------------------------------------------------+ int deinit() { //----
//---- retour(0) ; } //+------------------------------------------------------------------+ //| fonction de démarrage de l'expert | //+------------------------------------------------------------------+ int start() { //---- SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),Red,10,20,0,20) ; SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),Red,10,50,0,20) ; //---- retour(0) ; } //+------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) { si (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0) ; ObjectSetText(nm, tx, fs) ; ObjectSet(nm, OBJPROP_COLOR, cl) ; ObjectSet(nm, OBJPROP_XDISTANCE, xd) ; ObjectSet(nm, OBJPROP_YDISTANCE, yd) ; ObjectSet(nm, OBJPROP_CORNER, cr) ; ObjectSet(nm, OBJPROP_FONTSIZE, fs) ; }
double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
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.
Commencez par définir le problème.
- Utilisez le script pour détecter la présence d'une ligne sur le graphique.
- Si la ligne existe, imprimez son prix de début et de fin dans les variables ; imprimez les numéros de barre (ou le temps) dans les variables.
- Effectuez les calculs nécessaires en utilisant le script.
- Imprimer les résultats à l'écran (ou dans un document texte ou dans le Journal du Conseiller Expert)
Si vous ne parvenez pas à résoudre ces 4 problèmes tout de suite, commencez par apprendre la langue.
drknn ! merci ! Je vais m'en occuper ! !!
Ce n'est pas un secret. Il y a beaucoup d'écrits à ce sujet. Peu importe l'outil utilisé pour créer l'histoire. L'objectif est de mettre à jour le graphique pour que le conseiller expert puisse travailler dessus.
Cela peut être fait au moyen de WinAPI. Il a été décrit ici à de nombreuses reprises. J'ai écrit une bibliothèque. Je l'ai posté ici.
Il contient des fonctions permettant de contrôler la mise à jour autonome de la carte. Il ne nécessite aucun script ou expert. Mais ce n'est pas pour tout le monde. Des fonctions sont également à la disposition de tous pour mettre à jour le graphique à partir d'un Expert Advisor, d'un script ou d'un indicateur. Il est plus difficile de les utiliser. Parce que vous devez déterminer lequel de vos programmes va mettre à jour le tableau. Des exemples sont dans le script de test.
Aidez un nerd à sortir. Juste pour revenir sur l'essence de la question.
J'ai deux points sur le graphique, le point 2 - celui qui est le plus proche de la barre zéro et le t.1 - celui qui est le plus éloigné de la barre zéro dans l'historique. J'essaie de tracer une ligne de tendance à partir de ces deux points,
en prolongeant le segment entre ces points de N (variable int RayLong) intervalles en avant. Le code est le suivant :
Le problème est que le point de calcul est flottant sur la date. Le prix est correct. La date, quant à elle, est soit fine, soit flottante. L'impression montre que cela se produit lorsque la date de règlement n'est pas prévue au calendrier - week-ends ou jours fériés. Veuillez suggérer une solution à ce problème.Auriez-vous une solution toute faite pour "extraire" la dernière ligne du fichier journal pour l'afficher dans les commentaires ?
Aidez un nerd à sortir. Juste pour revenir sur l'essence de la question.
J'ai deux points sur le graphique, le point 2 - celui qui est le plus proche de la barre zéro et le t.1 - celui qui est le plus éloigné de la barre zéro dans l'historique. J'essaie de tracer une ligne de tendance à partir de ces deux points,
en prolongeant un segment entre ces points par N (variable int RayLong) intervalles en avant. Le code est le suivant :
Le problème est que le point de calcul est flottant sur la date. Le prix est correct. La date, quant à elle, est soit fine, soit flottante. J'utilise Print pour comprendre que cela se produit lorsque la date de règlement n'est pas prévue au calendrier - week-ends ou jours fériés. Veuillez me conseiller sur la façon de résoudre ce problème.Je ne comprends pas le problème. Si vous dessinez par prix et par barres Il n'y a pas de barres de week-end et de non-week-end sur le graphique. Donc la tendance et devrait se poursuivre sur les prochaines barres correspondant aux dates des jours de trading.
Ou est-ce différent pour vous ?
Pourriez-vous me dire si le tableau sera rempli avec les tikets des ordres en attente dans le code suivant :
int tiket[] ;
int SetFunk()
{
pour (i=0 ; i<=k-1 ; i++)
{
ticket[i]=OrderSend(Symbol(),OP_BUYSTOP,0.01*Lots,Ask+Step*i*Point,3,Bid-S_Loss*Point,0,",10000,0,Green) ;
ticket[i+k]=OrderSend(Symbol(),OP_SELLSTOP,0.01*Lots,Bid-Step*i*Point,3,Ask+S_Loss*Point,0,"",10000,0,Green);
}
}
? ????
nulls sont retournés lorsque l'on essaie de print()
Pourriez-vous me dire si le tableau sera rempli avec les tikets des ordres en attente dans le code suivant :
int tiket[] ;
int SetFunk()
{
pour (i=0 ; i<=k-1 ; i++)
{
ticket[i]=OrderSend(Symbol(),OP_BUYSTOP,0.01*Lots,Ask+Step*i*Point,3,Bid-S_Loss*Point,0,",10000,0,Green) ;
ticket[i+k]=OrderSend(Symbol(),OP_SELLSTOP,0.01*Lots,Bid-Step*i*Point,3,Ask+S_Loss*Point,0,"",10000,0,Green);
}
}
? ????
nulls sont retournés lorsque l'on essaie de print()
Bonjour.
J'ai une EA.
Comment puis-je faire en sorte qu'il affiche les niveaux de moyenne mobile indiqués dans l'image ?
Pour l'instant, il n'y a que des zéros.
//+------------------------------------------------------------------+//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),Red,10,20,0,20) ;
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),Red,10,50,0,20) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
si (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0) ;
ObjectSetText(nm, tx, fs) ;
ObjectSet(nm, OBJPROP_COLOR, cl) ;
ObjectSet(nm, OBJPROP_XDISTANCE, xd) ;
ObjectSet(nm, OBJPROP_YDISTANCE, yd) ;
ObjectSet(nm, OBJPROP_CORNER, cr) ;
ObjectSet(nm, OBJPROP_FONTSIZE, fs) ;
}
Bonjour.
J'ai une EA.
Comment puis-je faire en sorte qu'il affiche les niveaux de moyenne mobile indiqués dans l'image ?
Pour l'instant, il n'y a que des zéros.
//+------------------------------------------------------------------+//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de désinitialisation des experts |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
retour(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),Red,10,20,0,20) ;
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),Red,10,50,0,20) ;
//----
retour(0) ;
}
//+------------------------------------------------------------------+
void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
si (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0) ;
ObjectSetText(nm, tx, fs) ;
ObjectSet(nm, OBJPROP_COLOR, cl) ;
ObjectSet(nm, OBJPROP_XDISTANCE, xd) ;
ObjectSet(nm, OBJPROP_YDISTANCE, yd) ;
ObjectSet(nm, OBJPROP_CORNER, cr) ;
ObjectSet(nm, OBJPROP_FONTSIZE, fs) ;
}
double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
Je n'ai pas encore entendu parler du délai 13.