Excel

      Im Bild unten sind die Kursdaten vom Dax abgebildet, welche ich gerade von VC ziehe. Die Eröffnungszeit 9 Uhr morgens ist für mich ungewöhnlich dargestellt(911). Ist das ein Excel internes Zeitformat, das man noch umwandeln muss? Wenn ja, wie kann ich da vorgehen?
      Bilder
      • 2011-11-24_17-31.png

        6,24 kB, 604×206, 584 mal angesehen

      3-D Charts mit Hilfe von Pivot Tabellen erstellen

      Die Antwort auf die Frage wie man vorgeht ist hier z.B. bebildert erklärt. Im Anhang ist noch ein Excel Bsp mit Systemoptimierungsergebnissen aus einem Aussie Forum. Wie man Elemente aus dem Pivot Bericht auswechselt, erklärt das Bild. Alles in Allem kein großes Hexenwerk.
      Bilder
      • Pivot 3D.png

        73,66 kB, 1.071×744, 664 mal angesehen
      Dateien
      • Eagle example.zip

        (120,69 kB, 567 mal heruntergeladen, zuletzt: )
      Weiß jemand wie ich den Pfad abändern kann, von welchem Excel seine RT-MT-Quotes bekommt?

      Bekomme leider nur die Daten von Alpari ins Excel, will aber die Daten von MT-Oanda drin haben.

      Mit ='MT4'|BID!EURUSD bezieht er die Daten nur von Alpari.
      Da ich es gerade selbst benötigte ... falls jemand eine Spalte mit Datum und Zeit wie im Bsp "04.04.2011 08:15:00" in einer Zelle vorliegen hat, und versuchen möchte, jeweils Datum oder Uhrzeit für die gesamte Spalte herauszulösen, ginge das wie folgt:

      Datum getrennt in Spalte B ausgeben: =Kürzen(A1)
      oder Zeit getrennt von Datum in Spalte B ausgeben: =A1-Kürzen(A1)

      oder so

      Datum getrennt in Spalte B ausgeben: =TEXT(A1;"TT.MM.JJJJ")*1
      oder Zeit getrennt von Datum in Spalte B ausgeben: =TEXT(A1;"hh:mm:ss")*1
      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..
      Im Netz gefunden (ohne Gewähr auf Funktionalität)

      Quellcode

      1. { Function: _TWAP: Time-weighted average price
      2. Very similar to VWAP, except Price is only weighted by the time (number of times the price occurs over a session).
      3. Apply only to intraday charts
      4. }
      5. vars:
      6. PriceW(0),
      7. TimeW(0) ;
      8. // Raise run time error to shut down if the bar type is not intraday
      9. Once if BarType <> 1 then
      10. RaiseRunTimeError(" TWAP function can only be used with intraday charts") ;
      11. // If the current bar date is not equal to the prior bar date then we are on
      12. // the first bar of a new day. If so, then reset PriceW and TimeW.
      13. if Date[1] <> Date then
      14. begin
      15. PriceW = 0;
      16. TimeW = 0;
      17. end;
      18. // Add to the price weighting the new average price times the bar interval (number of minutes)
      19. PriceW = PriceW + ( AvgPrice * BarInterval ) ;
      20. // Add to the time weighting the total elapsed minutes for this day
      21. TimeW = TimeW + BarInterval ;
      22. // If the time weighting is non-zero then we calculate a TWAP, else return -1
      23. // indicating we cannot calculate TWAP.
      24. if TimeW > 0 then
      25. _TWAP = PriceW / TimeW
      26. else
      27. _TWAP = -1 ;
      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
      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





      Quellcode

      1. Private Sub Worksheet_Calculate()
      2. Static BidVorher As Variant
      3. Static AskVorher As Variant
      4. Dim BidAktuell As Variant, AskAktuell As Variant
      5. BidAktuell = Range("B3").Value
      6. If BidAktuell <> BidVorher Then
      7. BidVorher = BidAktuell
      8. Application.ScreenUpdating = False
      9. If Len(Range("B" & Rows.Count)) Then Range("A" & Rows.Count).Resize(1, 2) = ""
      10. Range("A4:B4").Insert
      11. Range("A4").NumberFormat = "dd.mm.yyyy hh:mm:ss"
      12. Range("B4").NumberFormat = Range("B3").NumberFormat
      13. Range("A4").Value = Now
      14. Range("B4").Value = BidAktuell
      15. Application.ScreenUpdating = True
      16. End If
      17. AskAktuell = Range("D3").Value
      18. If AskAktuell <> AskVorher Then
      19. AskVorher = AskAktuell
      20. Application.ScreenUpdating = False
      21. If Len(Range("D" & Rows.Count)) Then Range("C" & Rows.Count).Resize(1, 2) = ""
      22. Range("C4:D4").Insert
      23. Range("C4").NumberFormat = "dd.mm.yyyy hh:mm:ss"
      24. Range("D4").NumberFormat = Range("D3").NumberFormat
      25. Range("C4").Value = Now
      26. Range("D4").Value = AskAktuell
      27. Application.ScreenUpdating = True
      28. End If
      29. End Sub