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: 43256
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 10 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: 689
Gesamt: 689
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree3Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 25.03.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
T.P. befindet sich auf einem aufstrebenden Ast
Standard Hilfe bei einer Schleife

Hallo, zu Vereinfachung ein einfacher MA Cross Code.

Ich möchte gerne eine Schleife im Indikator erstellen die sagt:

Wenn ein Buy Signal vorliegt sende einen Pfeil.
Warte dann bis ein Sell Signal vorliegt.

Wenn ein Sell Signal vorlag dann soll erst wieder ein Buy Signal mit Pfeil auftreten dürfen.

Sozusagen soll der Pfeil nur am Anfang erscheinen und nicht mehrfach.
Das ganze als Schleife.

Mir fehlt irgendwie die Idee der Umsetzung der Schleife...

Für eure Hilfe bin sehr ich dankbar : )
Angehängte Dateien
Dateityp: mq4 MA Cross.mq4 (4,7 KB, 5x aufgerufen)
  #2 (permalink)  
Alt 25.03.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Ein CrossOver geht mit dem Vergleich der vorigen Werte und der jetzigen Werte:
War der vorige Ma1 unter dem vorigen Ma2 und ist der jetzige Ma1 über dem jetzigen Ma2, dann hat er gekreuzt.
Hilft das schon? AVT
T.P. likes this.
  #3 (permalink)  
Alt 25.03.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
T.P. befindet sich auf einem aufstrebenden Ast
Standard

Danke dir.

Der Code war nur so gewählt der einfachheit.

Ich möchte das gerne mit einer Schleife lösen da viele Indikatoren ja nicht dauerhaft ein Signal an der vorherigen Kerze zeigen..

Also fällt die Option leider weg....

Eine 2te andere Möglichkeit war auch...

PHP-Code:
  if (EMA10L EMA20L && wechsel1==0)

         { 
           
wechsel1=1;
           
wechsel2=0;
           
CrossUp[i-1] = Low[i-1] - Range*0.10;  }
      
      
      else if  (
EMA10L EMA20L && wechsel2==0
            
         {
          
wechsel2=1;
          
wechsel1=0;
          
CrossDown[i-1] = High[i-1] + Range*0.10; }  
  } 
Problem ist dann das er es nur im Backtest richtig macht aber auf den Chart gezogen falsch anzeigt in der Vergangenheit..
Im Live modus funktioniert das ganze dann.. Aber zur Nachbetrachtung halt schlecht..

Deswegen dachte ich man kann da irgendwie eine Schleife schreiben..

Geändert von T.P. (25.03.18 um 20:46 Uhr)
  #4 (permalink)  
Alt 26.03.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
T.P. befindet sich auf einem aufstrebenden Ast
Standard

Hm.. Niemand der eine Idee hat?
Ich hab es nicht so raus mit den Schleifen Funktionen..
  #5 (permalink)  
Alt 26.03.18
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von T.P. Beitrag anzeigen
... falsch anzeigt in der Vergangenheit...
Meinst du damit, das er mit deinem Code dann nicht den ersten zeigt, sondern den letzten?

Du willst also einfach immer abwechselnd rot / blau haben, diese dann aber jeweils bei dem ersten mit Pfeil markieren?
  #6 (permalink)  
Alt 26.03.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
T.P. befindet sich auf einem aufstrebenden Ast
Standard

Ja genau hier der code mit dem Wechsel.

Ist eben Live und im Backtest ok aber wenn man es auf den Chart zieht ist es in der Vergangenheit falsch angeziegt.

Deswegen hätte ich gerne was wie ne Schleife.

Man hat ja auch manchmal Signale die unregelmäßig auftreten siehe Bild..

Deswegen soll der Code auch nicht einfach nur die letzte Kerze nach einem Pfeil absuchen.
Man hätte ja dann trozdem in einem Aufwärtstrend mehrere Blaue Pfeile wegen der lücken..
Angehängte Grafiken
Dateityp: jpg Beispiel.jpg (63,6 KB, 3x aufgerufen)
Angehängte Dateien
Dateityp: mq4 MA Cross mit wechsel.mq4 (5,0 KB, 0x aufgerufen)
  #7 (permalink)  
Alt 26.03.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
T.P. befindet sich auf einem aufstrebenden Ast
Standard

Vielleicht nochmal hier zum besseren Verständnis. In dem Bild sind die Pfeile markiert die ich angezeigt haben möchte.

Dies geht glaube ich nur in einer Schleife..
Indem man sagt:

If Buysignal {Pfeil}

warte bis Sell Signal

und erst dann kannste wieder einen Pfeil machen..

So in Worten oder wie mit dem Wechsel halt beschrieben.. Ich weiß eben nicht wie man das als Schleife formuliert..
Angehängte Grafiken
Dateityp: jpg Beispiel.jpg (78,6 KB, 5x aufgerufen)
  #8 (permalink)  
Alt 26.03.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Auch hier mal was Grundsätzliches:

Wat is ne Schleife?

Allgemein ist man vom Ausgangspunkt beginnend, am Ende der Schleife wieder automatisch am Ausgangspunkt - ganz einfach.

Für eine programmtechnsiche Schleife zitiere ich einfach mal Wiki:
"Eine Schleife (auch „Wiederholung“ oder englisch loop) ist eine Kontrollstruktur in Programmiersprachen. Sie wiederholt einen Anweisungs-Block – den sogenannten Schleifenrumpf oder Schleifenkörper –, solange die Schleifenbedingung als Laufbedingung[Anm 1] gültig bleibt bzw. als Abbruchbedingung nicht eintritt. Schleifen, deren Schleifenbedingung immer zur Fortsetzung führt oder die keine Schleifenbedingung haben, sind Endlosschleifen."

Eine if-Abfrage sieht von der Struktur her mindestens so aus:
Code:
if (x == y) z = a;
aber selbst bei verschachtelten Schleifen wie:
Code:
if (x == y) {                        //Anfangspunkt
   if (a + b < c) {
      Mach_Irgend_Was();
   } else {
      Na_Dann_Eben_Nicht();
   }
} else z = a;                        // Endpunkt
Man wird nie direkt den Anfangspunkt (nach Erreichen des Endpunktes) wieder erreichen. Nicht über eine if-Struktur!

So und nun denk bitte noch mal in Ruhe darüber nach, was genau und wann geschehen soll.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #9 (permalink)  
Alt 26.03.18
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Doc,

falls du auf seinen geposteten Code oben bezug nimmst, das meinte er nicht mit einer Schleife. Lediglich eine Ergänzung seines Codes,
welcher in einer Schleife steckt.

=== === === === === === === === === === === ===

T.P.

Für die richtige Anzeige kannst du z.B. die Schleife einfach umdrehen. Habs kurz auf die schnelle gemacht (Fehler vorbehalten... )
Angehängte Dateien
Dateityp: mq4 MA Cross(1).mq4 (6,5 KB, 4x aufgerufen)
T.P. likes this.
  #10 (permalink)  
Alt 26.03.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
T.P. befindet sich auf einem aufstrebenden Ast
Standard

Next User Vielen Dank!!!

Jetzt muss ich mir den Code nochmal richtig anschauen. Und meinen Fehler verstehen.

Danke!
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, programmierung mql4, schleife, schleife programmieren, schleifen

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 08:40 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.
-----------------------------------------------------------------------------------------------------------------------------