|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
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. |
|
|||
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); } 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); } |
|
|||
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. |
|
|||
Zitat:
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
funktionen, funktionen true, mql4, programmierung, programmierung metatrader, programmierung mql4, true |
|
|