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: 43284
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 6 Tagen
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

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

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 18.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard erster Test OK

So weit ich es beurteilen kann ist alles ok...
das mit der halben Kerze stört mich gerade nicht... ersteinmal abwarten

ich habe Versucht die Linien im Chart auszulesen mit Hilfe diesen Zeilen
PHP-Code:
void OnTick() {
   
int objects ObjectsTotal();
   
string comment StringConcatenate("\n\n"objects);
   for(
int i ObjectsTotal() - 1>= 0i--) {
      
string name ObjectName(i);
      
ENUM_OBJECT type = (ENUM_OBJECT)ObjectGetInteger(0nameOBJPROP_TYPE);
      if(
type == OBJ_HLINE) {
         
comment StringConcatenate(comment"\n"name);
      }
   }
   
Comment(comment);

und kam dabei auf die Zahl 1 und nicht auf Zahl 4 ???
Wie im Bild habe ich 2 weitere Linien eingezeichnet die Erkennt er richtig...

hast du eine Idee?
fg Marcel
ps: ich würde gerne ein Bild einfügen weiß aber nicht wie das geht mit der URL
  #12 (permalink)  
Alt 18.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 Einfache zuerst:
Zitat:
Zitat von Nefastus Beitrag anzeigen
ich würde gerne ein Bild einfügen weiß aber nicht wie das geht mit der URL
Du klickst unten auf Anhänge verwalten, ein neues Fenster erscheint; Du klickst auf Durchsuchen und wählst die Datei von Deiner Festplatte aus (neben Durchsuchen steht dann der Name der Datei, die Du gewählt hast. Stimmt der Name, klickst Du auf Hochladen. Wenn das erfolgreich war, erscheint ein neues Kästchen "Aktuelle Anhänge" mit der Liste Deiner Anhänge. Siehe Bilder Unbenannt + Unbenannt2.

Zitat:
Zitat von Nefastus Beitrag anzeigen
ich habe Versucht die Linien im Chart auszulesen mit Hilfe diesen Zeilen ...
Code:
void OnTick() {  ... }
und kam dabei auf die Zahl 1 und nicht auf Zahl 4 ???
Wie im Bild habe ich 2 weitere Linien eingezeichnet die Erkennt er richtig...
OnTick gehört in einen Expert Advisor (und nur in den) und nicht in einen Indikator oder ein Skript - das nur mal nebenbei.
Ich habe Deinen Code mal in ein Skript gepackt (im Kommentar steht jetzt genau, was gefunden wird) und auf alle möglichen meiner Charts gepackt und bei allen ist das Ergebnis völlig korrekt.

Wenn Du einen komplett neuen Chart nimmst und Deinen Indikator draufschmeißt und dann das Skript auf diesen Chart packst, dann sollte es eigentlich Dir eigentlich sagen, daß 2 Objekte da sind, nämlich die Chart-ID und der Text mit den Höchst-/Tiefstwerten, und sonst gar nix. ***

Wenn Du jetzt über jede Linie im Chart von Hand eine waagerechte Linie legst, dann sollte er Dir sagen, daß es 6 Objekte gibt:
1 Chart-ID
1 (Textobjekt) namens LinienGrid_Display
4 Linien (wahrscheinlich alle mit einem Namen "Horizontal Line xxx", wobei die xxx eine Zahl ist).
-------
*** Wenn Du Dich jetzt fragst, warum auf dem "nackten Chart" mit Deinem Indikator nur die Chart-ID und das Textobjekt erscheinen: weil die Indikatorlinien mit Buffern gezeichnet werden und nicht mit Linienobjekten. Das kannst Du bei diesem Indikator sehen in Ansicht - Datenfenster: dort erscheinen die von Dir erzeugten Buffer (und wenn Du mit der Maus im Chart bist, kommen die Werte)
Code:
#property indicator_label1 "Obere Linie"     //double bufferGanzOben[];
#property indicator_label2 "Oben - Abstand"  //double bufferObenMinAbstand[];
#property indicator_label3 "Unten + Abstand" //double bufferUntenPlAbstand[];
#property indicator_label4 "Untere Linie"    //double bufferGanzUnten[];
In den SkriptErgebnisse kannst Du sehen, wie es aussieht.
Ich hoffe, das beseitigt alle Unklarheiten.
AVT
Angehängte Grafiken
Dateityp: jpg Unbenannt.JPG (57,7 KB, 3x aufgerufen)
Dateityp: jpg Unbenannt2.JPG (65,4 KB, 3x aufgerufen)
Dateityp: jpg SkriptErgebnisse.JPG (80,4 KB, 4x aufgerufen)
Angehängte Dateien
Dateityp: mq4 testFindLines.mq4 (1,7 KB, 1x aufgerufen)
  #13 (permalink)  
Alt 19.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard

Ok das man die Buffer Linien im Experts nicht so auslesen kann wuste ich nicht dann muss ich weiter auf Fehler suche gehen^^
meine Idee mit dem Indikator ist einfach...

wenn er den Buffer(1) Oben - Abstand durchbricht macht er eine Sell(Grid System)
wenn Positionen offen sind wenn der Buffer(2) Unten + Abstand durchbricht schließt er diese und erstellt Buy Positionen
zum Üben ersteinmal was simples^^

Code:
//===
   static double lastBid = Bid;
//===
   double H_Sell = iCustom(Symbol(), Timeframe, "Mein_Linien_Grid_Indikator", Kerzengroesse, Prozent, 1, 0);
   double L_Buy  = iCustom(Symbol(), Timeframe, "Mein_Linien_Grid_Indikator", Kerzengroesse, Prozent, 2, 0);
//===
   if(Bid < L_Buy && lastBid > L_Buy) {
      if(ticket > 0) {
         for(int i = 0; i < OrdersTotal(); i++) {
            if(OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()) {
               if(OrderType() == OP_SELL) {
                  if(OrderClose(OrderTicket(), OrderLots(), Ask, Slippage)) {
                     i--;
                  }
               }
            }
         }
      }
      ticket = myOrderType = 2;
   } else if(Bid > H_Sell && lastBid < H_Sell) {
      if(ticket > 0) {
         for(int i = 0; i < OrdersTotal(); i++) {
            if(OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber() == Magic && OrderSymbol() == Symbol()) {
               if(OrderType() == OP_BUY) {
                  if(OrderClose(OrderTicket(), OrderLots(), Bid, Slippage)) {
                     i--;
                  }
               }
            }
         }
      }
      ticket = myOrderType = 1;
   }
   lastBid = Bid;
//===
mein Problem ist das er im EUR/USD korekt die Sell Position eröffnet hat und im USD/CAD eröffnet er Positionen in der Mitte -_-
Das schau ich mir morgen an^^ gute Nacht
Angehängte Grafiken
Dateityp: png Horizontale Linien Test 2.png (118,5 KB, 2x aufgerufen)
  #14 (permalink)  
Alt 25.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard So 2 Wochen sind um^^

So AVT habe viel getestet auch im Life Betrieb (auf Demo Konto) habe die Print Funktionen getestet die du mir netter weise schon geschrieben hast bis jetzt hab ich kein Fehler erkennen können aber eine Frage hab ich noch^^ es geht um die letzte halbe kerze die nicht mit berechnet wird:
Was muss ich im Code ändern damit ich die mit berechne?
Ich bedanke mich recht herzlich bei dir für deine grandiose Arbeit das viele Schreiben / Erklären und die Gedult für Hobby Programmierer

Danke

gruß Marcel
  #15 (permalink)  
Alt 25.10.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard Bild vergessen

Er Eröffnet jetzt richtig bei der Linie "FREU"
Angehängte Grafiken
Dateityp: png test bild 251022.png (133,2 KB, 3x aufgerufen)
  #16 (permalink)  
Alt 26.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
es geht um die letzte halbe kerze die nicht mit berechnet wird:
Was muss ich im Code ändern damit ich die mit berechne?
Du kannst Dir mit Print ja anzeigen lassen, welche Kerzennummer die 1. sichtbare Kerze im Chart hat. Das war im Indikator _NummerErsteSichtbareKerze. Gleichzeitig hatten wir gesagt, das soll auch die Anzahl der _BenoetigteKerzen sein.

Die "normale" Schleife geht so:
von i=limit bis i>=0 (also irgendwo links am Chartanfang bis die aktuelle Kerze 0 erreicht ist).
Welchen Wert limit hat, kannst Du Dir auch mit Print anzeigen lassen. limit ist bei mir im einfachen Fall immer so eingestellt, daß es mit der benötigten Anzahl anfängt (dann muß man nur am Anfang die benötigte Anzahl ändern).

Wenn Du also eine Kerze mehr berechnen willst, dann ist die Anzahl der _BenoetigteKerzen eben eine mehr, also _NummerErsteSichtbareKerze+1 (nicht vergessen, "normal" zählen wir die Kerzen rückwärts hoch).

Ich hoffe, das hilft Dir, die richtige Stelle zu finden. AVT
  #17 (permalink)  
Alt 06.11.22
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard ein paar wichtige Fragen :)

Hallo mir sind diese Woche viele Fragen durch den Kopf gegangen die ich euch heute stellen möchte. Da ich kein gelernter Programierer bin... kenn und weiß nicht welche Fragen ich mir stellen muss^^ Wie immer bedanke ich mich jetzt schon für jeden Kommentar der mir weiter hillft

Fragen:
- Ich weiß was die OnInit, OnDeinit macht ... was schreibt ihr da grundsätzlich rein?
- Ist es ratsam alles in ein EA untereinander zu schreiben oder besser alles in kleine Funktionen?
- welche Funktionen würdet ihr in die Include schreiben um darauf immer zuzugreifen?
- gibt es ein vordruck was alles in ein EA gehört um es sicher zu machen zB vor Abstürzen oder damit der EA am Sonntag 23:01 Uhr weiß welche Trades vom Freitag noch offen?

Vielen Dank fürs Lesen und Kommentieren und wünsche euch eine angenehme Woche... euer Marcel
  #18 (permalink)  
Alt 31.01.23
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard

Hallo da ich den Indikator nur im Visuellen Modus und im Life(Demo) mit einem Expert getestet habe, ist mir jetzt erst aufgefallen das er im Backtest ohne Visuellen Modus gar nichts macht... hast du ein Tip für mich damit es auch im schnell Test klappt? vielen dank im vorraus
  #19 (permalink)  
Alt 31.01.23
Mitglied
 
Registriert seit: Jun 2017
Ort: Lyss und Berlin
Beiträge: 31
Nefastus befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nefastus Beitrag anzeigen
Hallo da ich den Indikator nur im Visuellen Modus und im Life(Demo) mit einem Expert getestet habe, ist mir jetzt erst aufgefallen das er im Backtest ohne Visuellen Modus gar nichts macht... hast du ein Tip für mich damit es auch im schnell Test klappt? vielen dank im vorraus
Ich nehme die frage zurück^^ anscheinend hat er probleme mein ea schnell auszuführen -.- habe das gefühl das der Visuellen Modus genau so schnell ist (LANGSAM)
Thema geschlossen

Lesezeichen


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 21:12 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.
-----------------------------------------------------------------------------------------------------------------------------