Questions des débutants MQL5 MT5 MetaTrader 5 - page 1040

 
Chers collègues, il est nécessaire de définir de manière programmatique à quel intervalle de temps l'optimisation aura lieu. Pouvez-vous nous dire s'il existe une telle possibilité ? Dans OnInit.
 
Anzhela Sityaeva:

La virgule ne joue aucun rôle dans la formule, vous avez raison, elle sépare juste la valeur du type, pour faciliter la compréhension, rien de plus. La cinquième année, c'était il y a longtemps :), et il se trouve que je n'ai jamais été bon en maths. Mais je me souviens de l'ordre des opérations.

La question est précisément que dans les deux versions des calculsle résultatest le même, quelle option est correcte ?

J'ose dire que tu es née quand j'avais déjà fini non seulement le CM2, mais aussi une partie du CM2. C'était comme hier pour moi... Et si vous vous souvenez de l'ordre des opérations, pourquoi cette question vous vient-elle à l'esprit ? Si le résultat des calculs est le même, une option peut-elle être plus correcte que l'autre ? Il est évident qu'il n'y a pas de différence.
 
Alexey Viktorov:
J'ose dire que tu es née quand j'avais déjà fini non seulement le CM2, mais aussi les suivants. C'était comme hier pour moi... Et si vous vous souvenez de l'ordre des opérations, pourquoi y a-t-il une telle question dans votre esprit ? Si le résultat des calculs est le même, une option peut-elle être plus correcte que l'autre ? Eh bien, évidemment, il n'y a pas de différence.
Il n'est pas habituel de demander son âge à une fille, et ce n'est pas pertinent. Je voulais l'avis de quelqu'un qui est sur le sujet et à part moi, des doutes, vous savez :)
 
Anzhela Sityaeva:
Il n'est pas habituel de demander son âge à une fille, et ce n'est pas pertinent. Je voulais l'avis de quelqu'un qui est sur le sujet et à part moi, des doutes, vous savez :)

Je n'ai pas demandé votre âge. J'ai seulement suggéré que tu es encore très jeune et que tu fais semblant de ne plus te souvenir de rien.

 
Decromor:

Bonjour à tous...

J'essaie de supprimer un indicateur que j'ai ajouté à un EA. Je fais ce qui suit :

Dans Indicateur :

L'indicateur est ajouté, le numéro de la sous-fenêtre et le nom court sont corrects, mais il y a une erreur lors de la suppression :

2019.05.08 12:01:10.068 2019.04.03 12:39:31 Impossible de supprimer l'indicateur blablabla de la fenêtre n°2. Code d'erreur 4014

4014 - "La fonction système n'est pas autorisée à être appelée". Pouvez-vous nous dire ce que cela signifie, comment supprimer l'indicateur ?

L'un des indicateurs est utilisé par le conseiller expert pendant une courte période de temps, le reste du temps il n'est pas nécessaire et ses paramètres ne sont pas pertinents. C'est pourquoi la première option que j'ai envisagée consiste à supprimer l'indicateur au moment où il n'est pas nécessaire et à l'ajouter au bon moment avec de nouveaux paramètres. Mais je ne peux pas le faire pour une raison quelconque.

Une autre variante est : Variables globales. Supposons que l'indicateur sera toujours dans la fenêtre, mais que je modifierai ses paramètres d'entrée par le biais de variables globales au moment voulu.

N'est-ce pas ? Existe-t-il d'autres variantes ?

 
Decromor:

L'un des indicateurs est utilisé par le conseiller expert pendant une courte période de temps, le reste du temps il n'est pas nécessaire, et ses paramètres ne sont plus pertinents. Pour cette raison, la première option que j'ai envisagée était de supprimer l'indicateur au moment où il n'est pas nécessaire et de l'ajouter au bon moment avec de nouveaux paramètres. Mais je ne peux pas le faire pour une raison quelconque.

Une autre variante est : Variables globales. Supposons que l'indicateur sera toujours dans la fenêtre, mais que je modifierai ses paramètres d'entrée par le biais de variables globales au moment voulu.

N'est-ce pas ? Existe-t-il d'autres variantes ?

Un indicateur expert sur un graphique est comme le pivot d'un chien.

 
Alexey Viktorov:

L'indicateur sur le graphique est comme le tour d'un chien.

C'est parfait pour mettre en place un expert.

C'est ainsi que je l'ajoute, mais je ne peux pas le supprimer.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Questions des débutants MQL5 MT5 MetaTrader 5

Décromor, 2019.05.08 09:17

Bonjour à tous...

J'essaie de supprimer un indicateur que j'ai ajouté moi-même d'un EA. Je fais ce qui suit :

//Объявляю переменные
int win_ind=-1,
    handle_ind = INVALID_HANDLE;

//Создаю
   handle_ind= iCustom(NULL,0,"ind");
   if(handle_ind== INVALID_HANDLE){
      Print("Не удалось создать индикатор. Код ошибки: ",GetLastError());
      return(false);
   }
   win_ind=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); //--- получим номер нового подокна, в которое добавим индикатор 
   if(!ChartIndicatorAdd(0,win_ind,handle_ind)){
      Print("Не удалось добавить индикатор на окно графика. Код ошибки: ",GetLastError());
      return(false);
   }

//Удаляю
   string name = ChartIndicatorName(0, win_ind, 0);
   bool res = ChartIndicatorDelete(0, win_ind, name); 
   if (!res) PrintFormat("Не удалось удалить индикатор %s с окна №%d. Код ошибки %d", name,win_ind,GetLastError());

En indicateur :

int OnInit(){
   IndicatorSetString(INDICATOR_SHORTNAME,"blablabla");

L'indicateur est ajouté, le numéro de la sous-fenêtre et le nom court sont corrects, mais il y a une erreur lors de la suppression :

2019.05.08 12:01:10.068 2019.04.03 12:39:31 Impossible de supprimer l'indicateur blablabla de la fenêtre n°2. Code d'erreur 4014

4014 - "La fonction système n'est pas autorisée à être appelée". Veuillez indiquer ce que cela signifie et comment supprimer l'indicateur.


 
Decromor:

Pour mettre en place un expert, c'est très bien.


Ce n'est pas une réponse à ma question. Pour être plus précis, il s'agit d'une réplique. Puis j'ai formulé ma pensée sous forme de question : pourquoi l'EA a-t-il besoin d'un indicateur sur le graphique?

Si nous voulons refuser la poignée de l'indicateur non utilisé, il existe une autre fonction pour cela. Et l'indicateur lui-même sur le graphique dans quel but ?

 
Existe-t-il une solution toute prête pour ne pas réinventer la roue ?
Nous devons répondre à une question simple : combien de transactions fermées (appelons-les ainsi) y a-t-il eu dans l'histoire (pour une paire ou une période particulière, ce n'est pas important, l'essentiel est le principe). Si je comprends bien, ce n'est pas une tâche triviale dans mql5. Je n'ai même pas de nom pour cette entité ;))
 
Evgeny Dyuka:
Avez-vous une solution toute prête sans avoir à réinventer la roue ?
Nous devons répondre à une question simple : combien de transactions fermées (appelons-les ainsi) y a-t-il eu dans l'histoire (pour une certaine paire ou période n'est pas important, l'essentiel est le principe). Si je comprends bien, ce n'est pas une tâche triviale dans mql5. Nous n'avons même pas de nom pour cette entité)).

Pourquoi pas ?

bool  HistorySelect(
   datetime  from_date,     // с даты
   datetime  to_date        // по дату
   );

Et ensuite, dans une boucle, nous trions ce dont nous avons besoin.

Ou pour un poste spécifique.

bool  HistorySelectByPosition(
   long   position_id     // идентификатор позиции - POSITION_IDENTIFIER
   );
Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
Функция HistorySelect() создает в mql5-программе список ордеров и список сделок для дальнейшего обращения к элементам списка посредством соответствующих функций. Размер списка сделок можно узнать с помощью функции HistoryDealsTotal(), размер списка ордеров в истории можно получить с HistoryOrdersTotal(). Перебор элементов списка ордеров лучше...
Raison: