Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 932

 

Ich schreibe gerade einen EA. Ich teste es nicht in einem Testgerät, sondern im realen Handel.

Ist es möglich, die Protokolldatei (Registerkarte "Experten") beim Start eines Expert Advisors zu löschen?

Die einzige Möglichkeit, diese Datei zu entfernen, besteht derzeit darin, das Terminal zu schließen. Der Weg , die Datei bei geöffnetem Terminal zu löschen, wäre in Ordnung.

 
pivomoe:

Ist es möglich, die Protokolldatei (Registerkarte "Experten") zu löschen, wenn ein Experte startet?

Es ist möglich, dies manuell zu tun: auf der Registerkarte, (rechte Maustaste) -> "Löschen"

 
Ivan Ivanov:

Sie können dies manuell tun: auf der Registerkarte, (rechte Maustaste) -> "Löschen".

Nur der Text auf der Registerkarte "Experte" wird verschwinden. Die Datei bleibt an ihrem Platz. Ich muss die Datei löschen oder leeren.

 

Ich möchte der Maschine beibringen, eine exakte Wohnung zu finden. Die Bedingungen sind wie folgt: Es gibt also einen Balken im Diagramm


Um eine Wohnung zu bilden, die ich finden will, muss es 3 Barsgegenüber dem 1. Bar zwischen seiner Höhe HL (dh nur 4 Bars, die in einem Bereich befinden), um die Bars zu vergleichen und zu finden Ebenen schrieb diese Bedingung

        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])         
        {

So wie ich es verstehe, geht der Vergleich weiter, aber ich habe ein Problem mit dem Zeichnen von Ebenen

double Price_Ur = Bar_Cl[qt+2];

Ich möchte ein Niveau bilden, das durch den Schlusskurs des 2. Balkens verläuft.


Ich habe eine Frage, wie man den niedrigsten Preis aus der Bedingung zurückgeben oder wie es zu finden kann meine Bedingung nicht den Preis zurück, sondern vergleicht nur die Spitzen der Kerzen, die durch die OP und CL geht? Ich habe die folgende Notation verwendet

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];

Die FunktioniLowest ermittelt den niedrigsten Höchststand relativ zum 0. Balken, aber in meinem Fall findet sie nicht den niedrigsten Preis. Wie kann ich den niedrigsten Preis aus der Bedingung zurückgeben, um ein Niveau wie im Fall vondouble Price_Ur = Bar_Cl[qt+2]; zu bilden?

 
Können Sie mir sagen, ob es eine Möglichkeit gibt, ein Array von einem EA auf einen anderen zu übertragen?
GV-Variablen sind dafür sehr ungünstig.
 
User_mt5:
Können Sie mir sagen, ob es eine Möglichkeit gibt, ein Array von einem EA auf einen anderen zu übertragen?
GV-Variablen sind dafür sehr ungünstig.

Vielleicht hilft das https://www.mql5.com/ru/code/818. Ich selbst habe es nie benutzt.

 
User_mt5:
Können Sie mir sagen, ob es eine Möglichkeit gibt, ein Array von einem EA auf einen anderen zu übertragen?
GV-Variablen sind dafür sehr ungünstig.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bibliotheken: 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, ich danke Ihnen. Ich werde mich damit befassen.
 

Ich verstehe nicht, wie in diesem Berater

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

Ich kann nicht herausfinden, wie ich verhindern kann, dass der aktuelle (noch nicht gebildete) Balken gezeichnet wird. Kann mir jemand einen Tipp geben?

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

Ich verstehe nicht, wie in diesem Berater

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

Um das Zeichnen des aktuellen (noch nicht gebildeten) Taktes zu verhindern. Kann mir jemand einen Tipp geben?

Sie sollten im Expert Advisor Diskussionsthread) fragen.