Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43265
Benutzer: 7.223
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 6 Tagen
- Sundaytrad...
vor einer Woche
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 433
Gesamt: 433
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 29.12.16
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Standard Wie Wählt mann mehrere Funtionen per true aus

Hallo kann mir bei der Programmierung jemand weiterhelfen?

Würde gerne mit einem enum Befehl mehrere Funktionen wählen können.
Wie muss dieser genau und komplett lauten um dann auch ausgeführt zu werden.
Die Auswahl :
enum TrailType1{S_Punkte,S_Kerzen,S_nur_Zeit};
enum TrailType2{G_Punkte,G_Kerzen,G_nur_Zeit,G_B_Band_M , G_B_Band_Geg};

Hier dann die einzugebende zu Handelnde Funktion.
extern TrailType1 Stop_Type = S_Punkte; // S_Punkte ist dann true und soll ausgeführt werden.
extern TrailType2 Ziel_Type= G_Punkte; // G_Punkte ist dann true und soll ausgeführt werden.

void AdjustTrail1()

// TrailType2{S_Punkte,S_Kerzen,S_nur_Zeit};
{
switch(Stop_Type)//Stop_Type
{
case S_Punkte: Kerze_Clos_S();return;
case S_Kerzen : Kerze_Hoch_S();return;
case S_nur_Zeit : nur_Zeit_S();return;
default: return;
} }

void AdjustTrail2()

//TrailType3{G_Punkte,G_Kerzen,G_nur_Zeit, G_B_Band_M, G_B_Band_Geg};
{
switch(Ziel_Type)//Einstieg_Type
{
case G_Punkte : Z_Punkte() ;return;
case G_Kerzen : Z_Kerzen() ;return;
case G_nur_Zeit : nur_Zeit_Z();return;
case G_B_Band_M : G_B_Band_M_Z();return;
case G_B_Band_Geg : G_B_Band_Geg_Z();return;
default: return;
}
}
Und nun die Funktion;
void Kerze_Clos_S()
{
Stopp_Kurs = Low[1]; ……….
}

Was muss ich ändern das hier das Tief gespeichert wird?

Der Auszubildende.
  #2 (permalink)  
Alt 30.12.16
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Question

Hallo!
Etwas mehr Info wäre hilfreich. Ist es für einen EA oder einen Indi?
Was willst du machen ?
Ich habe das formatiert wie ich mir Code vorstelle, und bitte verwende in Zukunft das Doppelkreuz im Menü um Code zu markieren.
Du rufst Funktionen auf die nicht definiert sind. Was soll dort geschehen?
Code:
#property indicator_chart_window
#property indicator_plots 0

enum TrailType1{S_Punkte,S_Kerzen,S_nur_Zeit};
enum TrailType2{G_Punkte,G_Kerzen,G_nur_Zeit,G_B_Band_M , G_B_Band_Geg};

input TrailType1 Stop_Type= S_Punkte; // S_Punkte ist dann true und soll ausgeführt werden.
input TrailType2 Ziel_Type= G_Punkte; // G_Punkte ist dann true und soll ausgeführt werden.

void AdjustTrail1()
{
   switch(Stop_Type)       //Stop_Type
   {
      case S_Punkte     : Kerze_Clos_S()  ;return;
      case S_Kerzen     : Kerze_Hoch_S()  ;return;
      case S_nur_Zeit   : nur_Zeit_S()    ;return;
   }
}

void AdjustTrail2()
{
   switch(Ziel_Type)       //Einstieg_Type
   {
      case G_Punkte     : Z_Punkte()      ;return;
      case G_Kerzen     : Z_Kerzen()      ;return;
      case G_nur_Zeit   : nur_Zeit_Z()    ;return;
      case G_B_Band_M   : G_B_Band_M_Z()  ;return;
      case G_B_Band_Geg : G_B_Band_Geg_Z();return;
   }
}

int OnInit()
{

   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   if(prev_calculated==0)     // wird nur einmal ausgeführt
      {                       // ich denke du wirst es wohl hier ausführen wollen
         AdjustTrail1();
         AdjustTrail2();
      }
   return(rates_total);
}
Mehr Info bitte

Ich habe mir deine Frage nochmals genau durchgelesen,
wahrscheinlich ist es besser das switch nicht in einzelnen Funktionen zu verpacken.

Code:
#property indicator_chart_window
#property indicator_plots 0

enum TrailType1{S_Punkte,S_Kerzen,S_nur_Zeit};
enum TrailType2{G_Punkte,G_Kerzen,G_nur_Zeit,G_B_Band_M , G_B_Band_Geg};

input TrailType1 Stop_Type= S_Punkte; // S_Punkte ist dann true und soll ausgeführt werden.
input TrailType2 Ziel_Type= G_Punkte; // G_Punkte ist dann true und soll ausgeführt werden.

int OnInit()
{
   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   if(prev_calculated==0)        // wird nur einmal ausgeführt
      {
         switch(Stop_Type)       //Stop_Type
         {
            case S_Punkte     : Stopp_Kurs = low[0]; break;
            case S_Kerzen     : Stopp_Kurs = high[]; break;
            case S_nur_Zeit   : ............       ; break;
         }
         
         switch(Ziel_Type)       //Einstieg_Type
         {
            case G_Punkte     : ................; break;
            case G_Kerzen     : ................; break;
            case G_nur_Zeit   : ................; break;
            case G_B_Band_M   : ................; break;
            case G_B_Band_Geg : ................; break;
         }
      }
   .........   
   .........   
   .........   
      
   return(rates_total);
}
return schmeisst dich aus der ganzen funktion raus, break macht nach switch weiter
  #3 (permalink)  
Alt 30.12.16
Neues Mitglied
 
Registriert seit: Nov 2014
Beiträge: 26
Auszubildender befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für deine schnelle Hilfe.

War ein klassischere Ausbildungsfehler.

Hatte die AdjustTrail1 und 2 nicht ins Hauptprogramm eingebunden.
Konnte daher die Werte und Funktionen so, überhaupt nicht berechnen und Ausführen.

War also kein Codefehler sondern schlichtweg Unaufmerksamkeit.

Danke schön.
  #4 (permalink)  
Alt 30.12.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Auszubildender Beitrag anzeigen
Vielen Dank für deine schnelle Hilfe.

War ein klassischere Ausbildungsfehler.

Hatte die AdjustTrail1 und 2 nicht ins Hauptprogramm eingebunden.
Konnte daher die Werte und Funktionen so, überhaupt nicht berechnen und Ausführen.

War also kein Codefehler sondern schlichtweg Unaufmerksamkeit.

Danke schön.
Ja aber genau das ist der häufigste Codierfehler - Unaufmerksamkeit!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

Lesezeichen

Stichworte
funktionen, funktionen true, mql4, programmierung, programmierung metatrader, programmierung mql4, true


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 14:39 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------