Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Codeschnipsel (http://www.expert-advisor.com/forum/forumdisplay.php?f=292)
-   -   Code Snippets - MagicNumber Generator (http://www.expert-advisor.com/forum/showthread.php?t=5229)

Kronenchakra 21.10.16 13:51

Code Snippets - MagicNumber Generator
 
Erzeugt aufgrund des Symbolnamens '_Symbol' eine eindeutige Nummer.
Der Symbolname wird auf 6 Buchstaben abgeschnitten.
Also EURUSDecnSchnickSchnack wird auf EURUSD genormt.
Das wird ja schon wieder eine Funktion für MyUtils.mqh 'NormalizeSymbol'
Code:

ulong MagicNumber()                                  // returns a magic number created from _Symbol
{
  string ms="",
          st=StringSubstr(_Symbol,0,6);
  int    sl=StringLen(st);                          // in case of short symbol name eg GOLD
         
  for (int i=0; i<sl; i++ )
      ms=ms+(string)StringGetCharacter(st,i);
     
  return((ulong)ms);
}


traderdoc 21.10.16 14:18

Dann aber auch in letzter Konsequenz für jedes TimeFrame.
Das alles geht aber nur in MQL5, denn die zurückgegebene Zahl bei 6 Buchstaben mittels ulong hat 12 Stellen. Die in MQL4 mit int deklarierte Variable magic in der OrderSend()-Funktion besitzt aber max. nur 10 Stellen (2 147 483 647).

Code:

ulong MagicNumber()                                  // returns a magic number created from _Symbol
{
  string ms="",
          st=StringSubstr(_Symbol,0,6);
  int    sl=StringLen(st);                          // in case of short symbol name eg GOLD
         
  for (int i=0; i<sl; i++ )
      ms=ms+(string)StringGetCharacter(st,i);
     
  return((ulong)ms + _Period);
}

traderdoc

Kronenchakra 21.10.16 14:26

Ja ist alles für MQL5


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:51 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum