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: 43323
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 4 Stunden
- Thomas75
vor 17 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 08.04.16
Neues Mitglied
 
Registriert seit: Apr 2016
Beiträge: 10
Ginto befindet sich auf einem aufstrebenden Ast
Standard Hilfe bei einer Programmierung

Halli Hallo liebe Tradercommunity,

ich bin ein blutiger Anfänger was das Programmieren von EA's angeht. Dennoch bin ich fastziniert von dem Prinzip des automatisierten Handeln's da es so ohne jegliche Emotionen stattfindet. Kurz gesagt ich habe Blut geleckt.

Ich beschäftige mich damit aber erst seit ein paar Wochen und weiss, dass ich davon noch keine Ahnung habe. Ich taste mich an das Thema Trading seit etwa 3 Monaten heran und da ich durch meinen Beruf wenig Zeit habe vor dem PC zu sitzen und mir die Charts anzuschauen, glaube ich fest an die Vorstellung, dass mein PC das auch gut ohne mich hinbekommt

Nun werden sicher Viele die Hände über den Kopf zusammenschlagen und denken "was für ein Idiot, der kann doch nicht ernsthaft davon ausgehen, dass ein PC bessere Entscheidungen treffen kann als ein erfahrener Trader etc". Das kann ich nur schwer beurteilen. Mir fehlt die Erfahrung und da ich mich vorerst auch nur an Demokonten versuche, gehe ich hierbei aber auch kein Risiko ein . Mein PC und der Metatrader haben also die Macht und die Kontrolle über mein gesammtes Monopoly Geld, dass ich hierfür zur Verfügung habe

Soviel zu mir und nun zu meinen Fragen:

Mein aus Codefetzen bestehender EA, den ich mit meinem wenigen Verständnis aus verschiedenen einfachen EA's zusammengefummelt habe, macht nur bedingt das was ich möchte.

Meine Strategie:

Der EA soll bei einem Wechsel von einem Roten Balken zu einem Grünen eine Long Order eröffnen. Er zieht den Stop selbsttändig nach (bei mir sind das 5 Pips). Sobald der Kurs dann wieder von einem Grünen zu einem Roten Balken wechselt möchte ich, dass der EA eine Sell Order eröffnet ohne die Longorder zu schliessen (auf dem Demokonto was ich nutze ist das ohne Problem möglich). Der EA soll nun die Stops in beide Richtungen nachziehen und maximal jeweils eine Longorder und eine Short Order offen haben. Bisschen Hedging-mäßig. Läuft der Kurs durch einen Stop (egal ob Trailing oder StopLoss) soll erst wieder eine Order geöffnet werden wenn ein jeweiliges Signal vorliegt. Also wird eine Longorder durch einen Stop geschlossen soll der EA erst eine Long Order eröffnen wenn dafür ein Signal vorliegt.

Ob die Strategie nun sinnvoll ist oder nicht ist hierbei für mich uninteressant und darüber möchte ich hier an dieser Stelle auch nicht diskutieren. Es geht mir in diesem Beitrag ausschliesslich um eine Lösung für meine Probleme bei der Programmierung. Danke für euer Verständnis.

Mein kleines Monster macht im Großen und ganzen auch was er soll aber ich habe noch kleine Probleme mit großer Wirkung:

Hierzu findet ihr ein Bild als Anhang.

Problem 1

Der EA öffnet direkt nachdem er auf das Chart plaziert wurde 2 Positionen. 1 x Long und 1 x Short. Das stört mich, da er vorher prüfen soll ob überhaupt ein Handelssignal vorliegt. Ich verwende Renko Charts und für die Signalerstellung einfach 2 Gleitende Durchschnitte. Ein Brick ist 1 Pip groß.
Im Bild an der Stelle wo die 1 steht hat der EA die Order eröffnet.

MA 1 stellt 2 Perioden dar und der zweite MA eine Periode. So findet nach jedem Wechsel von grün auf rot und umgekehrt eine Kreutzung der MA's statt und es werden entsprechende Signale an den EA übermittelt.

Problem 2

Der EA öffnet maximal 2 Positionen (eine Long und eine Short Position). Leider öffnet er sofort nachdem eine der beiden Orders duch einen Stop gelaufen ist sofort eine in die Richtung die ausgestoppt wurde. Hierzu im Bild ist die Stelle mit einer 2 markiert. Das war in diesem Fall zwar gut aber wenn der Kurs so wie bei Nummer 3 oder 7 weiter gelaufen ist dann hat man zwangsläufig zu viele Trades die durch den StopLoss laufen. Ich möchte das der EA also erst wieder eine neue Short oder Long Position eröffnet wenn er dafür ein Signal durch die MA's bekommt.

Ich hab hier mal den Code als Textdatei angehangen, bitte schaut doch mal rüber und sagt mir was ich hier ändern müsste damit diese beiden Probleme nicht mehr auftreten.
Da ich leider noch nicht so den Überblick habe wie ihr habe ich den Code etwas einsteigerfreundlich gestaltet, so finde ich mich einfach schneller im Code zurecht. Wenn Ihr also Änderungen vorschlagt dann sagt mir bitte auch an welcher Stelle da ich wirklich keine MQL Kenntnisse habe.

Ich nutze für die Handelssignale bisher nur die Gleitenden Durchschnitte. Ich habe zwar noch eine Stochastik und einen externen Indikator mit eingefügt, die beiden sollen hierbei aber keine Rolle spielen fürs erste.

Ich bedanke mich im Voraus für eure Bemühungen und eure Nachsicht.

Liebe Grüße
Ginto aka Chrischi
Angehängte Grafiken
Dateityp: png Bild 1.png (15,5 KB, 14x aufgerufen)
Angehängte Dateien
Dateityp: txt Mein erster EA.txt (13,4 KB, 15x aufgerufen)
  #2 (permalink)  
Alt 08.04.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

1 und 2 sind für MAs vermutlich zu aggressiv. Versuch mal nicht kleiner
als 3 und 6.
  #3 (permalink)  
Alt 08.04.16
Neues Mitglied
 
Registriert seit: Apr 2016
Beiträge: 10
Ginto befindet sich auf einem aufstrebenden Ast
Standard

Ich glaub das das Problem mit dem Order Management zu tun hat, ich verstehe nur nicht wie ich dem EA mitteilen kann das er nach dem SL oder TP erst wieder eine Order öffnet wenn er durch die MA's ein Signal bekommt. Beim Renko Chart ist das deutlich und ohne großes rummeiern .

Steigt der Kurs und mein Shorttrade wird ausgestoppt muss der EA warten bis er ein Signal bekommt und kann nicht direkt nach dem ausstoppen eine neue Short Order erstellen, er bekommt ja in dem Moment kein Short Signal. Und genau da liegt mein Problem, der EA möchte immer eine Long und eine Short Position aufhaben, das ist ja auch das Ziel aber der Einstiegspunkt sollte ja durch die Signale zu Stande kommen und nicht bei jedem SL oder TP.

Ich hoffe ich drücke mich verständlich genug aus.

Ich hab den Code nocheinmal etwas angepasst da ich kleinere Änderungen vorgenommen habe (Stoch und den externen Indikator entfernt + SL und TP Einstellungen).
Angehängte Dateien
Dateityp: txt Mein erster EA.txt (9,8 KB, 8x aufgerufen)
  #4 (permalink)  
Alt 08.04.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ginto Beitrag anzeigen
Ich glaub das das Problem mit dem Order Management zu tun hat, ich verstehe nur nicht wie ich dem EA mitteilen kann das er nach dem SL oder TP erst wieder eine Order öffnet wenn er durch die MA's ein Signal bekommt. Beim Renko Chart ist das deutlich und ohne großes rummeiern .

Steigt der Kurs und mein Shorttrade wird ausgestoppt muss der EA warten bis er ein Signal bekommt und kann nicht direkt nach dem ausstoppen eine neue Short Order erstellen, er bekommt ja in dem Moment kein Short Signal. Und genau da liegt mein Problem, der EA möchte immer eine Long und eine Short Position aufhaben, das ist ja auch das Ziel aber der Einstiegspunkt sollte ja durch die Signale zu Stande kommen und nicht bei jedem SL oder TP.
Dann musst Du vielleicht den Last Close oder so einbeziehen. Nur öffnen lassen, wenn auch der über/unter beiden GDs ist.

Z.B.
Buy if (LastClose>kleiner MA && kleiner MA>großer MA)
Oder den Open oder High oder Low. Allerdings hatte ich mit denen keine guten Erfahrungen gemacht. Vielleicht hab ich auch irgendwas falsch gemacht.

Oder vielleicht irgendwie den Kurs vergleichen. Nur öffnen lassen, wenn Kurs <> Sl/TP Marke ist.
  #5 (permalink)  
Alt 08.04.16
Neues Mitglied
 
Registriert seit: Apr 2016
Beiträge: 10
Ginto befindet sich auf einem aufstrebenden Ast
Standard

Ich dachte das wäre hier geregelt:

if(MAkurz>MAlang && MAkurzVorperiode<=MAlangVorperiode)
{
LongSignal = true;

}
else LongSignal = false;

if(MAkurz<MAlang && MAkurzVorperiode>=MAlangVorperiode)
{
ShortSignal = true;

}
else ShortSignal = false;

}
else
{
LongSignal = false;
ShortSignal = false;
}

if(LongSignal == true)
{
Hier Stand ein Code der die offenen Short Positionen geschlossen hat sobald eine Long Position geöffnet wurde. Diesen Code hab ich rausgenommen.
}

while(LongOrder<=0)
{
LongOrder = OrderSend(Symbol(),OP_BUY,HandelsLots,Ask,10,0,0," Ginto LONG",LongNummer,0,Green);
}

if(ShortSignal == true)
{
Hier Stand ein Code der die offenen Long Positionen geschlossen hat sobald eine Short Position geöffnet wurde. Diesen Code hab ich rausgenommen.
}

while(ShortOrder<=0)
{
ShortOrder = OrderSend(Symbol(),OP_SELL,HandelsLots,Bid,10,0,0, "Ginto SHORT",ShortNummer,0,Red);
}
  #6 (permalink)  
Alt 08.04.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ginto Beitrag anzeigen
Ich dachte das wäre hier geregelt:

if(LastClose>MAkurz && MAkurz>MAlang)
{
LongSignal = true;

}
else LongSignal = false;

if(LastClose<MAkurz && MAkurz<MAlang)
{
ShortSignal = true;

}
else ShortSignal = false;
Hab bloß mal kurz überflogen.

Je nach Richtung noch einfügen, dass der LC </> SL-Wert sein muss. Welchen man allerdings bei jeder Order wieder neu vergeben muss.

Ist schon spät und ich hab Kopfschmerzen.
  #7 (permalink)  
Alt 08.04.16
Neues Mitglied
 
Registriert seit: Apr 2016
Beiträge: 10
Ginto befindet sich auf einem aufstrebenden Ast
Standard

würde das mit den Signalen statt mit der MA auch hiemit gehen? Wie gesagt verwende ich Renko Charts:

Long:
(Close[2] < Open[2]) && (Close[1] > Open[1]))

Short:
(Close[2] > Open[2]) && (Close[1] > Open[1]))

Ist schwierig da was im Netz zu finden da das auch nicht bei jedem Broker geht bzw nicht überall erlaubt ist.

Danke aber für deine Hilfe
  #8 (permalink)  
Alt 09.04.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Versteh nix von Renko. Weiß nicht, ob EAs mit dem umgehen können. Bzw. müsste man vielleicht extra einen für Renko programmieren.
  #9 (permalink)  
Alt 09.04.16
Mitglied
 
Registriert seit: Dec 2015
Beiträge: 85
TogoTiger befindet sich auf einem aufstrebenden Ast
Standard

Dein Longsignal von den EMAs kann immer noch true sein, wenn deine Position durch einen StopLoss geschlossen wird. Dann erstellt der EA sofort wieder einen Auftrag. Wenn du das logischerweise nicht willst, musst du noch was einbauen, z.B. erst bei der nächsten Kerze, oder wenn der Kurs wieder höher ist als der letzte Close oder Mindestabstand zum letzten Close oder irgend sowas.
Das Problem hast du immer, wenn du StopLoss verwendest (oder Trailing Stops). Wenn diese Stops ausgelöst werden (beim Broker, nicht in deinem EA) ändert das nicht deine Signale.
  #10 (permalink)  
Alt 09.04.16
Neues Mitglied
 
Registriert seit: Apr 2016
Beiträge: 10
Ginto befindet sich auf einem aufstrebenden Ast
Standard

Ich hab mich da wohl noch nicht klar genug ausgedrückt:

Beispiel LONG:
EA öffnet LONG Position, Kurs steigt. Kurs steigt um etwa 10 Pips. Mein Trailing Stop zieht um 5 Pips nach. Nun fäällt der Kurs wieder und die Long Position läuft durch den Trailing Stop. Damit hab ich 5 Pips Gewinn. Nun müsste der EA eigentlich auf das nächste LONG Signal warten das er durch die MA's erst bekommt wenn der Kurs wieder steigen würde. Da der Kurs weiter fällt liegt ein entsprechendes Signal nicht vor. Und genau das ist mein Problem.
Ich poste hier mal ein Bild. So sollte das der EA sehen wenn er nur Signale von den Moving Averages bekommt. Das ist das tolle beim Renko, da ist das immer sehr eindeutig.
Angehängte Grafiken
Dateityp: png Bild2.png (20,6 KB, 13x aufgerufen)
Dateityp: png Bild3.png (13,6 KB, 10x aufgerufen)

Geändert von Ginto (09.04.16 um 17:28 Uhr)
Thema geschlossen

Lesezeichen

Stichworte
mas, moving average, mql4, programmierung, programmierung metatrader

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 15:39 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.
-----------------------------------------------------------------------------------------------------------------------------