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

 
new-rena:

Gegenfrage.

Glauben Sie, dass die Entwicklung eines Währungspaares - Chart, Geld- und Briefkurse usw. - von einer Reihe Ihrer Variablen abhängt?

Die Kursbewegung hängt nicht von den Variablen ab, aber ein Händler versucht, Regelmäßigkeiten in der Bewegung zu finden, und auf dieser Grundlage wählt er Variablen (Eingangsdaten) für das Eröffnen, Halten und Schließen von Positionen aus. Schließlich ist das Handelssystem ein Regelwerk, das auf eine gewinnbringende Arbeit ausgerichtet ist. Vielleicht ist die Verteilung von Gewinnen und Verlusten zufällig, aber ihr Verhältnis ist unterschiedlich, so dass sich profitable Handelssysteme bilden. Das muss so sein.
 
Евгений:
Die Bewegung des Kurses hängt nicht von den Variablen ab, aber der Händler versucht, Muster in der Bewegung zu finden, und auf dieser Grundlage wählt er die Variablen (Eingangsdaten) für die Eröffnung, Aufrechterhaltung und Schließung der Position. Schließlich ist das Handelssystem ein Regelwerk, das auf eine gewinnbringende Arbeit ausgerichtet ist. Vielleicht ist die Verteilung von Gewinnen und Verlusten zufällig, aber ihr Verhältnis ist unterschiedlich, so dass sich profitable Handelssysteme bilden. Ich denke schon.
Im Grunde haben Sie Ihre eigene Frage beantwortet. Das heißt, bei der gleichen Kursbewegung können Sie folgendes erhalten: Gewinn-Verlust = CONST
 
eine Funktion zur Einschränkung vorschlagen, im Expert Advisor möchte ich ein Verbot für den Verkauf oder Kauf vom gleitenden Durchschnitt setzen.
 
KoltRU:
Bitte beraten Funktion zu begrenzen, in Expert Advisor Ich möchte ein Verbot für den Verkauf oder Kauf aus dem gleitenden Durchschnitt zu setzen.
Ich habe es einfacher gemacht, indem ich eine Bedingung beim Öffnen hinzugefügt habe
 

Das ist ein Ärgernis. Die Array-Referenz wird nicht an die Funktion übergeben.

void GetIndValue(int IndNo, int Vol, double *out[]){;};

Bei diesem Double *out[] treten alle Fehler auf, egal wie man es schreibt.

'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' - Zeiger kann nicht verwendet werden BatIndicators.mqh 18 45

out' - Arrays werden nur per Referenz übergeben BatIndicators.mqh 18 46

2 Fehler, 0 Warnung(en) 3 1

entweder das eine oder das andere oder beides. Ich erinnere mich, dass es vorher kein Problem gab, oder es ist in C. )


 
Yuriy Asaulenko:

Das ist ein Ärgernis. Die Array-Referenz wird nicht an die Funktion übergeben.

Bei diesem Double *out[] treten alle Fehler auf, egal wie man es schreibt.

'BatIndicators.mqh' BatIndicators.mqh 1 1

'*' - Zeiger kann nicht verwendet werden BatIndicators.mqh 18 45

out' - Arrays werden nur per Referenz übergeben BatIndicators.mqh 18 46

2 Fehler, 0 Warnung(en) 3 1

entweder das eine oder das andere oder beides. Ich erinnere mich, dass es vorher kein Problem gab, oder es ist in C. )


Probieren Sie es so

void GetIndValue(int IndNo, int Vol, double &out[]){}
 
Andrey Barinov:

Versuchen Sie dies

Ich danke Ihnen.
 

//--- Ermitteln der Nummer des neuen Unterfensters, in dem wir versuchen werden, den Indikator hinzuzufügen

int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);

Dies ist der Code, den ich mir ansehe https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd

Das Beispiel zeigt, wie man einen Indikator in ein Unterfenster setzt. Wenn Sie kein Unterfenster benötigen, können Sie einfach das Beispiel von muwig verwenden, um zu zeigen, wie es geht?

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Antoshkin:

//--- Ermitteln der Nummer eines neuen Unterfensters, in dem wir versuchen werden, einen Indikator hinzuzufügen

int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);

Dies ist der Code, den ich mir ansehe https://www.mql5.com/ru/docs/chart_operations/chartindicatoradd

Das Beispiel zeigt, wie man einen Indikator in ein Unterfenster setzt. Wenn Sie kein Unterfenster benötigen, können Sie einfach das Beispiel von muwig verwenden, um zu sehen, wie es geht?

Wenn Sie den Indikator zum Hauptfenster hinzufügen möchten, dann:

Unterfenster

[in] Nummer des Unterfensters des Diagramms. 0 bedeutet Hauptkartenfenster. Um einen Indikator zu einem neuen Fenster hinzuzufügen, muss der Parameter um eins größer sein als der Index des letzten vorhandenen Fensters, d.h. gleichCHART_WINDOWS_TOTAL. Wenn der Wert des Parameters den Wert vonCHART_WINDOWS_TOTAL überschreitet, wird kein neues Fenster erstellt und der Indikator wird nicht hinzugefügt.

 
Karputov Vladimir:

Wenn Sie dem Hauptfenster einen Indikator hinzufügen müssen, dann:

//+------------------------------------------------------------------+
//|                                                         0000.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

input int MA_Period=21; 
input int MA_Shift=0; 
input ENUM_MA_METHOD MA_Method=MODE_SMA;

int MA_handle=INVALID_HANDLE; 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit() 
  { 
  
   MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
//--- попробуем добавить индикатор на график 
AddIndicator();

   return(INIT_SUCCEEDED); 
  } 

//+------------------------------------------------------------------+ 
//| Функция проверки и добавления индикатора на график               | 
//+------------------------------------------------------------------+ 
bool AddIndicator() { if(MA_handle==INVALID_HANDLE) 
{ Print(__FUNCTION__,"  Создаем индикатор ");

 MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );
if(MA_handle==INVALID_HANDLE) 
{ 
 Print("Не удалось создать индикатор . Код ошибки ",GetLastError()); 
 } 
  }     
//--- сбросим код ошибки 
   ResetLastError(); 
//--- накладываем индикатор на график 
  
   Print("Mа построен "); 
//--- получим номер нового подокна, в которое добавим индикатор  
   int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL); 
   PrintFormat("Добавляем индикатор на окно %d графика",subwindow); 
   if(!ChartIndicatorAdd(0,subwindow,MA_handle)) 
     { 
      PrintFormat("Не удалось добавить индикатор  на окно %d графика. Код ошибки  %d", 
                  subwindow,GetLastError()); 
     } 
   return(true); 
  } 
void OnDeinit(const int reason)
{
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",  MA_Period,  MA_Shift, MA_Method,  PRICE_CLOSE  );

Hallo Vladimir.

Ich habe meine Frage wohl falsch formuliert.

Ich brauche kein Unterfenster, der Indikator sollte auf dem Preisdiagramm platziert werden, wie ein Standarddiagramm

Ich betrachte es als ein Beispiel und versuche zu verstehen.

Ich möchte, dass der Indikator, der auf dem Diagramm montiert ist, seine Nummer hat, so dass die erforderliche Anzahl von Kopien auf dem Diagramm mit der Schaltfläche "Hinzufügen" erstellt werden kann ..... Ich möchte eine mit der Schaltfläche "Kreuz" ........ (ich möchte sie noch nicht beschreiben) ausgewählte Datei löschen.)