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)
-   -   Eigene Berechnungs-Funktion programmieren (http://www.expert-advisor.com/forum/showthread.php?t=7201)

MA-EA 10.07.22 01:26

Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von smilemore (Beitrag 46143)
Funktion außerhalb OnCalculate() deklariert

Danke, so scheints zu funktionieren. :) Gibt zumindest keine Fehler oder Warnungen. :rolleyes:

Ziel ist, eine Art Trendlinien zu berechnen, in dem man z.B. Price_High und z.B. nen MA auf Low durcheinander dividiert. Hab ich aber noch nicht weiter probiert. Wär dankbar für Tipps und Hinweise dazu.

Und bestimmt gibts das Ein oder Andere noch zu verbessern. :rolleyes:

MA-EA 10.07.22 12:51

Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.


Kann man so eine selbst zusammen gequälte Funktion dann endlich auch benutzen, ohne dass es wieder etliche Fehlermeldungen gibt? :rolleyes:

Kompletter Indi im Anhang.
Code:

if( OPZdMA <= -1.0 || OPZdMA >= 1.0 )BUF_PRdMA[i] = OPZdPR / OPZdMA;

if( OPZdMA > -1.0 && OPZdMA < 1.0 ){
 
  BUF_PRdMA[i] = ODIV(OPZdMA,// Wert, der kleiner als 1.0 ist
                      OPZdPR,// Soll dividiert werden
                      ODIV_Div
                      ,
                      ODIV_ToDiv
                      ,
´                    ODIV_DIV_mt
                      ,
                      ODIV_mt
                      ,
                      ODIV_DivEd
                      ,
                      ODIV_DivEd_t
                    );
                   
 }

Diese Funktion soll mit den ersten beiden Werten beliefert werden und am Ende das Ergebnis ausspucken.

Code:

//=============================================================================================================
// O D I V
//=============================================================================================================

double ODIV(

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

  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;
}


MA-EA 10.07.22 15:43

Liste der Anhänge anzeigen (Anzahl: 1)
Probleme mit den Errors scheinen gelöst zu sein. :rolleyes:


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