You are not logged in.

trash

Resteverzehrer

Posts: 982

Thanks: 1275

  • Send private message

211

Thursday, March 24th 2011, 4:41pm

Versuchs mal damit.
trash has attached the following file:
  • TWAP.zip (13.44 kB - 61 times downloaded - latest: Feb 1st 2012, 1:44am)

2 registered users thanked already.

Users who thanked for this post:

Krümel (19.08.2011), Perfect Trader (24.03.2011)

Purri

Alphaholic

Posts: 1,296

Thanks: 941

  • Send private message

210

Thursday, March 24th 2011, 1:17pm

Danke, aber das ist nicht genau das, was ich suche. Das Skript unten basiert auf Bars. Mit EL kenn ich mich nicht wirklich aus, aber es sieht so aus als würde das Skript einfach den Close-Preis mit dem Intervall multiplizieren (zB 5 für einen 5-Min Chart), alles aufsummieren und am Ende durch die Anzahl der Minuten teilen. Abgesehen davon, das der TWAP von einem 5-Min Bar nicht 5*Close-Preis ist, errechnet das Skript eigentlich nur den Durchschnitt aller Close-Preise.

Wenn man keine Bars verwendet, sondern nur Zeit/Preis-Paare ohne fixes Intervall, muss man das irgendwie anders machen. Z.B.:

17:30:00 1,4010
17:30:17 1,4014
17:30:44 1,4019
17:31:03 1,4016
17:31:15 1,4015

Ein brachialer Ansatz um den TWAP in Sekunden-Auflösung auszurechen, wäre ein Array mit den 75 Preisen aufzufüllen (Zeitraum hat 75 Sekunden) und dann den Durchschnitt auszurechnen. Aber da muss es doch eine sauberere Lösung geben. Ein Problem damit ist, dass die Preise nicht im Sekundentakt daherkommen, und man zig Sekunden-Fehler über den ganzen Zeitraum aufsummiert..

2 registered users thanked already.

Users who thanked for this post:

Krümel (19.08.2011), Perfect Trader (24.03.2011)

goso

Teilzeitrentner

Posts: 12,174

Thanks: 2525

  • Send private message

209

Thursday, March 24th 2011, 7:32am

Im Netz gefunden (ohne Gewähr auf Funktionalität)

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{ Function: _TWAP: Time-weighted average price

Very similar to VWAP, except Price is only weighted by the time (number of times the price occurs over a session).

Apply only to intraday charts

}

vars:
PriceW(0),
TimeW(0) ;

// Raise run time error to shut down if the bar type is not intraday
Once if BarType <> 1 then
RaiseRunTimeError(" TWAP function can only be used with intraday charts") ;

// If the current bar date is not equal to the prior bar date then we are on
// the first bar of a new day. If so, then reset PriceW and TimeW.
if Date[1] <> Date then
begin

PriceW = 0;
TimeW = 0;

end;

// Add to the price weighting the new average price times the bar interval (number of minutes)
PriceW = PriceW + ( AvgPrice * BarInterval ) ;

// Add to the time weighting the total elapsed minutes for this day
TimeW = TimeW + BarInterval ;

// If the time weighting is non-zero then we calculate a TWAP, else return -1
// indicating we cannot calculate TWAP.
if TimeW > 0 then
_TWAP = PriceW / TimeW
else
_TWAP = -1 ;

2 registered users thanked already.

Users who thanked for this post:

Krümel (19.08.2011), Perfect Trader (24.03.2011)

Purri

Alphaholic

Posts: 1,296

Thanks: 941

  • Send private message

208

Wednesday, March 23rd 2011, 11:55pm

Ja, das TWAP Skript wäre interessant.

trash

Resteverzehrer

Posts: 982

Thanks: 1275

  • Send private message

207

Wednesday, March 23rd 2011, 9:46pm

Meinst du TWAP im Gegensatz zu VWAP (siehe unten Bild)?
Sprache wäre egal.

Muss also nicht Excel spezifisch sein?
Für NT7 habe ich irgendwo ein Scipt mit TWAP und VWAP Berechnung.
trash has attached the following image:
  • vwap.png

Purri

Alphaholic

Posts: 1,296

Thanks: 941

  • Send private message

206

Wednesday, March 23rd 2011, 8:02pm

Hat jemand den Code zur Errechnung zeit-gewichteter Durchschnitte parat? Ich habe DateTime und Double Paare als Ausgangsbasis. Sprache wäre egal.

trash

Resteverzehrer

Posts: 982

Thanks: 1275

  • Send private message

205

Tuesday, March 22nd 2011, 7:46pm

Ich habe double genommen

desweiteren auf Vorschlag

If IsError(Range("B3").Value) Then
DoEvents
Exit Sub
End If

eingefügt

Fehlermeldung ist nun weg. Gesamtheitlich schaut's so aus.


retep

Master

Posts: 2,109

Thanks: 936

  • Send private message

204

Tuesday, March 22nd 2011, 6:27pm

Ich würde "B" und "D" als Datentyp Currency deklarieren, Und nicht Variant. Zudem immer "Option Explicit" angeben.
So geht keine Var verloren im Gestrüp.

Eventuell musst du die Werte noch konvertieren (von String zu Currency).

Sub ConvertToCurrency()

Dim lNum As Double

lNum = 999.989876
MsgBox CCur(lNum)

End Sub

Dazu findest du im Netz jede Menge Hilfe.
Würde und Sein - sind allen gemein

4 registered users thanked already.

Users who thanked for this post:

goso (22.03.2011), Krümel (19.08.2011), Perfect Trader (23.03.2011), trash (22.03.2011)

trash

Resteverzehrer

Posts: 982

Thanks: 1275

  • Send private message

203

Tuesday, March 22nd 2011, 5:04pm

Ist jemand fit in VBA?

Ich bekomme mit unterem Code einen Laufzeitfehler

B3 und D3 enthalten z.B.

=MT4|BID!EURUSD

bzw

=MT4|ASK!EURUSD





Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub Worksheet_Calculate()

  Static BidVorher As Variant
  Static AskVorher As Variant
  Dim BidAktuell As Variant, AskAktuell As Variant
  
  BidAktuell = Range("B3").Value
  If BidAktuell <> BidVorher Then
    BidVorher = BidAktuell
    Application.ScreenUpdating = False
    If Len(Range("B" & Rows.Count)) Then Range("A" & Rows.Count).Resize(1, 2) = ""
    Range("A4:B4").Insert
    Range("A4").NumberFormat = "dd.mm.yyyy hh:mm:ss"
    Range("B4").NumberFormat = Range("B3").NumberFormat
    Range("A4").Value = Now
    Range("B4").Value = BidAktuell
    Application.ScreenUpdating = True
  End If
     
  AskAktuell = Range("D3").Value
  If AskAktuell <> AskVorher Then
    AskVorher = AskAktuell
    Application.ScreenUpdating = False
    If Len(Range("D" & Rows.Count)) Then Range("C" & Rows.Count).Resize(1, 2) = ""
    Range("C4:D4").Insert
    Range("C4").NumberFormat = "dd.mm.yyyy hh:mm:ss"
    Range("D4").NumberFormat = Range("D3").NumberFormat
    Range("C4").Value = Now
    Range("D4").Value = AskAktuell
    Application.ScreenUpdating = True
  End If
  
End Sub

Posts: 3,041

Thanks: 3678

  • Send private message

202

Tuesday, August 10th 2010, 7:09pm

@ mta

Da hast Du aber schnell gelesen. Nach Deinem Folge-Post 191 hätte ich gedacht, daß sich das dadurch erledigte und hatte den Text meines Post zu "bitte löschen" geändert.

@ all

Grundsätzlich müssen die in Excel von extern einkopierten/eingelesenen Daten-Formate mit den Länder-Einstellungen übereinstimmen oder man muß den Import-Assistenten benutzen, statt die CSV-Files im Vertrauen auf die Automatismen zu nutzen.

Ein Misch-Masch oder späteres Ändern im Excel ist aufwendiger als der gleich erfolgende richtige Import.
Wer nichts weiß, muß alles glauben.

2 registered users thanked already.

Users who thanked for this post:

Shakesbeer (10.08.2010), Vikke (10.08.2010)

trash

Resteverzehrer

Posts: 982

Thanks: 1275

  • Send private message

201

Tuesday, August 10th 2010, 2:33pm

Mit VB ließe sich das sicher machen.

Hier gibt's zwei Bsp.threads
http://www.ms-office-forum.de/forum/showthread.php?t=216665
http://www.herber.de/forum/archiv/744to748/t746689.htm

Die Datei aus dem ersten Thread habe ich mal hier hochgeladen, da man dort registriert sein muss für das Betrachten von Dateien.
trash has attached the following file:
  • Mappe1.zip (10.16 kB - 46 times downloaded - latest: Dec 31st 2011, 5:42am)
"I'm a trader, baby. So, why don't you kill me?!"

2 registered users thanked already.

Users who thanked for this post:

hapack (10.08.2010), Perfect Trader (10.08.2010)

hapack

Trainee

Posts: 138

Location: Roisdorf

Occupation: Krankenpfleger

Thanks: 94

  • Send private message

200

Tuesday, August 10th 2010, 2:10pm

@ trash und andere Excel-Kenner

Ich habe ein Problem mit Excel 2000.
Ich brauche eine (nach Möglichkeit akustische) Überwachung einer Zelle.
Das Tool Cellwatch 2.0 von Smarttools funktioniert leider nicht so, wie es soll.

Der Wert der zu überwachenden Zelle ändert sich fortlaufend.
Mit der bedingten Formatierung lässt sich die Überwachung optisch gut einrichten, aber leider nicht akustisch.
Kennst du ein brauchbares Tool bzw. eine brauchbare Lösung?

MfG Harald
Bin dann mal weg.

trash

Resteverzehrer

Posts: 982

Thanks: 1275

  • Send private message

199

Tuesday, August 10th 2010, 1:43pm

Yep, wird nicht als Zahl erkannt.
Könntest es dann so machen, als eine Lösung.

"I'm a trader, baby. So, why don't you kill me?!"

1 registered user thanked already.

Users who thanked for this post:

Vikke (10.08.2010)

mta

Beginner

Posts: 30

Thanks: 29

  • Send private message

198

Tuesday, August 10th 2010, 1:34pm

Denke auch das es daran mit liegt. Perfect_Trader hatte es auch schon erwähnt.

2 registered users thanked already.

Users who thanked for this post:

Perfect Trader (10.08.2010), Vikke (10.08.2010)

hapack

Trainee

Posts: 138

Location: Roisdorf

Occupation: Krankenpfleger

Thanks: 94

  • Send private message

197

Tuesday, August 10th 2010, 1:19pm

Bin dann mal weg.

1 registered user thanked already.

Users who thanked for this post:

Vikke (10.08.2010)

DickT

Professional

Posts: 799

Thanks: 218

  • Send private message

196

Tuesday, August 10th 2010, 10:37am

Zu Post 193

Die unterschiedliche Bündigkeit der Zellinhalte deutet evt. darauf, dass Excel die Spalte "B" nicht als Zahl, sondern als Text wertet und demnach keine Korrelation zwischen Zahlen und Text errechnen kann.
Dies kann (weiß nicht, wie neuere Excle damit umgehen, nutze noch Excel 2003) mit der unterschiedlichen Komma-Ländereinstellung zu tun haben. Daher überall die Dezimal-Punkte durch Dezimal-Kommas ersetzen (oder umgekehrt, je nach Ländereinstellung). Dann sollte es gehen.

3 registered users thanked already.

Users who thanked for this post:

Shakesbeer (10.08.2010), trash (10.08.2010), Vikke (10.08.2010)

ibelieve

nichts Wissender, der aber gerne sein nicht Wissen mit anderen teilt

Posts: 772

Thanks: 194

  • Send private message

195

Tuesday, August 10th 2010, 9:37am

Semikolon mit deutscher Ländereinstellung geht im unteren Beispiel, jedoch wiederum nicht im oberen Bereich.


Was hat den deine Reihe B für ein Format das Du da eine Zahl mit Punkt hast?
Die Wissenden reden nicht viel,die Redenden wissen nicht viel.

http://klaus-m.blogspot.com/

1 registered user thanked already.

Users who thanked for this post:

Vikke (10.08.2010)

hapack

Trainee

Posts: 138

Location: Roisdorf

Occupation: Krankenpfleger

Thanks: 94

  • Send private message

194

Monday, August 9th 2010, 10:44pm

Keine Ahnung, obs hilft, versuch mal, vorher die Nachkommastellen gleich zu setzen :?:
Event. auch noch links und rechtsbündig gleich setzen???
Bin dann mal weg.

1 registered user thanked already.

Users who thanked for this post:

Vikke (10.08.2010)

remon

Professional

Posts: 1,007

Thanks: 361

  • Send private message

193

Monday, August 9th 2010, 10:31pm

Semikolon mit deutscher Ländereinstellung geht im unteren Beispiel, jedoch wiederum nicht im oberen Bereich.
remon has attached the following image:
  • 2010-08-09_223015.gif

remon

Professional

Posts: 1,007

Thanks: 361

  • Send private message

192

Monday, August 9th 2010, 10:22pm

Semikolon geht leider auch nicht. Seltsamerweise geht das Komma wie im unteren Beispiel, jedoch nicht mit den oberen Zahlenreihen.

Könnte das mit dem Zahlenformat(Dezimal) zu tun haben?
remon has attached the following image:
  • 2010-08-09_222049.gif