Autor Beitrag
Michael Farlaub
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18


D6 PE, Indy 9
BeitragVerfasst: So 19.06.05 17:58 
grüß Euch!


Ich habe Grafiken in der Charts dargestellt sind. Mein Ziel ist es Kanäle zu erkenne an die ein Vekor (Linie) angelegt werden soll.

Am besten hier mal mein gezeichnetes Beispiel:

Chart:

user defined image

Hier die Vektoren:

user defined image

Die Charts sehen mehr oder weniger alle ähnlich aus. Es gibt Auf und Abwärts-kanäle.

Ich werde das Bild mit scanline nach Farbenerkennung abscannen, so dass zu jedem Pixel die Farbe habe.

Ich bin jedoch leider auf noch keine brauchbare Strategie gekommen wie ich die Vektoren an ihr Stelle bekomme.

Über Vorschläge würde ich mich freuen.

Grüße

Michael

_________________
Was ist denn jetzt los?
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 19.06.05 21:59 
Normalerweise nimmt man die zugrundeliegenden numerischen Werte und dann die gute alte Analysis, um die Charttendenzen einzuzeichen. Wenn Dir nichts anderes, als Bitmaps zur Verfügung stehen, wird es natürlich schwieriger...

Du erstellst eine Liste aller unteren Enden der gelben Linien, und eine Liste der oberen Enden der gelben Linien (jeweils XY-Paare). Dann benutzt Du Mathematik (Analysis).
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 19.06.05 22:12 
Darf man fragen, was das für Daten sind? (Interpretation der gelben Punkte und Interpretation der zu bestimmenden Linien)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 19.06.05 22:18 
[einmisch]
Sieht nach Aktienkursen aus :
Gelb: Tageskurse mit niedrigstem/höchstem Kurs
Lila Punkte: 30 day moving average
Rot/Pink : 200 day moving average
[/einmisch]
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 19.06.05 22:22 
Ach so, dann würd ich auch mal so ein 30 day moving average machen. Anhand der lila Punkte sieht man ja relativ gut, ob's nach oben oder unten geht. Einfach die Richtungswechselstellen merken und die mit Linien verbinden.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 19.06.05 22:29 
Sollte Michael mal erklären. Mit dieser Charttechnik soll man irgendwie Tendenze erkennen, aber einfach die Umkehrpunkte verbinden reicht wohl nicht. Schau Dir mal die lokalen Minima/Maxima an. Da wird dann dieser Punkt mit dem kleinsten/grössten Minima/Maxima der foglenden Tage verbunden: solange der Kurs wieder steigt, wird das lokale Minimum (Wendepunkt des Kurses) mit dem kleinsten Tagesminimum während der steigenden Kurse verbunden und umgekehrt.
Der Schnittpunkt mit den anderen Linien soll dann den richtigen Einstiegspunkt für die Bestellung von Frischfisch sein oder so. Keine Ahnung. :lol:

Wie gesagt: Sollte Michael mal erklären....
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: So 19.06.05 22:40 
Naja, so genau hab ich das auch alles nicht verstanden, aber ich hab mal was auf die schnelle geproggt (Ist vieleicht ein Anfang).

man braucht nur ein TImage mit der Bitmap und ein TButton:

ausblenden volle Höhe Delphi-Quelltext
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:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
type
  TIntArray = array of Integer;
  TRichtung = (rStart, rUp, rDown);

procedure ColorSearch(src: TBitmap; var Buffer: TIntArray; r,g,b: Byte);
var
  x, y: Integer;
  p: PRGBTriple;
  pos: Word;
begin
  src.PixelFormat:=pf24bit;
  SetLength(Buffer, src.Width);
  for x:=0 to src.Width-1 do begin
    pos:=0;
    for y:=0 to src.Height-1 do begin
      p:=src.ScanLine[y];
      Inc(p, x);
      if (p.rgbtRed=r) and (p.rgbtGreen=g) and (p.rgbtBlue=b) then begin
        Inc(Buffer[x]);
        Inc(pos, y);
      end;
    end;
    if Buffer[x]>1 then begin
      Buffer[x]:=pos div Buffer[x];
    end else
      Buffer[x]:=-1;
  end;
end;

procedure DrawVektor(src: TBitmap; var Buffer: TIntArray; Color: TColor; Precise: Byte);
var
  x, x1, y: Integer;
  richtung: TRichtung;
begin
  src.Canvas.Pen.Color:=Color;
  y:=0; x1:=0;
  richtung:=rStart;
  for x:=0 to High(Buffer) do
    if Buffer[x]<>-1 then begin
      Case Richtung of
        rStart: begin
                  if Buffer[x]<y then Richtung:=rUp else Richtung:=rDown;
                  src.Canvas.MoveTo(x, Buffer[x]);
                end;
        rUp   : if (Buffer[x]>y) and (Buffer[x]-y>Precise) then begin
                  src.Canvas.LineTo(x1, y);
                  Richtung:=rDown;
                end;
        rDown : if (Buffer[x]<y) and (y-Buffer[x]>Precise) then begin
                  src.Canvas.LineTo(x1, y);
                  Richtung:=rUp;
                end;
      end;
      y:=Buffer[x];
      x1:=x;
    end;
  src.Canvas.LineTo(x1, y);
end;

procedure TForm1.Button1Click(Sender: TObject);
var Buffer: TIntArray;
begin
  ColorSearch(Image1.Picture.Bitmap, Buffer, 255,204,2);
  DrawVektor(Image1.Picture.Bitmap, Buffer, clWhite, 6);
  Image1.Repaint;
end;


So siehts dann aus:
user defined image

EDIT: Code verbessert

mfg
Phantom1

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.


Zuletzt bearbeitet von Phantom1 am Mo 20.06.05 10:41, insgesamt 1-mal bearbeitet
Michael Farlaub Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18


D6 PE, Indy 9
BeitragVerfasst: So 19.06.05 23:34 
grüß euch!

genau, es ist ein aktienkurs und es geht um charttechnik.
wenn der kurs eine kanal verlässt (bricht), ist das ein zeichen für einen richtungswechesel. (ist einer von vielen chartindikatoren)

Zitat:
Ach so, dann würd ich auch mal so ein 30 day moving average machen


moving average ist auch ein trendindikator, aber was anders als trendkanäle.


@Phantom1

man du bist ja echt ein genie! das ist schon so gut wie das was ich brauche.
wie lange hast du dafür gebraucht?
RESPEKT! und vielen dank!


grüße


michael

_________________
Was ist denn jetzt los?
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: So 19.06.05 23:46 
@Michael Farlaub: so schwer fand ich das eigentlich nicht, hab dafür nur etwa 1 stunde gebraucht (hatte grade lust und zeit :wink: ). Naja wie auch immer du kannst den code ja na nach deinen wünschen anpassen, falls du fragen zum Code hast, bitte dann über PN.
Michael Farlaub Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18


D6 PE, Indy 9
BeitragVerfasst: Mo 20.06.05 00:09 
ausblenden Quelltext
1:
2:
3:
4:
Sollte Michael mal erklären. Mit dieser Charttechnik soll man irgendwie Tendenze erkennen, aber einfach die Umkehrpunkte verbinden reicht wohl nicht. Schau Dir mal die lokalen Minima/Maxima an. Da wird dann dieser Punkt mit dem kleinsten/grössten Minima/Maxima der foglenden Tage verbunden: solange der Kurs wieder steigt, wird das lokale Minimum (Wendepunkt des Kurses) mit dem kleinsten Tagesminimum während der steigenden Kurse verbunden und umgekehrt. 
Der Schnittpunkt mit den anderen Linien soll dann den richtigen Einstiegspunkt für die Bestellung von Frischfisch sein oder so. Keine Ahnung.  

Wie gesagt: Sollte Michael mal erklären....


Bei der Charttechnik kombiniert man verschiedene indikatoren(SAR, MACD, RSI, Slow Stochastik, Fibonacci Zahlen, Trendkanäle) die dann, wenn quasi alle kauf = true sind, gekauft werden

dann kann man schon ziemlich gute performance erziehlen. bin dabei solch ein automatisches tradingsystem zu entwickeln.

der ganze börsenkram bzw die menschliche psychologie kann man alles mit mathematik beschreiben. so kann man einen aktienverlauf ausreichend vorhersehen. zumindest den trend.

user defined image


grüße

michael

_________________
Was ist denn jetzt los?


Zuletzt bearbeitet von Michael Farlaub am Mo 20.06.05 00:17, insgesamt 1-mal bearbeitet
Michael Farlaub Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18


D6 PE, Indy 9
BeitragVerfasst: Mo 20.06.05 00:15 
Titel: :
_____________

_________________
Was ist denn jetzt los?