Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Posts aus dem alten Userforum » nochmal Trend im Radarscreen » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  nochmal Trend im RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Uwe !

(Fortsetzung vom 28.05.01)
Vielen Dank für Deine schnelle Hilfe,sorry daß ich erst jetzt antworte.
Habe versucht die "Bunte Mischung" zu programmieren,aber leider ohne Erfolg.

Ist die von Dir genannte Textkettenvariante einfacher zu programmieren?
Wie funktionieren diese Basic-ähnlichen Befehle für die Handhabung von Zeichenketten?

Frohe Pfingsten wünscht
Hans

02.06.2001, 17:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: nochmal Trend im RadarscreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo, Hans!

Woran hat es gelegen? Es gab leider in der Konzeptfassung nicht den fertigen Programmcode, da ich nur Deine niedergeschriebenen Gedanken, mit eben diesen Worten wiedergegeben habe.

Da aber auch Dein Frage nach den Zeichenketten-Befehlen gestellt wird, vermute ich, das die Erfahrung mit EL erst ausgebaut wird.

Viele Hinweise auf einsetzbare Funktionen kanst Du unter dem Eintrag in der Menüleiste

Tools
  --> EasayLanguage Directonary
finden.

In der Kategorie User Functions bekommst Du alle möglichen Funktionen angezeigt, die Du in den verschiedenen Programmen einsetzen kannst. Eine Rubrik ist überschrieben mit Text Manipulation, wo Du die von mir angesprochen BASIC-ähnlichen Befehle für die Textkettenverarbeitung (STRING) findest.

Ein PatternString, an dem das aktuelle Zeichen rechts steht, könnte also folgendermassen gebildet werde:

vars: newLetter(""), PatterStr(""), nLetter(0), maxLetter(4);

{....Anweisungen, die zum Setzen von newLetter führen, z.B.}
if Close>close[1] then newLetter="+";

nLetter=StrLen(PatternStr);

if nLetter>maxLetter then
   PatterStr = RightStr(PatternStr,nLeter-1)+newLetter
else
   PatterStr = PatternStr+newLetter;


Soviel zu Zeichenketten.



Doch leider hast Du Deine Probleme, bei der Umsetzung der Idee zum Programmm, nicht benannt, was eigentlich nur heute nicht weiter tragisch ist, da ich die die Nachmittagszeit nutzen kann, ganz weit auszuholen, selbst, wenn vieles bekannt sein dürfte.

Eine Bemerkung jedoch zuvor, die möglicherweise eine Ursache dafür sein kann, warum ein funktionsfähiges Programm im Radarscreen nicht die gewünschten Ergebnisse zeigt: Benötigt Dein "RadarScree"-Indikator mehr als den aktuellen Schlußkurs und seine Veränderung gegenüber dem vorherigen Kurs, um seine Aufgabe erfüllen zu können, so mußt Du den Indikator im RadarSreen (Format Indikator) oder gleich bei der Programmierung im EL-Fenster (Indicator Properties) über die Anwahl und dem Eintrag zu Load additional data for acummulative calculations die notwendige Anzahl mitteilen.



Hier ist der Eintrag 2 benutzt, so daß sich, im Beispiel, die Anzeige nur auf den aktuellen und die zwei vorherigen Einträge beziehen kann. Fehlt diese Angabe, wird der Indikatar nur dei Angaben liefern, die er aus dem aktuellen Bar beziehen kann und alle vorherigen Werte "vergessen" haben.

Für die folgende Programmfassung ist der Eintrag auf >2 zu setzen.


Doch nun zur Idee, die wegen der Verschachtelung der WENN-DANN-SONST-Anweisungen, als linguistisches Programm erstellt wird:

Wenn Schlußkurs größer als Schluskurs vor nBars, dann
  beginne folgenden BlockA abzuarbeiten bis zum
  Ende
  sonst
  Wenn Schlußkurs kleiner als Schluskurs vor nBars, dann
    beginne folgenden BlockB abzuarbeiten bis zum
    Ende
    sonst ( hier ist klar, daß Schlußkurs gleich dem Schlußkurs vorn-Bars ist)
      beginne folgenden BlockC abzuarbeiten bis zum
      Ende

Wenn aktuelles Zeichen rechts stehen soll, dann
  beginne älteste Ausgabe in Plot1,....,jüngste Ausgabe in Plot4
  Ende
  sonst
    beginne jüngste Ausgabe in Plot1,....,älteste Ausgabe in Plot4
    Ende

BEGIN BlockA
  Wenn Volumen größer als Volumen vor nBars, dann setze Formatierung UpUp
  sonst
  Wenn Volumen klein als Volumen vor nBars, dann setze Formatierung UpDn
BlockA END


BEGIN BlockB
  Wenn Volumen größer als Volumen vor nBars, dann setze Formatierung DnUp
  sonst
  Wenn Volumen klein als Volumen vor nBars, dann setze Formatierung DnDn
BlockB END


BEGIN BlockC
  setze Formatierung für gleichen Schlußkurs
BlockC END



Das gewünschte Ergebnis sollte so aussehen:




Hier nun das Programm, was dieses Erscheinungsbild erstellt (nur der keine Zeit hat, liest hier vor eigenen Versuchen weiter ;-):.


inputs: LastRight(1), RefBack(1);
{
LastRight = 1 := juengstes Zeichen steht rechts
LastRight = 0 := juengstes Zeichen steht links
RefBack = n := Vergleich mit dem n.ten Bar vor dem aktuellen Bar
}


vars: mark(" "), LastMark("[*]"), fColor(red), bColor(yellow);
{
Farbvorbelegung an Zentraler Stelle;
fColor: Schriftfarbe
bColor: Hintergrundfarbe
.......Close Volume
UpUp.....Up....Up
UpDn.....Up....Dn
DnDn.....Dn....Dn
DnUp.....Dn....Up
Eq.......Eq......
}


vars: fColorUpUp(darkgreen), bColorUpUp(yellow), MarkUpUp("+ +");
vars: fColorUpDn(black), bColorUpDn(LightGray), MarkUpDn("+ -");
vars: fColorDnDn(darkred), bColorDnDn(yellow), MarkDnDn("- -");
vars: fColorDnUp(red), bColorDnUp(Lightgray), MarkDnUp("- +");
vars: fColorEq(darkgray), bColorEq(white), MarkEq("=");

if Close>Close[RefBack] then
begin
{BEGIN BlockA}
if Volume>Volume[RefBack] then
begin
Mark=MarkUpUp;
fColor=fColorUpUp;
bColor=bColorUpUp;
end
else
if Volume begin
Mark=MarkUpDn;
fColor=fColorUpDn;
bColor=bColorUpDn;
end;
{BlockA END}
end
else
if Close
{BEGIN BlockB}
begin
if Volume>Volume[RefBack] then
begin
Mark=MarkDnUp;
fColor=fColorDnUp;
bColor=bColorDnUp;
end
else
if Volume begin
Mark=MarkDnDn;
fColor=fColorDnDn;
bColor=bColorDnDn;
end;
end
{BlockB END}
else
{BEGIN BlockC}
begin
Mark=MarkEq;
fColor=fColorEq;
bColor=bColorEq;
end;
{BlockC END}

if LastRight=1 then
begin
{für die Darstellung des aktuellen Zeichens rechts:}
plot1(Mark[3],"M1",fcolor[3], bcolor[3]);
plot2(Mark[2],"M2",fcolor[2], bcolor[2]);
plot3(Mark[1],"M3",fcolor[1], bcolor[1]);
plot4(Mark[0]+" "+LastMark,"M4",fcolor[0], bcolor[0]);
end
else
begin
{für die Darstellung des aktuellen Zeichens links:}
plot1(LastMark+" "+Mark[0],"M1",fcolor[0], bcolor[3]);
plot2(Mark[1],"M2",fcolor[0], bcolor[2]);
plot3(Mark[2],"M3",fcolor[0], bcolor[1]);
plot4(Mark[3],"M4",fcolor[0], bcolor[0]);
end;




Im wesentlichen sollten sich die Teile des Programmes von selbst erklären.

Eine weitere Unterteilung der Farbgebungen für den Fall, daß die aufeinanderfolgenden Schlußkurse gleich sind (BlockC), wäre vorstellbar. Auch könnten die Symbole +, - und = ersetzt werden durch Zeichenfolgen UpUp, UpDn, DnDN.....

Darüber hinaus, nach der einübung in die Verbindung von Zeichenketten, kann der String natürlich auch vereinfacht nach den Gegebenheiten aufgebaut werden:

if Close>Close[1] then MarkC="+"
else if Close else MarkC="=";

if Volume>Volume[1] then MarkV="+"
else if Volume else MarkV="=";

Mark=MarkC+"/"+"MarkV;


Soviel zum Thema, in der Hoffnung, daß sehr viel Anregungen zum Weiterentdecken und Weiterversuchen von Entwicklungen gegeben wurden

Gruß
Uwe

03.06.2001, 14:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  @ EL Lehrmeister UweAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Uwe!

Tausend Dank für Deine Hilfe!
Genau so habe ich mir diesen Trendanzeiger im RadarScreen vorgestellt.
Den Nagel auf den Kopf getroffen hast Du mit der möglichen Ursachenbeschreibung,genau Dieses hat bei mir nicht funktioniert.
Schon lange habe ich mir ein EL Lehrbuch gewünscht,daß eine so eindrucksvolle u.leichtverständliche Beschreibung enthält, wie Du es hier aufgezeigt hast.
Wie Du richtig vermutest, muß meine Erfahrung mit EL erst noch ausgebaut werden, mein großer Nachteil sind natürlich meine mangelnden Englischkenntnisse(eine deutsche Übersetzung wäre längst
überfällig,wenigstens die wichtigsten Begriffe z.B.der EL Directonary).
-
Zum PatternString habe ich folgenden Code eingegeben(zur Einfachheit ohne Volumen):

vars:newLetter(""), PatterStr(""), nLetter(0),maxLetter(4);
if Close>Close[1] then newLetter="+";
if Close=Close[1] then newLetter="=";
if Close
nLetter=StrLen(PatternStr);

if nLetter>maxLetter then
PatterStr = RightStr(PatternStr,nLetter-1)+newLetter
else
PatterStr = PatternStr+newLetter;

(-Muß hier noch ein Input eingegeben werden?
-den Begriff PatternStr erkennt das Sytem nicht
-PatterStr u. PatternStr sind das zwei verschiedene Begriffe?

Nochmals vielen vielen Dank für Deine Hilfe.
Solltest Du Dich irgendwan doch entschließen einen EL Kurs abzuhalten,ich bin dabei(egal wo).
Viel Erfolg beim Traden wünscht
Hans

03.06.2001, 19:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  TrendPatternStr im RadarScreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Mein Fehler, Hans. Natürlich habe ich inder vars-Liste das n bei der Deklaration PatterStr vergessen.


vars:newLetter(""), PatternStr(""), nLetter(0),maxLetter(4);

if Close > Close[1] then newLetter="+";
if Close = Close[1] then newLetter="=";
if Close < Close[1] then newLetter="-";

nLetter=StrLen(PatternStr);

if nLetter > maxLetter then
PatternStr = RightStr(PatternStr,nLetter-1)+newLetter
else
PatternStr = PatternStr+newLetter;
plot1(PatternStr,"TrendPattern");



Du benötigst keine Inputvariablen, es sei denn, Du möchtset das Programm in seiner Flexibilität entsprechend der anderen Version erweitern, wa die Links-/Rechst-Anfügung oder die Referenzbaranzahl auswählbar war.

Gruß
Uwe

03.06.2001, 19:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Schmalhofer Johann
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 36

_Schmalhofer Johann ist offline
  RE: TrendPatternStr im RadarScreenAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Vielen Dank Uwe,
alles einwandfrei programmiert.

04.06.2001, 13:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Schmalhofer Johann senden Homepage von _Schmalhofer Johann
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR