Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tradingidee für volatile Werte

Geschrieben

Hi!

 

Ich habe mir mal ein paar Gedanken gemacht für eine Tradingidee.

Leider kann ich nicht programmieren, deswegen will ich erstmal die Idee hier vorstellen, und hören, was ihr dazu sagt.

Wenn die Idee von euch abgesegnet wird, kann ich mich ja mal an der programmierung versuchen, auch wenn ich quasi bei Null anfange. Aber jede Wanderung beginnt mit dem ersten Schritt.

 

Also:

Lassen wir mal kurz den Spread außer acht. Erstmal als Gedankenspiel:

 

Wir haben ein Währungspaar, welches eine gewisse Voila aufweist. .

Wir nehmen an, dass wir den zukünftigen Verlauf nicht kennen (klar, oder :top: ), wissen aber, dass sich innerhalb von einigen Stunden der Wert um 30 Pips bewegt. Bei News etc. sogar wesentlich mehr. Wir wissen aber nicht, in welche Richtung sich das bewegen wird.

 

Nun meine Idee:

Wir eröffnen an einem bestimmten, typischen Zeitpunkt vor größeren Bewegungen (vor wichtigen News, einsteigen anderer Trader auf anderen Kontinenten, ...), oder auch einfach mittels einfachen Signalgebers (MA, ...) gleichzeitig 2 gegensätzliche Positionen. Die eine Position wird nun die andere aufheben, unter Idealbedingungen haben wir nun in der Equititysumme eine Null.

Wir sehen nun, in welche Richtung der Chart läuft und sind investiert. Nach einer zu ermittelnden Anzahl von Pips (im Beispiel: 10 Pips) wird die Position, die im minus ist, geschlossen, und die Plusposition läuft weiter, idealerweise bis zu den 30 Pips und wird dann geschlossen.

Dann haben wir 20 Pips Gewinn gemacht. Zieht man jetzt für beide Positionen den Spread ab (angenommen 3 Pips jeweils) haben wir 14 Pips Gewinn gemacht.

Dazu kommt Slippage, requests, ... der Kurs dreht zwischen den 10. und 20. Pips doch zurück, ...

bleibt also nicht viel übrig, aber immerhin etwas.

Dreht der Kurs zwischen dem 10. uind 30. Pip doch in die falsche Richtung, soll die Position bei 0 Pips geschlossen werden. So haben wir 10 Pips Verlust gemacht, in diesem Fall.

 

Wichtig ist also geringer Spread, das hätten wir bei den meisten Brokern bei EURUSD.

Evtl. kann man das Anstoßsignal auch vor wichtigen News legen, um die Wahrscheinlichkeit zu erhöhen, dass der Kurs stabil in eine Richtung läuft. Möglicherweise kann im immer für die nächste WOche wichtige Termine per extern eingeben, so dass der EA dann bei Erreichen der Zeit seine beiden Trades eingeht.

Oder, um es unabhängig von den Terminen zu machen, kann man den EA dann auf die typische Voila abstimmen.

 

Und per "extern" müssten auch die Werte eingebracht werden:

- Pipanzahl nachdem der negative der beiden Trades geschlossen wird

- Pipanzahl nachdem die positive Position geschlossen wird

(und natürlich Lotgröße, max. Spread, magic, ...)

 

Die Werte könnte man dann backtesten.

 

War das soweit verständlich?

 

Zeithorizont sollte her im unter H1-Bereich liegen denke ich, also kurzfristiges Traden. Zwar spielen dann die Faktoren Spread, Slippage etc. eine größere Rolle, aber News können mit einbezogen werden. Und die übliche Voila des Pairs kann besser zum tragen kommen.

natürlich geht das nicht bei Ami-Brokern, hedgen muss erlaubt sein. Und wenn ich an MT5 denke, wird mir ganz schlecht.

 

Was sagt ihr dazu? hat die Idee Zukunft?

Oder gibt es sogar schon einen EA, der auf dieser Idee basiert?

Featured Replies

Geschrieben
Leider kann ich nicht programmieren, deswegen will ich erstmal die Idee hier vorstellen, und hören, was ihr dazu sagt.

Wenn die Idee von euch abgesegnet wird, kann ich mich ja mal an der programmierung versuchen, auch wenn ich quasi bei Null anfange. Aber jede Wanderung beginnt mit dem ersten Schritt.

:top: Sehr gut !

 

 

 

Nun meine Idee:

Wir eröffnen an einem bestimmten, typischen Zeitpunkt vor größeren Bewegungen (vor wichtigen News, einsteigen anderer Trader auf anderen Kontinenten, ...), oder auch einfach mittels einfachen Signalgebers (MA, ...) gleichzeitig 2 gegensätzliche Positionen. Die eine Position wird nun die andere aufheben, unter Idealbedingungen haben wir nun in der Equititysumme eine Null.

Wir sehen nun, in welche Richtung der Chart läuft und sind investiert. Nach einer zu ermittelnden Anzahl von Pips (im Beispiel: 10 Pips) wird die Position, die im minus ist, geschlossen, und die Plusposition läuft weiter, idealerweise bis zu den 30 Pips und wird dann geschlossen.

Dann haben wir 20 Pips Gewinn gemacht. Zieht man jetzt für beide Positionen den Spread ab (angenommen 3 Pips jeweils) haben wir 14 Pips Gewinn gemacht.

Dazu kommt Slippage, requests, ... der Kurs dreht zwischen den 10. und 20. Pips doch zurück, ...

bleibt also nicht viel übrig, aber immerhin etwas.

Dreht der Kurs zwischen dem 10. uind 30. Pip doch in die falsche Richtung, soll die Position bei 0 Pips geschlossen werden. So haben wir 10 Pips Verlust gemacht, in diesem Fall.

...

War das soweit verständlich?

Ja, die Idee hatte ich auch schon (und wahrscheinlich jede Menge anderer Leute vor mir, z.B. Ari Onassis :top: ).

Alternativ kannst Du natürlich auch zum Zeitpunkt t (wenn Du normalerweise die Hedging-Postion eröffnen würdest, 2 Einstopporders platzieren (z.B. über Stunden-High Long, unter Stunden-Low Short o.ä.). Das erspart Dir die zusätzlichen Kosten der Gegenposition, das Gezappel zwischendurch ("der Kurs dreht zwischen den 10. und 20. Pips doch zurück"), wenn der Markt die Richtung "erarbeitet" und Du bist erst dabei, wenn die Richtung klar ist.

Inhaltlich ist es dasselbe wie bei Deiner Idee, denn im Bereich, wo Du die Hedging-Position hälst, bist ja Plus-Minus-0 dabei, da kannst Du aber genauso gut Flat bleiben und sparst Dir die Gebühren.

Geschrieben
  • Autor
Alternativ kannst Du natürlich auch zum Zeitpunkt t (wenn Du normalerweise die Hedging-Postion eröffnen würdest, 2 Einstopporders platzieren (z.B. über Stunden-High Long, unter Stunden-Low Short o.ä.). Das erspart Dir die zusätzlichen Kosten der Gegenposition, das Gezappel zwischendurch ("der Kurs dreht zwischen den 10. und 20. Pips doch zurück"), wenn der Markt die Richtung "erarbeitet" und Du bist erst dabei, wenn die Richtung klar ist.

Inhaltlich ist es dasselbe wie bei Deiner Idee, denn im Bereich, wo Du die Hedging-Position hälst, bist ja Plus-Minus-0 dabei, da kannst Du aber genauso gut Flat bleiben und sparst Dir die Gebühren.

 

Sicher, dass es das dasselbe ist?

Mit meiner Variante umgehe ich ja das, wissen zu müssen, in welche Richtung es geht, es muss nur halbwegs am Stück in eine Richtung gehen. Und ich komme vor News ohne Slippage rein, weil ich wenn die News auftauchen, schon drinne bin mit plus/minus Null (abzügl. Gebühren).

 

Evtl. könnte man sich die Gebühren auch sparen (als 2. Variante), wenn man zunächst nicht mit Echtgeld reingeht, sondern die beiden gegenläufigen Positionen nur im Kopf (im Speicher des EAs) eingeht und dann einsteigt, wenn die 10Pips-Grenze überschritten ist. Aber das würde sich mit der Slippage-Aussage beißen und wäre eher eine Strategie für voilative Zeiten, wo aber keine schweren News vorhanden sind.

Ach ist das alles kompliziert.

Geschrieben
Sicher, dass es das dasselbe ist?

Mit meiner Variante umgehe ich ja das, wissen zu müssen, in welche Richtung es geht, es muss nur halbwegs am Stück in eine Richtung gehen. Und ich komme vor News ohne Slippage rein, weil ich wenn die News auftauchen, schon drinne bin mit plus/minus Null (abzügl. Gebühren).

Du kommst aber wahrscheinlich aus der Gegenposition nicht ohne Slippage raus :top:, wenn Du die nach News bspw. schließen musst, weil irgendwann musst Du ja mal anfangen, Gewinn zu machen, Du kannst ja nicht ewig beide Posis mit Dir rumschleppen.

Dann kannst Du den Slippage aber auch beim Einstoppen der eigentlichen Position hinnehmen, statt beim Ausstoppen der Gegenposition.

 

Evtl. könnte man sich die Gebühren auch sparen (als 2. Variante), wenn man zunächst nicht mit Echtgeld reingeht, sondern die beiden gegenläufigen Positionen nur im Kopf (im Speicher des EAs) eingeht und dann einsteigt, wenn die 10Pips-Grenze überschritten ist.

Ach, und wo ist jetzt dabei der Unterschied zu 2 Einstopp-Orders, die unten und oben lauern (meinetwegen bei +-10 Pips ? Die müssen ja auch nicht ewig daliegen und wenn der Kurs nicht sofort in eine Richtung wegzieht, kannst Du die da ja auch wieder wegnehmen, wenn Du denkst, der Kurs beginnt zu oszillieren. Bzw. Du löscht die Short, wenn die Long gefillt wurde und vice versa.

 

Ich würde es an Deiner Stelle aber mal programmieren, zum Lernen ist die Aufgabe recht hübsch und überschaubar.

 

Btw: Du kannst Dich auch mit Limit einstoppen lassen.

Geschrieben
  • Autor

Du hast recht, wird also so nicht funzen. Dann lass ich es mit programmieren, soviel freie Kapazitäten für (absehbar nicht funktionierende Konzepte) habe ich auch leider nicht.

 

Ich find aber meine Urspungsidee noch am Besten :top:

Geschrieben
Du hast recht, wird also so nicht funzen. Dann lass ich es mit programmieren, soviel freie Kapazitäten für (absehbar nicht funktionierende Konzepte) habe ich auch leider nicht.

Och nöö, so war das jetzt aber nicht gemeint. :top: Du kannst doch einfach beide Varianten mal programmieren und dann vergleichen. Wobei ich mir schon denken kann, was rauskommt beim Vergleich :top:.

 

Aber Du willst doch auch mal selbst programmieren können, oder ? Oder ? Oder ?!!!

 

 

:top: Die Grundidee des Newstradens funktioniert aber, soviel kann ich Dir sagen (nur mal so als Motivationsanschieber), egal ob mit Einstopporders oder auf "Deine Art".

Geschrieben
  • Autor

Na OK, dann probiere ich das mal. Bis ich soweit bin, aus mql4 einen EA zu zaubern, gibt es vermutlich schon mql9.

 

Eigentlich wäre es cleverer, auf MT5 zu warten, oder?

Ach mann, warum ist das alles so anstrengend mit dem programmieren.

 

Na ich halte euch mal auf dem laufenden.

Ziel ist jetzt einfach, einen EA zu basteln, der

 

bei einem noch zu überlegenden Auslöser (Uhrzeit, Indikator, ...) 2 gegensätzliche Orders auslöst und nach X Pips die negative Order schließt und nach Y Pips die positive Order schließt. SL jeweils ist Z.

(vielleicht macht es sogar Sinn, den SL-Wert nicht bei 0 Pips zu legen, sondern bei -10 Pips z.B.).

 

Das kann ja nicht sooo schwer zu programmieren sein.

Werde ich mich mal zuhause ransetzen.

Geschrieben
Na OK, dann probiere ich das mal. Bis ich soweit bin, aus mql4 einen EA zu zaubern, gibt es vermutlich schon mql9.

 

Eigentlich wäre es cleverer, auf MT5 zu warten, oder?

 

Ach mann, warum ist das alles so anstrengend mit dem programmieren.

Wir sind ja auch noch da, falls es Probleme gibt ;). Am besten such Dir in nem Tutorial oder sonst wo im Web (oder hier bei uns ) nen einfachen EA als Code-Basis, damit Du nicht von 0 anfangen musst. Hier im Forum hat ja mh2 auch schon mal vorbildlich den MACD-Sample-Code auseinandergefräst ic.arrow.right.png im Einsteiger-Thread.

 

Auf MT5 warten würde ich nicht, die Programmierung wird damit ja nicht leichter ;). Irgendwann muss man einfach mal ins kalte Wasser hüpfen und mit den Haien schwimmen. :top:

Geschrieben
Oh mann, ich bin einfach nicht fürs Programmieren geschaffen. Ich kriege es nichtmal hin, den vorgegebenen MACD-EA so zu erweitern, dass er einfach statt nur SELL dazu noch BUY eingibt.

Es gibt keine Verlierer - nur Leute, die zu früh aufgeben !

 

Poste doch mal den Code und dann sprechen wir es hier durch. :smile:

Geschrieben
  • Autor

Es ist der Code, der in jeder MT4-Station vorgegeben ist (MACD Sample).

Den habe ich als Basis genommen, weil man da schon die Pip-Abstände eingeben kann. Und man hat erstmal ein Eingangssignal.

 

Hier mal ein Ausschnitt.

 

// check for long position (BUY) possibility
  if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
	 MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
	{
	 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
	 if(ticket>0)
				{
		if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
	   }
	 else Print("Error opening BUY order : ",GetLastError()); 
	 return(0); 
	}

 

Ich dachte mir, dieser Abschnitt regelt das Long - gehen.

 

Also habe ich den Abschnitt der inneren geschweiften Klammer darunter noch einmal eingefügt, diesmal mit Short. So:

 

// check for long position (BUY) possibility
  if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
	 MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
	{
	 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
	 if(ticket>0)
				{

// VON MIR EINGEFÜGT ANFANG 
		 {
	 ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
	 if(ticket>0)
				{
// VON MIR EINGEFÜGT ENDE

		if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
	   }
	 else Print("Error opening BUY order : ",GetLastError()); 
	 return(0); 
	}

 

Schon beim kompilieren kommen Fehlerhinweise, beim backtesten werden keine Orders gleichzeitig ausgegeben.

Aber ich bin wohl zu naiv in solchen Sachen. Hätt ja klappen können.

Geschrieben
// check for long position (BUY) possibility

if(MacdCurrentSignalCurrent && MacdPrevious

MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)

{

 

Hier setzt du eine Long-Order ab

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

 

if(ticket>0) //Long-Order abgesetzt

{

 

// VON MIR EINGEFÜGT ANFANG : Da ist eine Klammer zuviel.

{

 

Ok, jetzt nach der Long-Order nochmal ne Shortorderabsetzen, allerdings musst Du zum Bid statt zum Ask verkaufen, ansonsten kriegst Du wahrscheinlich ne Fehlermeldung ;)

 

ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

 

 

if(ticket>0)

{

// VON MIR EINGEFÜGT ENDE

 

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

Die einzelnen Anweisungen im Programm kann man ja "Chunken", d.h. nen Klumpen bilden, was darin passiert.

Du hast jetzt Deinen kopierten Text mitten in so einen zusammengehörigen Klumpen reinkopiert, das ist meist ungesund.

Der Compilerfehler verschwindet, wenn die doppelte Klammer weg ist, aber dennoch ist die Programmlogik (was soll das Biest tun) falsch, weil Du zuwenig von dem Orderabsetz-Klumpen kopiert hast und an der falschen Stelle platziert.

 

 

 

Der eigentliche "Klumpen" inklusive Signal ist die erste Codebox, die Du gepostet hast.

// check for long position (BUY) possibility

if(MacdCurrentSignalCurrent && MacdPrevious

MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

Den musst Du komplett kopieren und hintereinander anfügen und DANN kann man darin rumeditieren, um ne Short-Order abzusetzen (da das MACD-SIgnal in der Regel ja auch nen anderes sein wird.)

Soll es kein anderes Signal sein, musst Du dennoch zumindest den fettmarkierten Teil kopieren.

Geschrieben
  • Autor

Das klappt nicht so. Kommt immer eine Fehlermeldung.

 

Habe jetzt folgendes:

 

   // check for long position (BUY) possibility
  if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
	 MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
	{
	 ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
	 if(ticket>0)
	   {
		if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
	   }
	 else Print("Error opening BUY order : ",GetLastError()); 
	 return(0); 
	 
// AB HIER VON MIR EINGEFÜGT

	 ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0)
	 
	 
	}

Geschrieben

   
// check for long position (BUY) possibility
 if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
	 MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError()); 

[s] return(0);  [/s] [color="#FF0000"]Hier verlässt Du die Funktion.[/color]

[color="#FF0000"]Hier kommt das Programm nie an[/color]
// AB HIER VON MIR EINGEFÜGT

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,[b]Ask+TakeProfit*Point,[/b] "macd  sample",16384,0,Green);
if(ticket>0)
{
  if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening [s]BUY[/s] SELL order : ",GetLastError());

return(0)[b];[/b]
}

 

Bei dem letzten return(0) fehlt das Semikolon. Deswegen der Compilerfehler.

Jede einzelne Anweisung wie z.B. das return(0) - welches zum Beenden der Funktion an dieser Stelle führt, muss mit einem solchen abgeschlossen sein.

Außerdem sollte der Takeprofitwert von einer Verkaufsorder kleiner sein als der Einstieg (fett), denn gewinnen kann man nur, wenn der Kurs fällt :correct:. Ansonsten wirst Du die Order auch nicht abgesetzt bekommen, fürchte ich.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.