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

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   include-Datei mit eigenen Berechnungs-Funktionen erstellen (http://www.expert-advisor.com/forum/showthread.php?t=7214)

MA-EA 12.07.22 21:32

include-Datei mit eigenen Berechnungs-Funktionen erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.


Hab ja für nen Indi 2 eigene Funktionen für Division und Multiplikation von Werten, die kleiner als 1 sind, zusammen gebastelt. Die scheinen soweit auch zu funktionieren. :cool:


Um die nicht jedes mal in andere Indis oder EAs eintragen zu müssen, wärs gut, wenn man die in ne include-Datei oder sowas einbaun könnte. So dass man dann im Indi oder so bloß noch oben die include-Datei angeben, und dann an entsprechender Stelle die Funktion aufrufen und mit entsprechenden Variablen füllen muss. Gibts für so eine include-Datei oder was es da Alles gibt, ne gute Anleitung?


Diese Funktionen sollen da drin stehn und von nem EA oder Indi benutzt werden. Vorsicht, könnten vielleicht Fehler drin sein. :rolleyes:
Code:

//=============================================================================================================
// O P Z  D I V
//=============================================================================================================

double ODIV(

  double ODIV_ToDiv// Soll dividiert werden
  ,
  double ODIV_Div// Wert, der kleiner als 1.0 ist
 
){
 
  double
  ODIV_DIV_mt
  ,
  ODIV_DivEd
  ,
  ODIV_DivEd_t;
 
  int ODIV_mt;
 

  if( ODIV_Div <= -1.0 || ODIV_Div >= 1.0 )ODIV_DivEd = ODIV_ToDiv / ODIV_Div;


  if( ODIV_Div > -1.0 && ODIV_Div < 1.0 ){
 
    ODIV_mt=0;
    while( ODIV_Div > -1.0 && ODIV_Div < 1.0 ){
 
      ODIV_DIV_mt = ODIV_Div * 10.0;
   
      ODIV_Div = ODIV_DIV_mt;
   
      ODIV_mt++;}
 
 
    ODIV_DivEd = ODIV_ToDiv / ODIV_DIV_mt;


    for( ODIV_mt ; ODIV_mt > 1 ; ODIV_mt-- ){
 
      ODIV_DivEd_t = ODIV_DivEd * 10.0;
   
      ODIV_DivEd = ODIV_DivEd_t;}
 
  }

  return ODIV_DivEd;

}

//=============================================================================================================
// O P Z  M U L
//=============================================================================================================

double OMUL(

  double OMUL_ToMul// Soll multipliziert werden
  , 
  double OMUL_Mul// Wert, der kleiner als 1.0 ist

){
 
  double
  OMUL_MUL_mt
  ,
  OMUL_MulEd
  ,
  OMUL_MulEd_t;
 
  int OMUL_mt;


  if( OMUL_ToMul <= -1.0 || OMUL_ToMul >= 1.0 || OMUL_Mul <= -1.0 || OMUL_Mul >= 1.0 )OMUL_MulEd = OMUL_ToMul * OMUL_Mul;
 
 
  if( OMUL_ToMul > -1.0 && OMUL_ToMul < 1.0 && OMUL_Mul > -1.0 && OMUL_Mul < 1.0 ){

    OMUL_mt=0;
    while( OMUL_Mul > -1.0 && OMUL_Mul < 1.0 ){
 
      OMUL_MUL_mt = OMUL_Mul * 10.0;
   
      OMUL_Mul = OMUL_MUL_mt;
   
      OMUL_mt++;}
 
 
    OMUL_MulEd = OMUL_ToMul * OMUL_MUL_mt;


    for( OMUL_mt ; OMUL_mt > 1 ; OMUL_mt-- ){
 
      OMUL_MulEd_t = OMUL_MulEd / 10.0;
   
      OMUL_MulEd = OMUL_MulEd_t;}
 
  }

  return OMUL_MulEd;

 }


AVT 13.07.22 18:03

Genrell kannst Du alles bis auf die Grundfunktionen in eine Datei schreiben, diese dann als .mqh speichern und dann mit include einbinden. Ich habe z.B. alle Benutzereingaben extra in einer Include-Datei, weil sie einfach zu lang sind und sie so einfacher zu übersehen und/oder zu ändern sind.
Du mußt nur darauf achten, daß sie vor der ersten Benutzung steht.
AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:49 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