[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 186

 
Dimka-novitsek:
Ich bin neugierig, was an meiner Version falsch ist.

In Ihrer Version schläft er erstens 300 Mal in 1 Berechnung ein

Zweitens wird es müde, bei jedem Ticken 600 Mal eine Nachricht zu erstellen.

Und drittens wird diese rote Linie in das Diagramm eingezeichnet. Die rote Linie hat einen Höchstwert von 0,86 und die grüne Linie einen Mindestwert von 1,34.

damit Sie die Ergebnisse nicht sehen können.

 
ScioMe:

Es wird grün gezeichnet, aber nur an der Kerze, bevor sie sich schließt! Davor ist es nie der Fall.

Ich denke, es sollte nur zeichnen, wenn Sie StopLoss und/oder TakeProfit ändern
 
pyatka__ASD:

Guten Tag. Bitte helfen Sie mir.

Wie finde ich ein mit dieser Formel berechnetes Muster von Balkenverschiebungen? ObjectGetShiftByValue

Was ist das Muster?
 

Ich sehe keine Ergebnisse.

Danke!!! Ich bin ein Lämmchen!

 
eddy:
Ich denke, es sollte nur zeichnen, wenn Sie StopLoss und/oder TakeProfit ändern

Ja, das Protokoll bestätigt es.
 
Nun, er wechselt sie beim ersten Takt
 

Eine Frage zu einigen der Feinheiten beim Aufruf von WinAPI-Funktionen.

Es gibt eine Funktion GetPrivateProfileStringA.

Import der Funktion in mql.

#import "kernel32.dll"
  int GetPrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string Default,        // Значение по умолчанию
        string ReturnedString, // Возвращаемое значение параметра
        int    nSize,          // Размер буфера под значение параметра
        string FileName);      // Полное имя файла
  int WritePrivateProfileStringA
      ( string SectionName,    // Наименование секции
        string KeyName,        // Наименование параметра
        string sString,        // Записываемое значение параметра
        string FileName);      // Полное имя файла
#import

Beschreibung eines der Parameter:

lpKeyName [in] 

The name of the key whose associated string is to be retrieved. 
If this parameter is NULL, all key names in the section specified by the lpAppName parameter 
are copied to the buffer specified by the lpReturnedString parameter.

Frage - wie kann man "echte NULL" übergeben?

Die Übergabe von "mql NULL" (auch "" string) ergab einen Standardwert anstelle einer Liste von "keys in section".

lpDefault [in] 
A default string. If the lpKeyName key cannot be found in the initialization file, 
GetPrivateProfileString copies the default string to the lpReturnedString buffer. 
If this parameter is NULL, the default is an empty string, "".

Ich habe "real NULL" erwähnt, weil ich über ein ähnliches Problem (genau mit dieser Funktion) in einem Forum über Basic gelesen habe. Das Forum war englischsprachig (d.h. alles, was ich verstehen konnte, stimmte nicht), und das Problem wurde mit Hilfe der Grundlagen gelöst.

 
eddy:
Nun, es ändert sie auf der offenen Bar


Soweit ich verstanden habe, kann OrderModify() auch Stops auf anderen Bars als dem Eröffnungsbar ändern? Mein Code (der fast vollständig aus dem Buch von S. Kovalev stammt) ist so aufgebaut, dass sich die Haltestellen nicht nur während des Öffnens, sondern auch beim Eintreten bestimmter Ereignisse ändern:

 switch(Tip)                                  // По типу ордера
   {
      case 0 :                                // Ордер Buy
         if (NormalizeDouble(SL,Digits)<     // Если ниже желаем.
            NormalizeDouble(Bid-TS*Point,Digits))
               {
      // Ниже я только добавил функцию New_Stop
                  SL=Bid-New_Stop(TS)*Point; // то модифицируем его
                  string Text="Buy ";         // Текст для Buy 
                  Modify=true;                // Назначен к модифи.
               }
               break;
// Функция из этой же книги:
int New_Stop(int Parametr)                      // Проверка стоп-прик.
  {
   int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция
   if (Parametr < Min_Dist)                     // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа.");
     }
   return(Parametr);                            // Возврат значения
  }
[Deleted]  

Können Sie mir bitte sagen, wie ich die Zeit der Indikatorzeile

val1[] zuweisen kann. Oder sagen Sie mir, wie es geht und was ich verwenden muss, weil ich es nicht herausfinden kann. Laguerre-Indikator.
   i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
   LastLag++;}

Wenn z. B. die Linie val1[c] den Wert 0,45 nach oben überschreitet, wird der Zeitwert in der Variablen TimeBegin gesetzt, und wenn sie den Wert nach unten überschreitet, wird der Zeitwert in der Variablen TimeEnd gesetzt. Und so weiter durch das ganze Diagramm.

Dateien:
 
ScioMe:

Soweit ich verstanden habe, kann OrderModify() auch Stops auf anderen Bars als dem Eröffnungsbar ändern?

Nun, die Pfeile befinden sich in der offenen Leiste. Sie legen nur ihre Farbe fest.