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

 

Je suis en train d'écrire un EA. Je ne le teste pas dans un testeur, mais en situation réelle de trading.

Est-il possible d'effacer le fichier journal (onglet "Experts") lors du démarrage d'un Expert Advisor ?

Pour l'instant, le seul moyen de supprimer ce fichier est de fermer le terminal. La façon de supprimer le fichier avec le terminal ouvert serait parfaite.

 
pivomoe:

Est-il possible d'effacer le fichier journal (onglet "Experts") lorsqu'un Expert démarre ?

Il est possible de le faire manuellement : sur l'onglet, (bouton droit de la souris) -> "Clear" (Effacer)

 
Ivan Ivanov:

Vous pouvez le faire manuellement : sur l'onglet, (clic droit) -> "Effacer".

Seul le texte de l'onglet Expert disparaîtra. Le dossier restera en place. Je dois supprimer ou effacer le fichier.

 

Je veux apprendre à la machine à trouver un plat exact. Ses conditions sont les suivantes : il y a donc une barre sur le graphique


Afin deformer un plat, que je veux trouver il a besoin de former 3 barresen face de la 1ère barre entre sa hauteur HL (c'est à dire seulement 4 barres qui sont situés dans une gamme) pour comparer les barres et trouver des niveaux écrit cette condition

        if(
        Bar_Op[qt+2]<=Bar_Hi[qt+3]&&Bar_Cl[qt+2]>=Bar_Lo[qt+3]&& 
        Bar_Op[qt+2]>=Bar_Lo[qt+3]&&Bar_Cl[qt+2]<=Bar_Hi[qt+3]&&
        Bar_Op[qt+1]<=Bar_Hi[qt+3]&&Bar_Cl[qt+1]>=Bar_Lo[qt+3]&&
        Bar_Op[qt+1]>=Bar_Lo[qt+3]&&Bar_Cl[qt+1]<=Bar_Hi[qt+3]&&
        Bar_Op[qt+0]<=Bar_Hi[qt+3]&&Bar_Cl[qt+0]>=Bar_Lo[qt+3]&&
        Bar_Op[qt+0]>=Bar_Lo[qt+3]&&Bar_Cl[qt+0]<=Bar_Hi[qt+3])         
        {

D'après ce que je comprends, la comparaison se fait, mais j'ai un problème avec le dessin des niveaux

double Price_Ur = Bar_Cl[qt+2];

Je veux construire un niveau qui passe par le prix de clôture de la deuxième barre.


J'ai une question : comment retourner le prix le plus bas de la condition ou comment le trouver ? Peut-être que ma condition ne retourne pas le prix mais compare seulement les sommets des bougies qui passent par l'OP et le CL ? J'ai utilisé la notation suivante

int iLwCL=iLowest(_Symbol,PERIOD_D1,MODE_CLOSE,3,qt+1); int iLwOP=iLowest(_Symbol,PERIOD_D1,MODE_OPEN,3,qt+1);
double Price_Ur = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP];

La fonctioniLowest détermine le sommet le plus bas par rapport à la 0ème barre, mais dans mon cas elle ne trouve pas le prix le plus bas. Comment puis-je retourner le prix le plus bas de la condition pour construire un niveau comme dans le cas dedouble Price_Ur = Bar_Cl[qt+2]; ?

 
Pouvez-vous me dire s'il existe un moyen de transférer un tableau d'un EA à un autre ?
Les variables GV sont très peu pratiques pour cela.
 
User_mt5:
Pouvez-vous me dire s'il existe un moyen de transférer un tableau d'un EA à un autre ?
Les variables GV sont très peu pratiques pour cela.

Peut-être que cela aidera https://www.mql5.com/ru/code/818. Je ne l'ai jamais utilisé moi-même.

 
User_mt5:
Pouvez-vous me dire s'il existe un moyen de transférer un tableau d'un EA à un autre ?
Les variables GV sont très peu pratiques pour cela.

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

Bibliothèques : TradeTransactions

fxsaber, 2018.09.20 16:23

// Пример хранения/обмена данными через Ресурсы внутри Терминала
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

void OnStart()
{  
  const RESOURCEDATA<int> ResourceINT("::int"); // Ресурс для обмена int-ами. const - как доказательство, что ничего не пишется в объект класса
  
  int ArrayINT[] = {1, 2, 3};
  int Num = 5;
  
  ResourceINT = ArrayINT;  // Ресурс хранит массив.
  ResourceINT += Num;      // Добавили в ресурс еще значение.
  ResourceINT += ArrayINT; // Добавили массив.
  
  int ArrayINT2[];  
  ResourceINT.Get(ArrayINT2); // Считали данные из ресурса.
  ArrayPrint(ArrayINT2);      // Вывели: 1 2 3 5 1 2 3

  ResourceINT.Free();                // Удалили данные из ресурса
  Print(ResourceINT.Get(ArrayINT2)); // Убедились, что данных нет: 0

  const RESOURCEDATA<MqlTick> ResourceTicks("::Ticks"); // Ресурс для обмена тиками. const - как доказательство, что ничего не пишется в объект класса
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    for (int i = 0; i < 3; i++)
      ResourceTicks += Tick; // Добавили в ресурс тики

  MqlTick Ticks[];
  ResourceTicks.Get(Ticks); // Считали данные из ресурса.
  ArrayPrint(Ticks);        // Вывели.
  
  // Это полное имя ресурса для обращения из другой программы
  const string NameOut = StringSubstr(MQLInfoString(MQL_PROGRAM_PATH), StringLen(TerminalInfoString(TERMINAL_PATH)) + 5) + "::Ticks";  
  Print(NameOut); // Вывели полное имя ресурса.
  
  const RESOURCEDATA<MqlTick> Resource(NameOut); // Ресурс для доступа к данным (read-only) из другой программы
  
  MqlTick TicksOut[];
  Resource.Get(TicksOut); // Считали данные из ресурса.
  ArrayPrint(TicksOut);   // Вывели.
  
  Resource.Free();   // Не получится повлиять на данные read-only-ресурса.
  Print(_LastError); // ERR_INVALID_PARAMETER - Ошибочный параметр при вызове системной функции.
}
 
pivomoe, @fxsabe, merci. Je me pencherai sur la question.
 

Je ne comprends pas comment dans ce conseiller

https://www.mql5.com/ru/code/20254

Pour empêcher le dessin de la barre actuelle (non encore formée). Quelqu'un peut-il me donner un indice ?

Renko 2.0 Offline
Renko 2.0 Offline
  • www.mql5.com
Неторгующий советник Renko 2.0 Offline генерирует информацию по пользовательскому символу на минутном графике. Полный график Ренко с фитилями. Доступен и оффлайн! Ссылается на библиотеку Symbol для MetaTrader 5, написанную пользователем fxsaber. Настраивается с...
 
EgorKim:

Je ne comprends pas comment dans ce conseiller

https://www.mql5.com/ru/code/20254

Pour empêcher le dessin de la barre actuelle (non encore formée). Quelqu'un peut-il me donner un indice ?

Vous devriez poser la question dans le fil de discussion sur les conseillers experts (.

Raison: