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: 4972
Beiträge: 44343
Benutzer: 7.217
Aktive Benutzer: 85
Links: 84
Wir begrüßen unseren neuesten Benutzer: DFeck
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Stunde
- DFeck
vor 2 Tagen
- bb1107
vor einer Woche
- rg-trader
vor 2 Wochen
- toshistyle
vor 2 Wochen
- Robin

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 10.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Im Falle des Stochastics hattest Du tatsächlich Recht. Meine Bemerkungen bezogen sich v.a. auf Indikatoren, die im Chart abgebildet werden.

Zum Code:
Die Digits-Prüfung gehört in den init()-Teil.
Wo wird denn TheStoppLoss und TheTakeProfit mit Leben gefüllt?
Wozu extern int MagicNumber=10001; wenn die MagicNumber nicht in der Funktion PositionOpen() abgefragt wird?
Wozu die Rückgabe return(longtkt); bzw. return(shorttkt); wenn sie nicht weiter benutzt wird?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #12 (permalink)  
Alt 10.01.17
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 29
Ado1964 befindet sich auf einem aufstrebenden Ast
Question

...danke für die Hinweise DOC..
ich habe deb EA etwas umgebaut und den neuen hier angehängt.

Leider löst er mir keine Buy-/oder Sell-Order aus und ich finde einfach den fehler nicht :-/
...kann mal einer bitte drüber schauen, wo der Fehler liegen könnte?...das wäre sehr nett und vielen Dank
Angehängte Dateien
Dateityp: mq4 CrossingStoch-1.mq4 (12,8 KB, 2x aufgerufen)
  #13 (permalink)  
Alt 11.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Der Fehler liegt in diesem Vergleich:
(mline[2]==sline[2]+Distance))

Dass diese Bedingung jemals erfüllt ist, liegt weit unter 1%. Eine kleine Abänderung bewirkt Wunder:
mline[2]>=sline[2]+Distance

bzw.

mline[2]<=sline[2]-Distance

Und dann klappt es auch mit dem Öffnen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #14 (permalink)  
Alt 11.01.17
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 29
Ado1964 befindet sich auf einem aufstrebenden Ast
Smile

...vielen Dank für den Hinweis, DOC...hatte ich so nicht auf dem Schirm...danke

mal was anderes (soweit dies überhaupt in diesen Thread gehört):

1. gibt es im MT4-Editor eine Möglichkeit der schrittweisen Nachverfolgung (Debugging), bei der man (vergleichbar dem VBA-Code) in den einzelnen Schritten die jeweiligen Inhalte der Variablen - je nach Fortschritt des Codes - einsehen kann?

2. Macht es Sinn für bessere oder genauere Umkehrpositionen, in meinen EA einen weiteren Indikator einzubauen, zB eine Kombi aus Stochz und MACD?

Danke vielmals
  #15 (permalink)  
Alt 11.01.17
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 29
Ado1964 befindet sich auf einem aufstrebenden Ast
Standard

....habe den Code jetzt geändert... Jetzt öffnet er zwar einen trage, schließt ihn aber nicht zum nächsten umkehrsignal...fehlt da die prüfschleife auf eine mögliche Umkehr?
  #16 (permalink)  
Alt 11.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ado1964 Beitrag anzeigen
....habe den Code jetzt geändert... Jetzt öffnet er zwar einen trage, schließt ihn aber nicht zum nächsten umkehrsignal...fehlt da die prüfschleife auf eine mögliche Umkehr?
Ich hoffe doch, dass Du in der for-Schleife
for ( int z = _OrdersTotal - 1; z >= 0; z -- )
die Zeilen mit mline[2] == sline[2]-Distance)) und mline[2] == sline[2]+Distance))
entsprechend geändert hast.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #17 (permalink)  
Alt 12.01.17
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 29
Ado1964 befindet sich auf einem aufstrebenden Ast
Standard

...habe es in beiden Abschnitten, also in der Schleife und beim Öffnen der jeweiligen Orders geändert von "...==..." auf "<=" bzw ">=".....danke

bin momentan etwas verwirrt:

wenn ich mit

for(int i = 0;i < 3;i++)
{
mline[i] = iStochastic(NULL, Period(),K_Period, D_Period, Slowing, MA_Method, 0, MODE_MAIN, i);
sline[i] = iStochastic(NULL, Period(),K_Period, D_Period, Slowing, MA_Method, 0, MODE_SIGNAL, i);
}

die jeweiligen Linien im Stoch aufrufe, liegt dann vom Indikator her gesehen der Punkt M1 vor oder nach einem möglichen Crossing (adäquat dann auch für die S-Linie)?

also zB die Main (M) kreut die Signal (S) nach oben ==> also Buy-Order (mit Schliessen einer evtl. offenen Sell-Order)

ist dann M1 < M2 oder M1 > M2

....vielen Dank für die geopferte Zeit
  #18 (permalink)  
Alt 12.01.17
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 29
Ado1964 befindet sich auf einem aufstrebenden Ast
Standard

....und muss der Code-Teil, der die Orders öffnet auch mit in der For-Schleife for ( int z = _OrdersTotal - 1; z >= 0; z -- ) eingeschlossen sein?
  #19 (permalink)  
Alt 12.01.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Mal was prinzipielles: Wenn man die Kreuzung bzgl. der Kerze [1] und Kerze [2] betrachtet, dann braucht man
1. die for-Schleife nicht vom Index 0 aus laufen zu lassen, denn die Indikator-Werte der aktuellen Kerze [0] interessieren ja nicht.
2. die Abfrage nach der Kreuzung auch nicht mit jedem Tick machen, sondern es reicht aus, diese Abfrage einmalig direkt nach dem Kerzenwechsel vorzunehmen.
Dazu baut man folgendes ein:

datetime OldBar; //Deklaration der Einfachheit in den globalen Variablen

In der OnTick()-Funktion steht dann am Anfang:

Code:
if (OldBar != Time[0]) {
   //von hier aus wird die Funktion der Ermittlung der Indikatorwerte und die der Überprüfung angesprungen
   //bei Bedarf wird dann je nach Kreuzungsergebnis weiter verfahren
   OldBar = Time[0];
}
Die Kreuzung als solche zwischen dem Main- und dem Signal des Stochastic funktioniert in der Regel so:

if (M2 > S2 && M1 < S1)
bzw.
if (M2 < S2 && M1 > S2)

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #20 (permalink)  
Alt 12.01.17
Neues Mitglied
 
Registriert seit: Dec 2016
Beiträge: 29
Ado1964 befindet sich auf einem aufstrebenden Ast
Standard

vielen Dank DOC für die Hinweise

...mir ist nur noch nicht ganz klar, ob jetzt bei deinem Beispiel

if (M2 > S2 && M1 < S1)

es sich um ein Signal für Buy oder Sell handelt, was ja davon abhängt, ob die Positionen M2 und S2 vor oder nach der Kreuzungspunkt liegen...

Hinsichtlich der einmaligen Überprüfung

if (OldBar != Time[0]) {
//von hier aus wird die Funktion der Ermittlung der Indikatorwerte und died er Überprüfung angesprungen
//bei Bedarf wird dann je nach Kreuzungsergebnis weiter verfahren
OldBar = Time[0];
}

würde das bedeuten, ich müsste ien OnTick() Funktion einbauen (die ich bisher nicht habe) und von dieser aus dann die Funktionen anspringen, die jetzt aktuell im start() in der Schleife usw stehen? Was ja bedeuten würde, dass ich die Schleife

for ( int z = _OrdersTotal - 1; z >= 0; z -- )

und den Code-Teil zur Öffnung der jeweiligen Order in jeweils separate Funktionen im globalen Teil platzieren müsste. Ist das korrekt?

Vielen Dank
Thema geschlossen

Lesezeichen

Stichworte
berechnung fehler, fehler, mql4, order, ordersend, programmierung, programmierung metatrader, programmierung mql4, send

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