Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

"Spielereien mit String"

Geschrieben

Ein Include, der mir einen Aufsatzpunkt "Pivot" im Verhältnis zur EMA der 200 Tage geben soll .

Das Hauptprogramm übergibt den Wert der EMA und bekommt dafür den "Pivot" zurück . Dieser soll

entweder mit "25" oder "75" enden , je nach Lage der EMA im 100´er Feld ...z Bsp 1,3978 soll 1,3925 zurückgeben,

1,3945 aber 1,3875 . Anbei : Der Pivot ist für mich der Zielkurs für eine Stop-Order .

 

Es wird der Double-Zahlenwert der EMA in einen String konvertiert, dann die für mich wichtigen letzten

beiden Nachkommastellen ausgeschnitten . Nun erfolgt Umwandlung in eine Integerzahl um in Folge die

Fallunterscheidung 50 durchzuführen . Je nach Ergebnis wird der erste Teil des String herangezogen,

dieser in eine Double verwandelt und schlussendlich je nach "Digits" 0,25 oder 0,0025 abgezogen/addiert .

 

Guckst Du :

 

//+-----------------------------------------------------------------------------------------------+
//|                                      Ernten_Pivot.mqh                                         |
//|                           The code should be used for Ernten only                             |
//+-----------------------------------------------------------------------------------------------+
//+-----------------------------------------------------------------------------------------------+
//|   function  :  returns Pivot : shall be ´25´oder ´75´ ie 1.2325 or 1.2375                     |
//+-----------------------------------------------------------------------------------------------+
                                                //                                               |
double calcPivot(double locLazy200)              //                                               |
{                                               //                                               |
  string buf1 = DoubleToStr(locLazy200 ,Digits);//                                               |
  int buf2 = StringLen(buf1)                   ;//                                               |
  string buf3 = StringSubstr(buf1 ,buf2-2,2)   ;//die letzten beiden Zahlen                      |
  int buf4=StrToInteger(buf3)                  ;// convert zu ganzer Zahl                        |
//+-----------------------------------------------------------------------------------------------+
  if (Digits == 2)                              // Pair mit   2   Stellen hinter Komma           |
   {                                            //                                               |
    if (buf4 < 50 )                             // und 200EMA im UNTEREN "100-Feld"              |
      {                                         //                                               |
        double buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))-0.25  ;//                           |
      }                                         //                                               |
     else {                                     // ist im OBEREN "100-Feld"                      |
        buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))+0.25            ;//                        |
      }                                           //                                             |
Comment ( "\n","\n"," Digits= ",Digits,"\n"," 1= ", buf1 ,"\n"," 2= ",buf2,"\n"," 3= ",  //       |
         buf3,"\n"," 4= ",buf4,"\n"," Pivot = ",buf5)    ;//                                     |
  return (buf5)                                ;// = Pivot                                       |
   }                                               //                                            |
//+-----------------------------------------------------------------------------------------------+
  if (Digits == 4)                              // ein Pair mit   4    Stellen hinter Komma      |
    {                                           //                                               |
     if (buf4 < 50 )                            // und 200EMA im unteren "100-Feld"              |
       {                                        //                                               |
         buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))-0.0025      ;//                           |
       }                                        //                                               |
      else {                                    // ist im OBEREN "100-Feld"                      |
         buf5 = (StrToDouble(StringSubstr(buf1 ,0,4)))+0.0025      ;//                           |
       }                                        //                                               |
Comment ( "\n","\n"," Digits= ",Digits,"\n"," 1= ", buf1 ,"\n"," 2= ",buf2,"\n"," 3= ",  //       |
         buf3,"\n"," 4= ",buf4,"\n"," Pivot = ",buf5)    ;//                                     |
  return (buf5)                                ;// = Pivot                                       |
       }                                        //                                               |
}                                                //                                               |
//------------------------------------------------------------------------------------------------+

 

Der Code unterscheidet Märkte mit 2 oder 4 Nachkomma-Stellen .

 

Ich poste diesen Schnipsel , weil er anderen Anfängern behilflich sein möge .

 

Und den "alten Hasen" wäre ich sehr und aufrichtig für Verbesserungsvorschläge aller

Art zu Dank verbunden .

 

KB

 

PS.: Für den Interessierten habe ich meine beiden Comment-Zeilen im Code gelassen .

Diese nutzte ich zum debuggen . In meinem Code entferne ich diese nun . Ernten

ist der EA an dem ich arbeite und der dem Goldhopper folgt .

Featured Replies

Geschrieben

Hmm, bin ja Progtechnisch hinterm Mond, kannst du mal einen Screen posten, der dein beschriebenes anhand eines Charts erklärt ? :whiteflag:

Ich verstehe so etwas visuell einfach besser.

Geschrieben
  • Autor

Der Code soll den Wert 112,75 berechnen, wenn die 200EMA bei 113,49 steht . In meinem EA würde ich dort eine Stop Sell Order platzieren wollen .

Das ist für mich der Hintergrund des kleinen Programmes . Aber ich stelle in diesem Falle (ausnahmsweise einmal) KEINE

Frage sondern will informieren , wie ich dieses Problem gelöst habe . Einfach, weil mir auch schon soviel Hilfe zu Teil

wurde . KB

 

PS.: An anderer Stelle wurde der Code gerade hinterfragt, was zum Beispiel passieren würde, wenn der Markt 1 oder 3 oder 5 Digits

hätte . Muss ich mal gucken , wenn es ein Thema werden sollte .... kenne im Moment keinen entsprechenden Markt .

 

Pivot.png

Geschrieben

 

PS.: An anderer Stelle wurde der Code gerade hinterfragt, was zum Beispiel passieren würde, wenn der Markt 1 oder 3 oder 5 Digits

hätte . Muss ich mal gucken , wenn es ein Thema werden sollte .... kenne im Moment keinen entsprechenden Markt .

 

Pivot.png

 

Hängt auch vom Broker ab, bei Alpari zb hat alles mit JPY 3 Digits. EURUSD hat 5.

Das sind wahren Herausforderungen beim Programmieren, wenn das alles berücksichtigen willst. :laugh:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.