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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3367
Beiträge: 33894
Benutzer: 5.355
Aktive Benutzer: 613
Links: 79
Wir begrüßen unseren neuesten Benutzer: romahanover
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 14 Stunden
- romahanove...
vor einem Tag
- thaiquocba...
vor einem Tag
- patte
vor einem Tag
- boomo
vor einem Tag
- swiftusa

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 36
Gesamt: 40
Team: 0
Team:  
Benutzer:  MA-EA, michaelf, Nostradamus, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Like Tree5Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #111 (permalink)  
Alt 18.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube, die beste Methode wäre

Buy/Sell wenn LC über beiden GDs. Close wenn LC unter/über schnellen GD. Oder besser über/unter beiden GDs?


Oder vielleicht große Charts (15M, vielleicht sogar 30M) und dann

Buy/Sell wenn schneller GD über/unter langsamen GD. Close wenn schneller GD=langsamer GD. Dann bräuchte man wieder schnelle GDs, die relativ dicht am Kurs liegen.

Hab mal ne Art Vergleich gemacht, wie groß und klein die Trends in verschiedenen Zeitfenstern sind. Wenn man innerhalb des Tages handeln will, wirft der M5 eigentlich genug ab. Was größeres als M15 brauch man als Daytrader eigentlich nicht.
Mit Zitat antworten
  #112 (permalink)  
Alt 18.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hab in einem meiner 3 Bücher () ne interessante Strategie gelesen. Bei der ich mir nicht mehr so viele Sorgen wegen Seitwärtsbewegungen und Verlusten machen muss. Und zwar haben die, wenn ihre WP an Wert zulegten, einfach welche nach gekauft. Gewinne maximiert und Verluste waren dann bloß noch halb so schlimm.

Also:Nach jeden LC, der die Position wertvoller gemacht hat, soll
einfach eine einstellbare Menge an Lot nach gekauft werden. Wenn sie ins Minus geht nicht.


Als blödes Beispiel:

Währungspaar XY ist jetzt bei 100 Pips. Da steigt man ein mit 0.01 Lot. Kurze Zeit später schließt es bei 105 Pips und ist somit wertvoller geworden. Deswegen kauft man 0.01 Lot (einstellbar) nach. Nach dem nächsten LC ist es bei 110 Pip, hat also wieder an Wert zu genommen und man kauft wieder 0.01 Lot nach. Und immer so weiter, solange es bei jedem LC an Wert zugelegt hat. Etwas später schließt es bei 108 Pips. Da es nicht wertvoller geworden ist, kauft man dies mal nicht nach. Irgendwann wird die Order bei 106 Pips geschlossen, weil das Ausstiegs-Signal kam. Letztendlich konnte man 0.03 Lot gut machen, weil man bei jeder Wertsteigerung nach gekauft hat.

Könnte mir Jemand sowas einbauen? Mit einstellbarer Lot-Größe, um die nach gekauft werden soll natürlich. Dann könnte er das Maximum aus Gewinn-Trades raus holen und Verluste würden eigentlich keinen mehr interessieren.
Mit Zitat antworten
  #113 (permalink)  
Alt 19.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Wär vielleicht doch nicht so gut.

Ist dieses Meisterstück des Programmierens richtig?

Code:
//Open Trade
   if (!IsInvested) {
      if (LC>GD1c && LC>GD2c && GD1c>GD2c) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
      if (LC<GD1c && LC<GD2c && GD1c<GD2c) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);
   }

//Close Trade
   if (IsInvested) {
    for (i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
            if(LC<GD1c && LC<GD2c && GD1c<GD2c) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);
         }
         if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
            if(LC>GD1c && LC>GD2c && GD1c>GD2c) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);
Mit Zitat antworten
  #114 (permalink)  
Alt 20.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Ist es machbar, dass er nach beiden GDs extra handelt?

Also z.B.:
Buy/Sell wenn LC</>FastGD

und gleichzeitig eine weitere Order wenn:
Buy/Sell wenn LC</>SlowGD


Die jeweils schließen wenns dann andersrum aussieht. Ist das möglich,
mehrere Orders zu öffnen/schließen, je nach dem wie und ob der Kurs
einen beider GDs gekreuzt hat? Dann könnte der Schnelle viele kurze
Trends mit nehmen und der Langsame den Tages-Trend oder so. Wo
der eine Verlust macht, macht der Andere Gewinn.
Mit Zitat antworten
  #115 (permalink)  
Alt 20.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Keine Ahnung ob das ne gute Idee ist. Schätze mal, ich muss
das so machen, dass er sich beim Öffnen nen Order-Ticket ausdenkt
und sich beim schließen dann auf diese bezieht. Wie macht man das?

Edit:Oder reicht diese MagicNumber um ihn die richtige Order schließen zu lassen?

Edit:Jetzt fällt mir erst ein, dass der LC über/unter einem der GDs sein, aber in den Verlust gehn könnte. Also müsste er erst Orders öffnen, wenn er über/unter beiden GDs ist. Und dann seperat schließen, je nachdem welchen GD er überholt.

//Open Trade
if (!IsInvested) {
if (LC>GD1c && LC>GD2c) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
if (LC>GD1c && LC>GD2c) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
if (LC<GD1c && LC<GD2c) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);
if (LC<GD1c && LC<GD2c) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);
}

//Close Trade
if (IsInvested) {
for (i=OrdersTotal()-1; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
if(LC<GD1c) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);

if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
if(LC<GD2c) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);
}
if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
if(LC>GD1c) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);

if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
if(LC>GD2c) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);
}
}
}
}

return(0);

Geändert von MA-EA (20.02.16 um 15:16 Uhr)
Mit Zitat antworten
  #116 (permalink)  
Alt 20.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ist das richtig und logisch für den EA? Kapiert er, was er machen soll?

Code:
//Open Trade
   if (!IsInvested) {
      if (LC>GD1c && GD1c<GD2c) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
      if (LC>GD1c && LC>GD2c) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue);
      if (LC<GD1c && GD1c>GD2c) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);
      if (LC<GD1c && LC<GD2c) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);
   }

//Close Trade
   if (IsInvested) {
    for (i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
            if(LC<GD1c) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);
         }  
         if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {            
            if(LC<GD2c) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);
         }
         if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {
            if(LC>GD1c) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);
         }  
         if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) {            
            if(LC>GD2c) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);
         } 
      }
    }    
   }
         
 return(0);
}
Mit Zitat antworten
  #117 (permalink)  
Alt 20.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Wär wohl besser, jeder Order nen eindeutigen Namen zu geben, der
beim Exit-Befehl dann eindeutig zu geordnet werden kann. Bloß wie?

Da steht beim Öffnen irgendwo "Name", kann ich da irgendwie einen
bestimmen und den dann bei den Exit-Befehlen benutzen, damit er
immer genau weiß, welche Order zu schließen ist?

Also zum Beispiel:

Wenn
LC>FastGD && FastGD<SlowGD dann öffne Buy Order mit dem Name "Kreuzung mit schnellem GD"

oder wenn
LC>FastGD && LC>SlowGD dann öffne Buy Order mit dem Namen
"Kreuzung mit beiden GD"

Wenn dann die Gegebenheiten fürs Schließen da sind:

Wenn
Buy Order "Kreuzung mit schnellem GD" offen ist und
LC<FastGD dann schließe Order "Kreuzung mit schnellem GD"

und
wenn
Buy Order "Kreuzung mit langsamen GD" offen ist und
LC<slowGD dann schließe Order "Kreuzung mit beiden GD"

Wenn Ihr versteht, was ich meine.
Mit Zitat antworten
  #118 (permalink)  
Alt 20.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hab eben mal das Ganze im Strategietester probiert. Er hat fast immer 2 Orders mit exakt dem gleichen Verlust angezeigt. Also entweder kann man pro WP nur eine Order öffnen, oder er muss jede Order eindeutig identifizieren können, um sie dann bei ihren jeweiligen Signalen korrekt schließen zu können.

Geht das? Kann man vielleicht die MagicNumber selbst vergeben? Oder der Order nen vor festgelegten Name geben?

Oder müssen vielleicht die Befehle umgeschrieben werden?

Also erst der OPEN in der ersten Zeile
in der nächsten Zeile gleich EXIT und Return.

Das für alle 4 OPEN- und EXIT-Bedingungen und Befehle.

Aber mit ner eindeutigen Bezeichnung der Order fährt man wohl besser. Es gibt ja auch irgendwie Bots, die immer wieder automatisch Orders in beide Richtungen abgeben. Ob die profitabel sind, soll jetzt mal egal sein. Also muss das mit meinem EA ja auch gehn. Wenn das funktioniert, dann wird praktisch mit jeder Order Gewinn gemacht. Der schnelle GD schnappt sich die schnellen Trends. Der Langsame schnappt sich die Langsamen und noch ein bißchen von den Schnellen. Wenn der eine wegen ner Seitwärtsphase auf der Stelle tritt, kann der Andere jeweils mit den großen oder den kleinen Trends noch was rausholen. Oder zumindest die Verluste verkleinern.
Mit Zitat antworten
  #119 (permalink)  
Alt 22.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Kann Jemand was davon empfehlen? Oder vielleicht abraten?
Mit Zitat antworten
  #120 (permalink)  
Alt 22.02.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Abend.

Hab ein bißchen rum probiert.

Wenns nix ausmacht:

Chart:M5
FastGD:18 und 30 (1,5 und 2,5 Stunden)
SlowGD:30 und 60 (2,5 und 5 Stunden)
Angehängte Dateien
Dateityp: ex4 Valerius_2GDv3-OpenFastGDCloseBeideGDs.ex4 (10,3 KB, 2x aufgerufen)
Dateityp: ex4 Valerius_2GDv3-OpenCloseBeideGDs.ex4 (10,4 KB, 2x aufgerufen)
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
auftrag, biete, ea, expert advisor, gleitender durchschnitt, kleinanzeigen, suche


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 23:04 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2016 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2016 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------