En général, puisque Artyom ne répond à rien, et que l'homme ci-dessus a donné la réponse que les fonctions travaillent avec des structures qui doivent être connues et donc doivent être déclarées globalement, nous concluons que la structure doit être déclarée globalement.
Par nature, une fonction qui travaille avec une structure ne peut accepter que les mêmes structures statiques. Cela signifie que nous ne pouvons pas déclarer une structure localement pour qu'elle ait une portée limitée et la passer dans une fonction.
Ne te réfère pas à moi quand tu ne comprends pas ce que je dis. Lisez attentivement ce qu'Artem a dit.
déclaration d'une variable avec le type de cette structure.
Dans sa hâte, il a fait quelques inexactitudes dans le code. Cela ne signifie pas qu'il s'exprimait de manière incorrecte. Une structure est un type de données personnalisé et est définie dans la portée globale. Une variable de type utilisateur peut être déclarée n'importe où. Et il peut y avoir un nombre quelconque de variables de ce type déclarées.
Artyom Trishkin: Les statistiques n'en seront pas modifiées.
D'ailleurs, il ne se contente pas de ne pas me montrer à 1 heure du matin ou à 11 heures du soir, il me montre ça.
Le travail technique.
Progrès
Approbation des TDR
Démo
Transmission des travaux et des paiements
Toutes ces cases sont cochées. Il est indiqué que dans une semaine, le paiement sera automatiquement supprimé. Sauf que seul le fichier de démonstration a été reçu et qu'il contient un restricteur de date permettant de travailler uniquement l'année dernière. Je suppose qu'il s'est ennuyé et que maintenant il va attendre une semaine pour que le fichier de paiement change automatiquement ?
Le client a accepté la démo, le développeur doit maintenant lui remettre le résultat final.
Après acceptation du travail, le paiement sera effectué automatiquement sur le compte du client (moins une commission). Si le client ne répond pas au travail soumis dans un délai d'une semaine, la commande sera automatiquement considérée comme terminée.
2020.01.29 21:47
Le développeur========= a confirmé l'étape"Transfert des travaux et paiement".
Qu'est-ce que c'est censé signifier ? j'ai déjà eu une belle commande de pipal où le solde débiteur et le solde créditeur ont été échangés, j'ai déjà attendu 3 semaines pour le service avec le paiement. maintenant cette joie qu'est-ce que cela signifie ?
Ne vous référez pas à moi quand vous ne savez pas de quoi je parle. Lisez attentivement ce qu'Artem a dit.
Dans sa hâte, il a fait quelques inexactitudes dans le code. Cela ne signifie pas qu'il s'est exprimé de manière incorrecte. Une structure est un type de données personnalisé et est définie dans la portée globale. Une variable de type utilisateur peut être déclarée n'importe où. Et il peut y avoir un nombre quelconque de variables de ce type déclarées.
Eh bien, je parle exactement de mon cas et exactement de la structure, il est clair qu'il s'agit également d'un type de variable personnalisée, mais en particulier je suis intéressé par le niveau local. Peut-être que cela pourrait se faire par le biais d'un cours. En principe, on peut déclarer un type privé à travers une classe et c'est tout, mais je ne comprends pas très bien.
Eh bien je parle exactement de mon cas et exactement de la structure et exactement comme ça, il est clair que c'est aussi un type de variable personnalisée mais en particulier je suis intéressé par le niveau local. Peut-être que cela pourrait se faire par le biais d'un cours. En principe, vous pouvez déclarer un type privé par le biais d'une classe, mais je ne le comprends pas très bien.
Vous définissez votre structure à un niveau global - tout le programme doit la connaître - c'est un nouveau type de variables que vous avez créé.
Et vous pouvez définir différentes variables avec le type de cette structure à n'importe quel niveau local - seulement dans ceux-ci (les niveaux locaux) seront visibles les variables créées dans leur portée.
//+------------------------------------------------------------------+//| Create an equidistant channel by the given coordinates |//+------------------------------------------------------------------+bool ChannelCreate(constlong chart_ID=0, // chart's IDconststring name="Channel", // channel nameconstint sub_window=0, // subwindow index datetime time1=0, // first point timedouble price1=0, // first point pricedatetime time2=0, // second point timedouble price2=0, // second point pricedatetime time3=0, // third point timedouble price3=0, // third point priceconstENUM_BASE_CORNER corner = CORNER_RIGHT_UPPER, // the angle of the graph for the bindingconstcolor clr=clrRed, // channel colorconstENUM_LINE_STYLE style=STYLE_SOLID, // style of channel linesconstint width=1, // width of channel linesconstbool back=false, // in the backgroundconstbool selection=true, // highlight to moveconstbool ray_left = false, // extend the line to the leftconstbool ray_right=false, // channel's continuation to the rightconstbool hidden=true, // hidden in the object listconstlong z_order=0) // priority for mouse click
{
//--- reset the error valueResetLastError();
//--- create a channel by the given coordinatesif(!ObjectCreate(chart_ID,name,OBJ_CHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
{
Print(__FUNCTION__,
": failed to create an equidistant channel! Error code = ",GetLastError());
return(false);
}
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- return(true);
}
//+------------------------------------------------------------------+//| Delete the channel |//+------------------------------------------------------------------+bool ChannelDelete(constlong chart_ID=0, // chart's IDconststring name="Channel") // channel name
{
//--- reset the error valueResetLastError();
//--- delete the channelif(!ObjectDelete(chart_ID,name))
{
Print(__FUNCTION__,
": failed to delete the channel! Error code = ",GetLastError());
return(false);
}
//---return(true);
}
//---
Je comprends que ChartXYToTimePrice calcule les coordonnées et les valeurs par défaut à partir du coin supérieur gauche.
Comment le ChartXYToTimePrice serait-il recalculé à partir de l'angle que j'ai spécifié ?
Vous ne pouvez changer l'esprit de quelqu'un qui a quelque chose pour prendre des décisions. Et si "ça" ne fait qu'exécuter les paramètres de quelqu'un d'autre, alors tout dialogue pour tenter de vous convaincre de quelque chose n'est qu'une perte de temps.))
Je ne comprends pas bien la tâche, mais faites attention non seulement à l'angle de liaison ENUM_BASE_CORNER, mais aussi au point de liaison ENUM_ANCHOR_POINT
Графические объекты Text, Label, Bitmap и Bitmap Label (OBJ_TEXT, OBJ_LABEL, OBJ_BITMAP и OBJ_BITMAP_LABEL) могут иметь один из 9 различных способов привязки своих координат, задаваемых свойством OBJPROP_ANCHOR. – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты...
En général, puisque Artyom ne répond à rien, et que l'homme ci-dessus a donné la réponse que les fonctions travaillent avec des structures qui doivent être connues et donc doivent être déclarées globalement, nous concluons que la structure doit être déclarée globalement.
Par nature, une fonction qui travaille avec une structure ne peut accepter que les mêmes structures statiques. Cela signifie que nous ne pouvons pas déclarer une structure localement pour qu'elle ait une portée limitée et la passer dans une fonction.
Ne te réfère pas à moi quand tu ne comprends pas ce que je dis. Lisez attentivement ce qu'Artem a dit.
Il s'agit du forum pour le trading, les systèmes de trading automatisés et les tests de stratégies de trading.
Toutes les questions des débutants sur MQL4 et MQL5, assistance et discussion sur les algorithmes et les codes.
déclaration d'une variable avec le type de cette structure.
Les statistiques n'en seront pas modifiées.
D'ailleurs, il ne se contente pas de ne pas me montrer à 1 heure du matin ou à 11 heures du soir, il me montre ça.
Le travail technique.
Progrès
Toutes ces cases sont cochées. Il est indiqué que dans une semaine, le paiement sera automatiquement supprimé. Sauf que seul le fichier de démonstration a été reçu et qu'il contient un restricteur de date permettant de travailler uniquement l'année dernière. Je suppose qu'il s'est ennuyé et que maintenant il va attendre une semaine pour que le fichier de paiement change automatiquement ?
C'est déjà arrivé.
Transfert des travaux et paiement
Le client a accepté la démo, le développeur doit maintenant lui remettre le résultat final.
Après acceptation du travail, le paiement sera effectué automatiquement sur le compte du client (moins une commission). Si le client ne répond pas au travail soumis dans un délai d'une semaine, la commande sera automatiquement considérée comme terminée.
Le développeur========= a confirmé l'étape"Transfert des travaux et paiement".
Qu'est-ce que c'est censé signifier ? j'ai déjà eu une belle commande de pipal où le solde débiteur et le solde créditeur ont été échangés, j'ai déjà attendu 3 semaines pour le service avec le paiement. maintenant cette joie qu'est-ce que cela signifie ?
Ne vous référez pas à moi quand vous ne savez pas de quoi je parle. Lisez attentivement ce qu'Artem a dit.
Eh bien, je parle exactement de mon cas et exactement de la structure, il est clair qu'il s'agit également d'un type de variable personnalisée, mais en particulier je suis intéressé par le niveau local. Peut-être que cela pourrait se faire par le biais d'un cours. En principe, on peut déclarer un type privé à travers une classe et c'est tout, mais je ne comprends pas très bien.
Eh bien je parle exactement de mon cas et exactement de la structure et exactement comme ça, il est clair que c'est aussi un type de variable personnalisée mais en particulier je suis intéressé par le niveau local. Peut-être que cela pourrait se faire par le biais d'un cours. En principe, vous pouvez déclarer un type privé par le biais d'une classe, mais je ne le comprends pas très bien.
Vous définissez votre structure à un niveau global - tout le programme doit la connaître - c'est un nouveau type de variables que vous avez créé.
Et vous pouvez définir différentes variables avec le type de cette structure à n'importe quel niveau local - seulement dans ceux-ci (les niveaux locaux) seront visibles les variables créées dans leur portée.
Bonjour, tout le monde !
Aidez-moi à joindre
à cet objet
bool
Je crois savoir que ChartXYToTimePrice calcule également par défaut les coordonnées à partir du coin supérieur gauche.
Comment ChartXYToTimePrice recalculerait-il à partir du coin que j'ai spécifié ?
Je comprends que ChartXYToTimePrice calcule les coordonnées et les valeurs par défaut à partir du coin supérieur gauche.
Comment le ChartXYToTimePrice serait-il recalculé à partir de l'angle que j'ai spécifié ?
Vous ne pouvez changer l'esprit de quelqu'un qui a quelque chose pour prendre des décisions. Et si "ça" ne fait qu'exécuter les paramètres de quelqu'un d'autre, alors tout dialogue pour tenter de vous convaincre de quelque chose n'est qu'une perte de temps.))
Je ne comprends pas bien la tâche, mais faites attention non seulement à l'angle de liaison ENUM_BASE_CORNER, mais aussi au point de liaison ENUM_ANCHOR_POINT
Alexey Viktorov:
Je ne comprends pas bien la tâche.
L'indicateur à l'appel crée un objet (OBJ_CHANNEL) dans le coin supérieur gauche.
comment définir la condition pour créer un objet dans l'autre coin.
L'indicateur à l'appel crée un objet (OBJ_CHANNEL) dans le coin supérieur gauche.
comment définir la condition pour créer un objet dans l'autre coin.
Lisez attentivement le manuel. OBJ_CHANNEL n'a rien à voir avec l'angle.