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.

Austricksen von BuyPrice möglich?

Geschrieben

Hallo zusammen,

ich würde gerne für das Backtesting mit BuyPrice bzw. SellPrice arbeiten, um programmiermäßig von Dollar auf Euro umzurechnen. Nur macht mir AB einen Strich durch die Rechnung.

Lt. Handbuch:

"During back−testing AmiBroker will check if the values you assigned to buyprice, sellprice, shortprice,

coverprice fit into high−low range of given bar. If not, AmiBroker will adjust it to high price (if price array value

is higher than high) or to the low price (if price array value is lower than low)"

 

Wie kann man das umgehen?

 

Vielen Dank für Tipps.

 

Grüße

Mathias

Featured Replies

Geschrieben

Meinst du jetzt, dass AB im Backtest nur mit den Closedaten arbeitet?

Das macht Ninjatrader 7 auch, wenn keine Bid/ask-Daten vorhanden sind.

 

In dem Fall rechne ich einfach auf die Kommission einen gewissen Wert rauf, also was in etwa dem üblichen Spread entspricht. Die Kommission kann ich ja frei eingeben pro Einheit...

 

Falls du was anderes meinst schreibe es noch einmal deutlich :tongue:

Geschrieben
  • Autor

Hallo zusammen,

entschuldigt bitte, wenn ich mich missverständlich ausdrückte.

Ich meinte das in etwa so, wie Henrik es verstanden hatte.

 

Beispiel:

Ich möchte einen Rohstoffkurs von Dollar in Euro umrechnen.

Beispielkurs (in $): O: 97, H: 100, L: 95 C: 98

Eur-Dollar: 1,50

 

Damit er im Backtesting den Kurs von $ auf € umrechnet, würde ich gerne:

Buy= Bedingung 1;

sell = Bedingung 2;

 

BuyPrice = C / Eur-Dollar;

SellPrice = C / Eur-Dollar;

 

AB rechnet nun: BuyPrice = 98/1,5 = 65,33. Nun kommt die am Anfang zitierte Bedingung, dass der BuyPrice nur zwischen H und L liegen darf! Also wandelt AB die 65,33 in 95 um!

 

Henriks Vorschlag würde mir nichts bringen, da ich jeden Tag einen anderen Umrechnungskurs hätte und keinen festen Prozentwert, den ich bei den Kommissionen eintragen könnte.

 

Kann man diese Umwandlung umgehen oder ausschalten?

 

Die Alternative für mich wäre, alle Kurse in Excel umrechnen und neu in AB einlesen, was recht umständlich ist.

 

Bin gespannt, ob mir jemand helfen kann.

 

Viele Grüße

Mathias

Geschrieben

Hallo, also nur um deine Sache richtig zu verstehen.

 

Du willst also den Effekt des EURUSD Umrechnungskurses mit berücksichtigen, korrekt?

 

Was mir dazu noch einfällt wäre zusätzlich zum Kurs des Futures oder was auch immer du testen willst die gleiche Positionsgrösse gleichzeitig in EURUSD einzugehen. Das heißt also du gehst zusätzlich long im EURUSD, damit wird die Währungsabhängigkeit mit berücksichtigt.

Allerdings könntest du im richtigen Handel auch einfach dein Währungsrisiko hedgen, in dem du eine EURUSD Shortposition in der gleichen Positionsgröße eingehst. Damit spielt die Währungsänderung keine Rolle und du erhältst 1:1 den Kursgewinn des Underlyings (Future oder was auch immer) in EUR. Allerdings fallen dadurch natürlich zusätzlich Kosten für den Währungshedge in deiner Strategie an.

 

Aber was du nun wirklich verwirklichen kannst/willst, musst natürlich du entscheiden.

Geschrieben
  • Autor

Das war ein guter Tipp mit der gleichzeitigen Positionseröffnung des EURUSD.

Nur möchte ich aus einem Portfolio bzw. Gruppe von Rohstoffen handeln. D.h. AB kauft je nach Erfüllung meiner Bedingung 0- 10 Rohstoffe mit Positionsgröße 1/10 des Kapitals. Da muss ich mal überlegen, wie ich die gleichzeitige Positionseröffnung des EURUSD in genau der Höhe des jeweiligen Kaufkapitals hinbekomme :tongue:

 

Mal sehen.

Grüße

Mathias

  • 2 Wochen später...
Geschrieben
  • Autor

Hallo zusammen,

ich habe die Lösung gefunden:

Man kann mit

SetOption( "PriceBoundChecking", False );

die automatische Anpassung der Befehle buyprice/sellprice/coverprice/shortprice ausschalten.

Somit ist es leicht, auf andere Währungen umzurechnen oder komplizierte Konditionen zu programmieren.

 

In meinem Beispiel:

BuyPrice = O/ Foreign("EurDollar","O"); // bei Kauf zum nächsten Openkurs (bei Settings eingegeben)

 

Habe ich nur durch Zufall im Manual gefunden. Wird nur bei der SetOption Funktion beschrieben, sonst nirgends.

 

Viel Erfolg weiterhin

Mathias

Bearbeitet von Tolli Molli

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.