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

 
barabashkakvn:
Alle Berechnungen werden in OnCalculate durchgeführt (d.h. ein neues Bar-Event wird hier definiert)
Danke, ich werde es mir ansehen. Vielleicht verstehe ich etwas nicht, aber es scheint, dass es in Five nicht möglich ist, den Pufferindex anzugeben, um den Wert eines benutzerdefinierten Indikators zu erhalten.
 
forexman77:
Danke, ich werde es mir ansehen. Vielleicht verstehe ich etwas nicht, aber es scheint, dass es keine Möglichkeit gibt, den Pufferindex anzugeben, um den Wert des benutzerdefinierten Indikators zu erhalten.
iCustom gibt den Handle des benutzerdefinierten Indikators an. Dann CopyBuffer, bei dem der zweite Parameter die Puffernummer ist.
 
Können Sie mir sagen, ob es eine Funktion gibt, die die Optimierung eines EAs komplett stoppt, anstatt einen separaten Optimierungslauf durchzuführen?
 
barabashkakvn:
iCustom gibt den Handle des benutzerdefinierten Indikators an. Dann CopyBuffer, bei dem der zweite Parameter die Puffernummer ist.

Ist es möglich, den Wert des Indikators im Skript abzurufen?

Ich habe es auf diese Weise versucht:

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("MA_handle=",MA_handle);
  }

Ich erhalte den Wert für jeden Indikator 10.

Ich habe es auch auf diese Weise versucht (der Fehler 4807 wird angezeigt):

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
int MA_handle;
double ma1Val[]; 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

//--- массив значений индикатора MA
   ArraySetAsSeries(ma1Val,true);
//--- копируем значения индикаторов из индикаторных буферов
   if(CopyBuffer(MA_handle,0,0,3,ma1Val)<0)
     {
      Alert("Ошибка копирования буферов индикатора Moving Average - номер ошибки:",GetLastError(),"!!");
      return;
     }
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("ma1Val[0]=",ma1Val[0]);
  }
 
forexman77:
Dabei wird das folgende Verfahren angewandt:
iCustom gibt Ihnen den Griff des benutzerdefinierten Indikators. Dann kopieren Sie CopyBuffer, wobei der zweite Parameter die Puffernummer ist.

Ist es möglich, den Wert des Indikators im Skript abzurufen?

Ich habe es auf diese Weise versucht:

Ich erhalte den Wert für jeden Indikator 10.

Ich habe es auf eine andere Weise versucht (Fehler 4807 wird angezeigt):

1. lesen Sie die iCustom Hilfe.
2. So erhalten Sie den Wert des Indikatorpuffers: Holen Sie den Indikator-Handle und kopieren Sie dann den gewünschten Indikatorpuffer mit CopyBuffer.
 
barabashkakvn:
1. lesen Sie die iCustom-Hilfe.
2. Reihenfolge der Beschaffung des Indikatorpuffers: Beschaffung des Indikator-Handles und anschließende Verwendung von CopyBuffer zum Kopieren des erforderlichen Indikatorpuffers mit diesem Handle.
Ich verstehe, ich werde es studieren. Ich habe nach dem Skript gefragt, weil es kein "OnInit" hat und den Handle bekommt. Das Skript fragt also vor "OnStart" nach dem Handle?
 
forexman77:
Verstehe, ich werde es mir ansehen. Ich habe nach dem Skript gefragt, weil es kein "OnInit" hat und den Handle bekommt. Bedeutet dies, dass das Skript den Handle vor "OnStart" anfordert?
OnInit ist in Expert Advisors und Indikatoren vorhanden.
 
barabashkakvn:
OnInit befindet sich in Experten und Indikatoren.
Es hat alles funktioniert!!! Ich danke Ihnen!!!
 
forexman77:
Es hat alles geklappt! Ich danke Ihnen!!!
Bitte sehr.
 
Fleder:
Die Produkte im Markt haben zwischen 5 und 20 Aktivierungen (je nach Ermessen des Händlers). Wenn Sie Ihre Aktivierungsversuche noch nicht ausgeschöpft haben, wird Ihnen kein zusätzliches Geld berechnet.
Vielen Dank für die Antwort, ich werde den Knopf zum Kauf drücken. Es gibt keine andere :-)