Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 23.10.16
Kronenchakra Kronenchakra ist offline
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Code Snippets - AccountExpertAllowed

Vorerst herzlichen Dank an den Admin, der hier ein neues Kapitel aufgetan hat!

Die Abfrage ob auf einem Account maschinelles handeln erlaubt ist oder nicht, ist natürlich bei einem EA auch wichtig und informiert den Anwender.

Ich denke, das ist auch ein gutes Beispiel mit wenig Code logische Werte umzudrehen, um dann das Programm leichter lesbar zu gestalten.

Diesen Code zB. in die 'MyUtils.mqh' einfügen:

Code:
string AccountString()
{
   return(AccountInfoString (ACCOUNT_COMPANY)+" | "+
          AccountInfoString (ACCOUNT_SERVER )+" | "+
          AccountInfoString (ACCOUNT_NAME   )+" | "+
  (string)AccountInfoInteger(ACCOUNT_LOGIN  ));
}

bool AccountExpertAllowed()
{
   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) 
      { 
         Alert("Autotrading in the terminal is disabled, Expert Advisor will be removed.");
         return(false); 
      }
   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
      {
         Alert(AccountString()+" | Error: Trading not allowed.");
         return(false); 
      }
   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
      {
         Alert(AccountString()+" | Error: Experts not allowed.");
         return(false); 
      }
   return(true);
}

bool AccountExpertForbidden()
{
   return(!AccountExpertAllowed());
}
AccountString() kann man natürlich auch einfacher gestalten.

Und so wird's verwendet:
Code:
int OnInit()
  {
   if(AccountExpertForbidden())
      {
         ExpertRemove();
         return(INIT_FAILED);
      }   
//.......
    return(INIT_SUCCEEDED);
   }
Anmerkung: Sämtliche Bibliotheksfunktionen die ich hier poste sind relativ jung.
Da können sich natürlich auch Fehler einschleichen.
Jeder der hier Fehler findet oder Verbesserungsvorschläge hat, ist herzlich dazu eingeladen diese zu posten.

Liebe Grüße und evtl. kann's jemand brauchen.