Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 9 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 09.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard Suche Hilfe zur fertig Stellung für mein Indikator

Hallo Leute ich wende mich heute an euch da ich mit meinem begrenzen Wissen in der Programmierung nicht weiter komme^^
Der Indikator soll mir 4 Linien anzeigen Highhest/Lowest und dazwischen 2...
Zur Zeit klappt die anzeige nur im Gold Chart aber nicht bei Währungs Paaren...
Ich würde mich risig freuen wenn ihr mir ein paar Tips geben könnt worauf ich achten soll... anschauliche Beispiele helfen mir beim Lernen und verstehen
ich bedanke mich jetzt schon
Code:
//+----------------------------------------   Mein Linien Grid Indikator   -------------------------------+
//+-------------------------------------------------------------------------------------------------------+
#property strict
#property indicator_chart_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 4
//+---------------------------------------------------------------------------------   Chart Ausgabe   ---+
//+-------------------------------------------------------------------------------------------------------+
#property indicator_type1 DRAW_LINE
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_color1 clrOrange
#property indicator_label1 "Obere Linie"
//---
#property indicator_type2 DRAW_LINE
#property indicator_style2 STYLE_DASHDOT
#property indicator_width2 1
#property indicator_color2 clrCrimson
#property indicator_label2 "Oben - Abstand"
//---
#property indicator_type3 DRAW_LINE
#property indicator_style3 STYLE_DASHDOT
#property indicator_width3 1
#property indicator_color3 clrDodgerBlue
#property indicator_label3 "Unten + Abstand"
//---
#property indicator_type4 DRAW_LINE
#property indicator_style4 STYLE_SOLID
#property indicator_width4 2
#property indicator_color4 clrOrange
#property indicator_label4 "Untere Linie"
//+---------------------------------------------------------------------   Globale externe Variablen   ---+
//+-------------------------------------------------------------------------------------------------------+
input int      Perioden =    500;
input double   Prozent  =     30;
//+-----------------------------------------------------------------------------   Globale Variablen   ---+
//+-------------------------------------------------------------------------------------------------------+
double bufferGanzOben[];
double bufferGanzUnten[];
double bufferObenMinAbstand[];
double bufferUntenPlAbstand[];
//+-------------------------------------------------------------------------------   OnInit Funktion   ---+
//+-------------------------------------------------------------------------------------------------------+
int OnInit() {
//--- drawing settings
   SetIndexBuffer(0, bufferGanzOben);
   SetIndexBuffer(1, bufferObenMinAbstand);
   SetIndexBuffer(2, bufferUntenPlAbstand);
   SetIndexBuffer(3, bufferGanzUnten);
//---
   return(INIT_SUCCEEDED);
}
//+--------------------------------------------------------------------------   OnCalculate Funktion   ---+
//+-------------------------------------------------------------------------------------------------------+
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[]) {
//--- last counted bar will be recounted
   int _CandlesOnChart = rates_total - prev_calculated;
   if(prev_calculated > 0) {
      _CandlesOnChart++;
   }
   for(int i = 0; i < _CandlesOnChart; i++) {
//---
      _CandlesOnChart = WindowFirstVisibleBar();
//---
      int _HighestCandle = iHighest(Symbol(), PERIOD_CURRENT, MODE_HIGH, _CandlesOnChart, 0);
      bufferGanzOben[i] = High[_HighestCandle];
      int _LowestCandle = iLowest(Symbol(), PERIOD_CURRENT, MODE_LOW, _CandlesOnChart, 0);
      bufferGanzUnten[i] = Low[_LowestCandle];
//---
      double _Range = (_HighestCandle - _LowestCandle);
      double _EinProz = (_Range / 100);
      double _Prozent = (_EinProz * Prozent);
//---
      int _HighCandle = iHighest(Symbol(), PERIOD_CURRENT, MODE_HIGH, _CandlesOnChart, 0);
      bufferObenMinAbstand[i] = High[_HighCandle] + _Prozent;
      int _LowCandle = iLowest(Symbol(), PERIOD_CURRENT, MODE_LOW, _CandlesOnChart, 0);
      bufferUntenPlAbstand[i] = Low[_LowCandle] - _Prozent;
//---
      string _String = "Highest Value: " + DoubleToString(bufferGanzOben[i], Digits()) + " Lowest Valve:" + DoubleToString(bufferGanzUnten[i], Digits());
      if(ObjectCreate(0, "Display", OBJ_LABEL, 0, 0, 0)) {
         Print("Object NOT Created");
      }
      ObjectSetInteger(0, "Display", OBJPROP_FONTSIZE, 10);
      ObjectSetInteger(0, "Display", OBJPROP_WIDTH, 5);
      ObjectSetInteger(0, "Display", OBJPROP_COLOR, clrOrange);
      ObjectSetInteger(0, "Display", OBJPROP_XDISTANCE, 10);
      ObjectSetInteger(0, "Display", OBJPROP_YDISTANCE, 10);
      ObjectSetString(0, "Display", OBJPROP_TEXT, _String);
   }
   return(rates_total);
}
  #2 (permalink)  
Alt 09.10.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Code:
#property indicator_minimum 0
#property indicator_maximum 100
... sind nur für Indikatoren in einem Unterfenster, im Chart macht das keinen Sinn (alles Mögliche hat schließlich Werte, die weit über 100 hinaus gehen).

_HighestCandle und _LowestCandle geben Dir die Nummer der Kerze an, die den Höchst- und Tiefstwert haben.
Die Prozent willst Du aber nicht von den Kerzennummern wissen, sondern vom Abstand Höchst zu Tiefst. Also:
Code:
      ////double _Range = (_HighestCandle - _LowestCandle);
      double _Range = (bufferGanzOben[i] - bufferGanzUnten[i]);
      double _EinProz = (_Range / 100);
      double _Prozent = (_EinProz * Prozent);
      //Print(__FUNCTION__,
      //      " _Range=",DoubleToStr(_Range,_Digits),
      //      " _EinProz=",DoubleToStr(_EinProz,_Digits),
      //      " _Prozent=",DoubleToStr(_Prozent,_Digits)
      //     );
Die Höchst- und Tiefstwerte hast Du schon in Buffern gespeichert, dann kannst Du die Bufferwerte auch zum Weiterrechnen nehmen.
Diese Zeilen sind gleich, also überflüssig:
Code:
      int _HighestCandle = iHighest(Symbol(), PERIOD_CURRENT, MODE_HIGH, _CandlesOnChart, 0);
      int _HighCandle    = iHighest(Symbol(), PERIOD_CURRENT, MODE_HIGH, _CandlesOnChart, 0);

      int _LowestCandle = iLowest(Symbol(), PERIOD_CURRENT, MODE_LOW, _CandlesOnChart, 0);
      int _LowCandle    = iLowest(Symbol(), PERIOD_CURRENT, MODE_LOW, _CandlesOnChart, 0);
Also:
Code:
      ////int _HighCandle = iHighest(Symbol(), PERIOD_CURRENT, MODE_HIGH, _CandlesOnChart, 0);
      ////bufferObenMinAbstand[i] = High[_HighCandle] + _Prozent;
      ////int _LowCandle = iLowest(Symbol(), PERIOD_CURRENT, MODE_LOW, _CandlesOnChart, 0);
      ////bufferUntenPlAbstand[i] = Low[_LowCandle] - _Prozent;
      bufferObenMinAbstand[i] = bufferGanzOben[i] - _Prozent;
      bufferUntenPlAbstand[i] = bufferGanzUnten[i] + _Prozent;
Noch etwas, wenn der Indikator entfernt wird, bleibt Dein Text stehen. Aber wer den Raum verläßt, sollte kein Chaos hinterlassen. Also fehlt ein OnDeinit. Dazu mußt Du Deinen Objekten ein eindeutiges Präfix geben, damit wirklich nur die Hinterlassenschaften dieses Indikators entfernt werden und nicht in einem Rundumschlag alles, was ein Objekt ist. Also:
Code:
double bufferUntenPlAbstand[];
string PFX="MeinIndi_";        //Präfix für all unsere Objekte
//+-------------------------------------------------------------------------------   OnInit Funktion   ---+

//+-------------------------------------------------------------------------------  OnDeinit Funktion  ---+
//+-------------------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   // === delete all created objects with our indicator name in it
   for(int i=0; i<ObjectsTotal(); i++)
   {
      string obj_name=ObjectName(i);
      if( StringFind(obj_name,PFX,0)==0 )        //Objekt beginnt mit PFX
         ObjectDelete(obj_name);
   }
   
}
und dann in OnCalculate alle "Display" durch PFX+"Display" ersetzen.

Und noch was: Du hast eine Benutzereingabe, die wahrscheinlich festlegen soll, über wie viele Kerzen die Höchst- und Tiefstwerte ermittelt werden. In Deiner Berechnung nimmst Du aber nur die im Chart sichtbaren Kerzen. Darüber solltest Du nachdenken.

Bei mir wird alles korrekt in Dax, EurUsd angezeigt.
Das war's erst mal. Hoffe, das hilft Dir weiter.
AVT
  #3 (permalink)  
Alt 09.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard Mega :) vielen herzlichen Dank

Ich freu mich
werde nachher dank dir ein schritt weiter sein...
ich überlege gerade war überhaupt was richtig??? villeicht mein ansatz xD

Frage: kann man im code festlegen wie groß der chart im mt4 dar gestellt wird?
damit zb jedes währungspaar gleich große kerzen darstellt?

ich wünsche dir eine angenehme woche und merci vielmals für alles
  #4 (permalink)  
Alt 10.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard :)

Ich bin jetzt fertig habe alles übertragen und auf den chart angewendet...
es klappt

ich habe da noch ne fragen gefunden^^
1. den Satz versteh und finde nichts in der dokomentation...
"und dann in OnCalculate alle "Display" durch PFX+"Display" ersetzen"
  #5 (permalink)  
Alt 11.10.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nefastus Beitrag anzeigen
Frage: kann man im code festlegen wie groß der chart im mt4 dar gestellt wird?
damit zb jedes währungspaar gleich große kerzen darstellt?
Die gerade eingestellte Kerzengröße kannst Du ermitteln mit:
Code:
int    BodyWidth = (int)ChartGetInteger(0,CHART_SCALE,0); //Größe des Kerzenkörpers
Das schreibst Du am besten als globale interne Variable, dann kannst Du überall mit BodyWidth darauf Bezug nehmen. Die Zählung geht von 0=Kleinste (bis zur Unkenntlichkeit zusammengestaucht) bis 5=Größte (Riesenkerze).
Einstellen kannst Du die neue Größe dann z.B. in OnInit mit:
Code:
ChartSetInteger(0,CHART_SCALE,0,5)); //Hauptfenster mit Riesenkerzen
Und beim Verlassen Wiederherstellen des vorigen Zustandes in OnDeinit:
Code:
ChartSetInteger(0,CHART_SCALE,0,BodyWidth)); //alte Größe
Eine gute Übersicht mit Code findest Du hier:
https://docs.mql4.com/constants/char...charts_samples

Zum reinen Laden von Charts mit demselben Layout kannst Du aber besser ein Template (eine Vorlage) erstellen und dann die Vorlage laden, da ist dann auch gleich ein Indikator mit drin, wenn es sein soll.
AVT
  #6 (permalink)  
Alt 11.10.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nefastus Beitrag anzeigen
ich habe da noch ne fragen gefunden^^
1. den Satz versteh und finde nichts in der dokomentation...
"und dann in OnCalculate alle "Display" durch PFX+"Display" ersetzen"
Das bezieht sich auf Deinen Code.
In Deiner OnCalculate Funktion erzeugst Du ja noch ein Textobjekt (OBJ_LABEL), das die Werte anzeigt. Und dieses OBJ_LABEL hat ursprünglich den Namen "Display".
Nun soll aber jedes Objekt, das der Indikator erzeugt auch eindeutig zu erkennen sein (nämlich, daß es zu diesem Indikator gehört), damit wir beim Verlassen all unsere - und nur unsere - erzeugten Objekte entfernen können.
Darum haben wir die Variable string PFX="MeinIndi_" eingeführt und nun setzen wir das Präfix PFX vor den Namen aller Objekte, die der Indikator erzeugt. Das heißt: überall wo im Code vorher nur "Display" stand muß jetzt PFX+"Display" stehen (daraus wir dann das Label-Objekt namens MeinIndi_Display).
Code:
      if(ObjectCreate(0, "Display", OBJ_LABEL, 0, 0, 0)) {
         Print("Object NOT Created");
      }
      ObjectSetInteger(0, "Display", OBJPROP_FONTSIZE, 10);
      ObjectSetInteger(0, "Display", OBJPROP_WIDTH, 5);
      ObjectSetInteger(0, "Display", OBJPROP_COLOR, clrOrange);
      ObjectSetInteger(0, "Display", OBJPROP_XDISTANCE, 10);
      ObjectSetInteger(0, "Display", OBJPROP_YDISTANCE, 10);
      ObjectSetString(0, "Display", OBJPROP_TEXT, _String);
Ich hoffe, ich habe das geklärt.
AVT
  #7 (permalink)  
Alt 11.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard der Fortschritt

Dank deinen Ausführlichen Schritten versteh selbst ich als Leihe was ich zu machen habe... Dafür Bedanke ich mich

Jetzt siht der Code so aus:

Code:
//|                                                                       Mein Linien Grid Indikator   ---+
//+-------------------------------------------------------------------------------------------------------+
#property strict
#property indicator_chart_window
#property indicator_buffers 4
//+---------------------------------------------------------------------------------   Chart Ausgabe   ---+
//+-------------------------------------------------------------------------------------------------------+
#property indicator_type1 DRAW_LINE
#property indicator_style1 STYLE_SOLID
#property indicator_width1 2
#property indicator_color1 clrOrange
#property indicator_label1 "Obere Linie"
//===
#property indicator_type2 DRAW_LINE
#property indicator_style2 STYLE_DASHDOT
#property indicator_width2 1
#property indicator_color2 clrCrimson
#property indicator_label2 "Oben - Abstand"
//===
#property indicator_type3 DRAW_LINE
#property indicator_style3 STYLE_DASHDOT
#property indicator_width3 1
#property indicator_color3 clrDodgerBlue
#property indicator_label3 "Unten + Abstand"
//===
#property indicator_type4 DRAW_LINE
#property indicator_style4 STYLE_SOLID
#property indicator_width4 2
#property indicator_color4 clrOrange
#property indicator_label4 "Untere Linie"
//+---------------------------------------------------------------------   Globale externe Variablen   ---+
//+-------------------------------------------------------------------------------------------------------+
input int      Kerzengroesse = 0;
input int      Perioden = 1500;
input double   Prozent  =  20;
//+-----------------------------------------------------------------------------   Globale Variablen   ---+
//+-------------------------------------------------------------------------------------------------------+
double bufferGanzOben[];
double bufferGanzUnten[];
double bufferObenMinAbstand[];
double bufferUntenPlAbstand[];
double price, rest, _Range, _EinProz, _Prozent;
int    BodyWidth = (int)ChartGetInteger(0,CHART_SCALE,2);
//+-------------------------------------------------------------------------------   OnInit Funktion   ---+
//+-------------------------------------------------------------------------------------------------------+
int OnInit() {
//===
   ChartSetInteger(0, CHART_SCALE, 0, Kerzengroesse);
   SetIndexBuffer(0, bufferGanzOben);
   SetIndexBuffer(1, bufferObenMinAbstand);
   SetIndexBuffer(2, bufferUntenPlAbstand);
   SetIndexBuffer(3, bufferGanzUnten);
//===
   return(INIT_SUCCEEDED);
}
//+-------------------------------------------------------------------------------  OnDeinit Funktion  ---+
//+-------------------------------------------------------------------------------------------------------+
void OnDeinit(const int reason) {
//===
   ChartSetInteger(0, CHART_SCALE, 2, BodyWidth);
}
//+--------------------------------------------------------------------------   OnCalculate Funktion   ---+
//+-------------------------------------------------------------------------------------------------------+
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[]) {
//===
   int _CandlesOnChart = rates_total - prev_calculated;
   if(prev_calculated > 0) {
      _CandlesOnChart++;
   }
   for(int i = 0; i < _CandlesOnChart; i++) {
//===
      _CandlesOnChart = WindowFirstVisibleBar();
//===
      int _HighestCandle = iHighest(Symbol(), PERIOD_CURRENT, MODE_HIGH, _CandlesOnChart, 0);
      ObjectSetInteger(0, "_HighestCandle", OBJPROP_RAY, true);
      bufferGanzOben[i] = High[_HighestCandle];
//===
      int _LowestCandle = iLowest(Symbol(), PERIOD_CURRENT, MODE_LOW, _CandlesOnChart, 0);
      ObjectSetInteger(0, "_LowestCandle", OBJPROP_RAY, true);
      bufferGanzUnten[i] = Low[_LowestCandle];
//===
      _Range = (_HighestCandle - _LowestCandle);
      _Range = (bufferGanzOben[i] - bufferGanzUnten[i]);
      _EinProz = (_Range / 100);
      _Prozent = (_EinProz * Prozent);
//===
      bufferObenMinAbstand[i] = bufferGanzOben[i] - _Prozent;
      bufferUntenPlAbstand[i] = bufferGanzUnten[i] + _Prozent;
   }
   return(rates_total);
}
//===
  #8 (permalink)  
Alt 11.10.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nefastus Beitrag anzeigen
Dank deinen Ausführlichen Schritten versteh selbst ich als Leihe was ich zu machen habe... Dafür Bedanke ich mich

Jetzt siht der Code so aus:
Sind noch Fehler drin, ich schreibe Dir morgen eine Version mit Erklärungen.
AVT
  #9 (permalink)  
Alt 12.10.22
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Das Ausgeben von Print-Meldungen solltest Du Dir angewöhnen, dann kannst Du besser nachprüfen, was im Code passiert und ob es das ist, was Du beabsichtigst. Die Ausgabe siehst Du im Terminal Tab Experten. Wenn dann alles korrekt läuft, kannst Du die Print Befehle kommentieren (nicht einfach löschen, so kannst Du später mal nachsehen oder sie als Vorlage verwenden).
Wenn Du viele Print-Ausgaben im Code hast (ganz besonders wenn sie in der OnCalculate Funktion stehen), werden die Dateien ziemlich schnell groß. Daher hin und wieder die alten Dateien löschen (die vom aktuellen Tag kann man erst dann löschen, wenn MetaEditor und MetaTrader geschlossen sind):
Datei - Speicherort öffnen
Dort (wo auch die terminal.exe und metaeditor.exe liegen), gehst Du in den Ordner MQL4.
Dort findest Du einen Ordner Logs, in dem alle Ausgaben, die Du im Terminalfenster unter Experten siehst, gespeichert werden.

Hast Du schon mal im MetaEditor die F1 Taste gedrückt? Dann sollte eigentlich ein Fenster aufgehen, mit der gesamten Dokumentation.

Noch was: erst einen Plan machen, dann coden
1. was genau soll berechnet werden
2. wie sollen die Daten angezeigt werden
3. alles testen

zu 1.
Du hast hier eine Benutzerangabe "Perioden=1500". Was für "Perioden" sollen das sein, Heizperioden, Hoch-/Tiefperioden, Chartperioden? All Deine anderen Variablen benennst Du sehr genau (das finde ich super).
"Perioden" wird nirgends im Code benutzt. Derzeit ist diese Zeile also überflüssig.
zu 2.
Deine Daten (also Linien) werden über Buffer gezeichnet. Jetzt sehe ich in Deinem Code
ObjectSetInteger(0, "_HighestCandle", OBJPROP_RAY, true);
Hier gibst Du einem Linienobjekt die Eigenschaft, die Linie zu verlängern. Es gibt aber gar kein Linienobjekt.
zu 3.
Nimm einen neuen Chart, schmeiß Deinen Indikator drauf.
Bevor Du auf Ok drückst, lies Dir alle Tabs durch, was dort steht.
Dann lege über Deine Buffer-Linien von Hand eine waagerechte Linie.
Nun ändere die Kerzengröße (+ Zeichen oder - Zeichen drücken).
Danach mache die Fensterbreite kleiner (rechten Fensterrand nach links schieben).
Wo sind Deine von Hand gezeichneten Linien jetzt? Mit der Änderung der Kerzengröße oder der Fensterbreite ändert sich auch die Anzahl der sichtbaren Kerzen im Chart (und nur über diese Anzahl berechnest Du zur Zeit Deine Höchst- und Tiefstlinien).
Zum Schluß mach die Fensterbreite ganz klein, stell die Zeit auf eine Minute, nimm die größte Kerzengröße und beobachte ein paar Minuten, wie sich die Linien verhalten.
Ist es das, was Du mit Deiner Berechnung willst?

Im Anhang erst mal eine kommentierte Version Deiner letzten (testNefastus2).
Und dann eine Version mit allen Print-Ausgaben, die bereinigt ist (Nefastus3) und ein Bild wie es in 4 unterschiedlichen Märkten aussieht (beachte im Gold die erste halbe Kerze im Chart: sie wird nicht mitberechnet, soll das so sein?).

Damit hast Du erst mal viel zu lesen, zu verstehen und zu testen
AVT
Angehängte Grafiken
Dateityp: jpg Nefastus3.JPG (129,0 KB, 6x aufgerufen)
Angehängte Dateien
Dateityp: mq4 testNefastus2.mq4 (30,0 KB, 1x aufgerufen)
Dateityp: mq4 Nefastus3.mq4 (34,1 KB, 2x aufgerufen)
Nefastus likes this.
  #10 (permalink)  
Alt 16.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard ...oO... der Wahnsinn

Erst einmal vielen Dank für deine Zeit und dein Wissen...
Ich dachte nicht das man so viel zu beachten hat bei 4 Horizontale Linien xD
Mit // ** die nächste Zeile ist überflüssig, weil Du nicht mit Perioden rechnest
input int Perioden = 1500;
Das stimmt da ich nur die sichtbaren Kerzen für Hoch/Tief verwend...
werde in den kommenden Tagen dein Rat befolgen und mir die Print Funktionen näher anschauen die du mir freundlicher weise schon an den richtigen Stellen eingebaut hast ... vielen Dank
ich melde mich demnächst wieder bis dahin wünsch ich eine angenehme Woche
gruß Marcel
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +1. Es ist jetzt 07:42 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.
-----------------------------------------------------------------------------------------------------------------------------