Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Affen Markt
#11
Hallo I....

ich hab noch einige Fragen:


1. Markt

F1a) Wirklich Bananen?
Die Viertelstunden sehen mir eher nach dem Strommarkt aus.

F1b) Wenn Strommarkt wären dann nicht besser 30 statt 24 Stunden?
Für die 24 Stunden des Folgetages  und für die Reststunden des aktuellen Tages.
Falls ich einen Algorithmus programmiere kann ich auf Wunsch mit etwas Mehraufwand den Zeitraum für eine Optimierung auch flexibel halten.
Bei einer Verlängerung des Zeitraumes erhöht sich zwar die Rechenzeit Exponentiel, aber du kannst dich ja an die Grenze deiner Geduld herantasten.

F1c) Wenn Strommarkt welcher Speicher hat denn Zyklen von eineinhalb Stunden ohne Verluste?


2. Wichtig

F2a) Wie wichtig ist eine Optimierung über einen Tag für dich?
Die Aufgabe finde ich zwar interessant aber für die Überlegung eines Algorithmus und das Umsetzen in einen Code benötige ich schon etliche Stunden und die möchte ich nicht für die Tonne oder eine Spielerei investieren.
Achtung! Das ist keine Frage nach einer Entschädigung für mich.


3. Dauer der Berechnung

F3a) Welche Rechenzeit für eine Optimierung eines Tages ist für dich im Mittel akzeptabel?
Ich habe zwar noch keinen ausgefeilten Algorithmus aber nach ersten Überlegungen erwarte ich mittlere Zeiten eher im einstelligen oder unteren zweistellige Sekundenbereich.


4. erste Überlegungen für einen Algorithmus

A) Ich erstelle eine Liste aller sinnvollen Kauf/Verkaufs Sequenzen.
1. Verkaufspreis ist höher als Einkaufspreis
2. Verkaufspreis ist höher als der bisher höchste Verkaufspreis zum gleichen Einkaufszeitpunkt.
3. Zwische dem Einkaufszeitpunkt und dem aktuellen Verkaufzeipunkt minus 2 darf kein Einkaufspreis kleiner als der Preis zum Einkaufszeipunkt sein.
B) Ich stelle die Sequenzen ohne Überschneidungen iterativ über die Zeit optimal zusammen.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#12
.. in Bearbeitung
Antworten Top
#13
Hallo I...,

Dauer der Berechnung

Ich war in meiner Zeitschätzung zwar bewust konservativ aber das habe ich nicht erwartet. Für dein Beispiel benötigt mein Algorithmus auf meinem Rechner ca eine hundertstel Sekunde.

Algorithmus

In deinem Beispiel gibt es

1.908 Sequenzen die die erste Bedinung
303 Sequenzen die die ersten beiden Bedinungen und
127 Sequenzen die alle Bedinungen erfüllen.

Optimum

Bei der Verbesserung deines manuellen Wertes habe ich noch einen kleinen Fehler gemacht. Der erste Verkauf in der Zwischensequenz muss zur Zeit 73 (nicht 72) starten. Das Optimum ist dann 10,82.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#14
Hallo Ego,

danke für deine Überlegungen.

Du hast natürlich völlig Recht, es handelt sich um den Strommarkt und einen Stromspeicher, ich möchte schauen, wieviel durch Price Spreads in einem Jahr erreicht werden konnte in den vergangenen Jahren. Das Bananenanalogon war meine Idee um das ganze zu vereinfachen um eine Herangehensweise zu finden. 

Natürlich hat der Speicher (PHS) auch Verluste, man könnte von 6 1/4 Aufladezeit und 4 2/4h Entladezeit ausgehen um diese miteinzubeziehen, also 25 Zeitscheiben à 15min Laden und 18 zum Entladen. Dadurch ergibt sich natürlich auch ein minimaler Spread, ab welchem ein Kauf/Verkauf sich lohnen würde, welcher sich mathematisch wohl als min_spread=max-(max*18/25) ausdrücken ließe. Den täglichen Spread gilt es zu maximieren, während dieser minimale Spread nicht unterschritten werden darf. 

Ich hänge mal noch Strommarktdaten für Januar&Februar 2022 an, da habe ich auch wieder eine eigene einfache Logik (Zeile L) probiert, und einmal manuell etwas verbessert (Zeile M) als Vergleichswert. Zelle R7 sagt den erwirtschafteten Ertrag, ich denke das kann man leicht übertreffen.

Berechnungszeiten sind zweitrangig, Zeit und Geduld habe ich.


Natürlich könnte man auch nur 3h Laden und 2h Entladen, mehrere Zyklen am Tag fahren etc, ich denke aber, dass für den ersten Schritt 1 Zyklus am Tag mit 6 1/4 Aufladezeit und 4 2/4h Entladezeit separat ausreichen.

Vielen Dank nochmal,

viele Grüße,

Banana


Angehängte Dateien
.zip   Day_Ahead_2022JanFeb.zip (Größe: 1,18 MB / Downloads: 1)
Antworten Top
#15
Hallo B...,

A) Makro
in der Anlage im Blatt "Tabelle1" habe ich hinter dem Button "tuwat" ein Makro für die bisher starre Anforderung von  3 Zeiteinheiten Kauf und 3 Zeiteinheiten Verkauf ohne Verluste realisiert.
Das Makro benötigt
  • einen benannten Bereich mit dem Namen "Liste" in dem senkrecht die Mittelwerte von drei Zyklen eingetragen sind und
  • eine benannte Zelle mit dem Namen "Ausgabe" ab dem die Handelsentscheidungen (-1;0 oder 1) eingetragen werden.
Die Position der benannten Zellen innerhalb der Datei ist beliebig. Unterhalb der benannten Zelle "Ausgabe" werden soviele Zellen, wie der Bereich "Liste" Zeilen hat bei jedem Lauf gnadenlos überschrieben.
Innerhalb des Programmes gibt es keine Begrenzung des Zeitraumes er wird nur über die Anzahl der Zeilen im Bereich "Liste" bestimmt.

B) Zeiten
Für die 97 Zeitangaben habe ich mehrere Test durchgeführt. In deinem Beispiel und wenn ich Zufallsvariablen genutzt habe hat die Berechnung ca 0,01 Sekunden gedauert. Bei einer sehr sehr ungünstigen Preiskonstellation aber auch schon 0,45 Sekunden.
Ein Test über 36.000 Zeiteinheiten mit Zufallsvariablen hat bei mir 18 Minuten gedauert. Bei ungünstigen Daten kann es aber sehr viel länger werden.

C) Flexibilität über Handelszeiträume
Deine Handelspreise habe ich überflogen. In den ersten Tagen ist mir aufgefallen, dass immer zwei Viertelstunden besonders günstig waren. Später gabe es auch Tage, an denen es sinvoll gewesen wäre einen grösseren Zeitbereich zu nutzen. Ich glaube über flexiblere Zeitbereiche kann man sehr sehr viel mehr gewinnen als über starre Blöcke von 3 Zeiteinheiten.
Ein Rückblick über ein Jahr kann sinnvoll sein aber die Entscheidungen müssen doch immer für den Folgetag getroffen werden, so dass eine iterative Betrachtung über jeweils einen Zeitbereich von 24 Stunden doch sinnvoll ist.


Angehängte Dateien
.xlsm   MonkeySellMonkeyBuy.xlsx.xlsm (Größe: 57,39 KB / Downloads: 2)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste