1.rien sur le fait de ne pas associer le numéro de tampon de l'indicateur à l'indicateur. Comme il n'y a qu'un seul indicateur, il obtient automatiquement le tampon 0 et c'est ce que j'ai spécifié.
2. Si j'ai le handle de l'indicateur dans l'initialisation, quand je change les paramètres qui sont passés à l'indicateur, est-ce que je dois re-remplir l'EA au graphique pour que l'événement d'initialisation arrive et que les nouveaux paramètres soient appliqués ?
C'est ainsi que j'obtiens les données actuelles de la moyenne mobile, est-ce correct ?
Deux questions.
1.rien sur le fait de ne pas associer le numéro de tampon de l'indicateur à l'indicateur. Comme il n'y a qu'un seul indicateur, il obtient automatiquement le tampon 0 et c'est ce que j'ai spécifié.
2. Si j'ai le gestionnaire d'indicateur dans l'initialisation, lorsque je change les paramètres qui sont passés à l'indicateur, dois-je recharger l'EA sur le graphique pour que l'événement d'initialisation se produise et que les nouveaux paramètres s'appliquent ?
1. Il n'y a pas d'"association". Il n'y en a jamais eu.
intCopyBuffer(
int indicator_handle, // handle индикатораint buffer_num, // номер буфера индикатораint start_pos, // откуда начнем int count, // сколько копируемdouble buffer[] // массив, куда будут скопированы данные
);
Il existe une fonction qui prend le handle de l'indicateur (dans votre cas, il s'agit de la variablema_handle et du numéro de tampon '0' - zéro, car l'indicateur Moving Average n'a qu'un seul tampon).
2. Si vous modifiez les paramètres d'entrée dans votre EA, celle-ci sera initialisée à nouveau et le handle de l'indicateur sera créé dans OnInit avec les paramètres que vous avez entrés.
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
Oui, il n'est pas clair quel est le numéro de tampon de l'indicateur, comment ces tampons sont créés, s'ils appartiennent à un indicateur spécifique ou s'ils ont une numérotation commune. La documentation indique d'écrire SetIndexBuffer(), mais dans l'exemple de la moyenne mobile, il est écrit sans. J'ai lu la référence et cherché d'autres articles, mais ce n'est toujours pas clair. Le préprocesseur doit-il spécifier les tampons et pourquoi les tampons doivent-ils être inférieurs d'une unité à ceux de la directive du préprocesseur et non identiques ?
Ivan_Invanov: Oui, je ne sais pas ce qu'est un numéro de tampon d'indicateur, comment ces tampons sont créés, s'ils appartiennent à un certain indicateur ou s'ils ont une numérotation générale. La documentation indique d'écrire SetIndexBuffer(), mais dans l'exemple de la moyenne mobile, il est écrit sans. J'ai lu la référence et cherché d'autres articles, mais ce n'est toujours pas clair. Le préprocesseur doit-il spécifier les tampons et pourquoi les tampons doivent-ils être inférieurs d'une unité à ceux de la directive du préprocesseur et non identiques ?
Si vous cherchez une signification métaphysique... alors beaucoup de choses deviennent incompréhensibles. Sinon, ce n'est qu'un numéro. Il appartient à un indicateur spécifique.
Les conseillers experts n'ont pas du tout de tampons d'indicateurs, il ne peut donc pas y avoir d'appel à SetIndexBufer().
Pas une de moins, mais exactement la même. Lorsqu'on compte à partir de zéro, le dernier nombre est inférieur de 1 au nombre total.
Si vous le voulez bien, répondez à quelques questions supplémentaires, s'il vous plaît.
1. Je ne comprends pas pourquoi je dois affecter 0 à une variable déclarée si je vais de toute façon affecter quelque chose plus tard. Et de plus, parfois le 0 n'est pas attribué, parfois il l'est.
Et ils disent que vous devez supprimer les objets lors de la désinitialisation (je ne comprends pas pourquoi), mais un handle d'indicateur est un objet, mais il n'est généralement pas supprimé, pourquoi ?
3.MqlTradeRequest request={0} ; Qu'est-ce que cela signifie ? Il est probable que toute la structure soit affectée à 0, mais elle ne contient pas que des types numériques.
4. Et pourquoi y a-t-il une opération logique ici ?
boolOrderSend(
MqlTradeRequest& request, // структура запросаMqlTradeResult& result // структура ответа
);
Si vous le voulez bien, répondez à quelques questions supplémentaires, s'il vous plaît.
1. Je ne comprends pas pourquoi je dois affecter 0 à une variable déclarée si je vais de toute façon affecter quelque chose plus tard. Et de plus, parfois le 0 n'est pas attribué, parfois il l'est.
Et ils disent que vous devez supprimer les objets lors de la désinitialisation (je ne comprends pas pourquoi), mais un handle d'indicateur est un objet, mais il n'est généralement pas supprimé, pourquoi ?
3.MqlTradeRequest request={0} ; Qu'est-ce que cela signifie ? Il est probable que toute la structure soit affectée à 0, mais elle ne contient pas que des types numériques.
4. Pourquoi avons-nous besoin d'une opération logique ici ?
1. Par habitude.
2. il s'agit d'un autre objet. Il sera déchargé par lui-même, mais il peut être accéléré par la fonction IndicatorRelease().
3. elle est effacée et c'est tout.
4. Il ne s'agit pas d'une opération logique, mais d'un transfert de variable par référence.
Je suis confus à propos de quelque chose. Lorsque SYMBOL_TRADE_EXECUTION_MARKET est exécuté . Puis-je faire quelque chose pour ouvrir des ordres à un certain prix, comme dans l'exécution immédiate? Ai-je besoin d'un ordre en attente ? Veuillez rédiger un format de demande de marché pour un ordre en attente.
C'est ainsi que j'obtiens les données actuelles de la moyenne mobile, est-ce correct ?
Deux questions.
1.rien sur le fait de ne pas associer le numéro de tampon de l'indicateur à l'indicateur. Comme il n'y a qu'un seul indicateur, il obtient automatiquement le tampon 0 et c'est ce que j'ai spécifié.
2. Si j'ai le handle de l'indicateur dans l'initialisation, quand je change les paramètres qui sont passés à l'indicateur, est-ce que je dois re-remplir l'EA au graphique pour que l'événement d'initialisation arrive et que les nouveaux paramètres soient appliqués ?
C'est ainsi que j'obtiens les données actuelles de la moyenne mobile, est-ce correct ?
Deux questions.
1.rien sur le fait de ne pas associer le numéro de tampon de l'indicateur à l'indicateur. Comme il n'y a qu'un seul indicateur, il obtient automatiquement le tampon 0 et c'est ce que j'ai spécifié.
2. Si j'ai le gestionnaire d'indicateur dans l'initialisation, lorsque je change les paramètres qui sont passés à l'indicateur, dois-je recharger l'EA sur le graphique pour que l'événement d'initialisation se produise et que les nouveaux paramètres s'appliquent ?
1. Il n'y a pas d'"association". Il n'y en a jamais eu.
Lisons l'aide sur CopyBuffer
Il existe une fonction qui prend le handle de l'indicateur (dans votre cas, il s'agit de la variablema_handle et du numéro de tampon '0' - zéro, car l'indicateur Moving Average n'a qu'un seul tampon).
2. Si vous modifiez les paramètres d'entrée dans votre EA, celle-ci sera initialisée à nouveau et le handle de l'indicateur sera créé dans OnInit avec les paramètres que vous avez entrés.
1. Il n'y a pas d'"association". Il n'y en a jamais eu.
...
Signification de l'appel àSetIndexBuffer()
Signifie un appel à SetIndexBuffer()
Oui, je ne sais pas ce qu'est un numéro de tampon d'indicateur, comment ces tampons sont créés, s'ils appartiennent à un certain indicateur ou s'ils ont une numérotation générale. La documentation indique d'écrire SetIndexBuffer(), mais dans l'exemple de la moyenne mobile, il est écrit sans. J'ai lu la référence et cherché d'autres articles, mais ce n'est toujours pas clair. Le préprocesseur doit-il spécifier les tampons et pourquoi les tampons doivent-ils être inférieurs d'une unité à ceux de la directive du préprocesseur et non identiques ?
Si vous cherchez une signification métaphysique... alors beaucoup de choses deviennent incompréhensibles. Sinon, ce n'est qu'un numéro. Il appartient à un indicateur spécifique.
Les conseillers experts n'ont pas du tout de tampons d'indicateurs, il ne peut donc pas y avoir d'appel à SetIndexBufer().
Pas une de moins, mais exactement la même. Lorsqu'on compte à partir de zéro, le dernier nombre est inférieur de 1 au nombre total.
Si vous le voulez bien, répondez à quelques questions supplémentaires, s'il vous plaît.
1. Je ne comprends pas pourquoi je dois affecter 0 à une variable déclarée si je vais de toute façon affecter quelque chose plus tard. Et de plus, parfois le 0 n'est pas attribué, parfois il l'est.
Et ils disent que vous devez supprimer les objets lors de la désinitialisation (je ne comprends pas pourquoi), mais un handle d'indicateur est un objet, mais il n'est généralement pas supprimé, pourquoi ?
3.MqlTradeRequest request={0} ; Qu'est-ce que cela signifie ? Il est probable que toute la structure soit affectée à 0, mais elle ne contient pas que des types numériques.
4. Et pourquoi y a-t-il une opération logique ici ?
Si vous le voulez bien, répondez à quelques questions supplémentaires, s'il vous plaît.
1. Je ne comprends pas pourquoi je dois affecter 0 à une variable déclarée si je vais de toute façon affecter quelque chose plus tard. Et de plus, parfois le 0 n'est pas attribué, parfois il l'est.
Et ils disent que vous devez supprimer les objets lors de la désinitialisation (je ne comprends pas pourquoi), mais un handle d'indicateur est un objet, mais il n'est généralement pas supprimé, pourquoi ?
3.MqlTradeRequest request={0} ; Qu'est-ce que cela signifie ? Il est probable que toute la structure soit affectée à 0, mais elle ne contient pas que des types numériques.
4. Pourquoi avons-nous besoin d'une opération logique ici ?
1. Par habitude.
2. il s'agit d'un autre objet. Il sera déchargé par lui-même, mais il peut être accéléré par la fonction IndicatorRelease().
3. elle est effacée et c'est tout.
4. Il ne s'agit pas d'une opération logique, mais d'un transfert de variable par référence.
1. Par habitude.
2. Il s'agit d'un objet différent. Il se décharge ensuite de lui-même, mais peut être accéléré par IndicatorRelease().
3. elle est effacée et c'est tout.
4. Il ne s'agit pas d'une opération logique, mais d'un transfert de variable par référence.