Tradestation User Group Germany (http://www.tradernet.org/wbb/index.php)
|- Posts aus dem alten Userforum (http://www.tradernet.org/wbb/board.php?boardid=15)
|-- Intrabar- Schalter (http://www.tradernet.org/wbb/threadid.php?boardid=15&threadid=155)


Geschrieben von _Tina am 30.11.2001, 10:10:

  Intrabar- Schalter

Hallo Leute,

es müßte doch möglich sein, mit Hilfe einer dll, einen "Schalter" zu basteln, der innerhalb einer Bar reagiert.
Leider bin ich mit dieser Art der Programmierung absolut nicht vertraut, könnte es mir aber so vorstellen:
Variable1 = 0;
Ein Ereignis "X" tritt ein dadurch wird an den externen "Schalter" ein Signal gegeben der nun ein Signal an den PowerEditor gibt und die Variable1 = 1; schaltet.

Geht sowas? Oder hat jemand schon sowas programmiert?

Danke Tina


Geschrieben von _Klaus Eckhoff am 30.11.2001, 11:10:

  RE: Intrabar- Schalter

Hallo Tina,

was willst Du genau machen? Jeder Indikator arbeitet Tickweise, wenn Du "Update every tick" einschaltest. Folglich kannst Du (auch ohne DLL) jederzeit Variablen setzen.

Lediglich Signale arbeiten (abgesehen von den eingebauten Stops) nur Barweise, d.h. Du kannst immer nur am Ende eines jeden Bars neue Orders generieren welche dann aber auch wieder im nächsten Bar tickweise (bei Stop- und Limit-Orders) abgearbeitet werden.

Also was genau ist das Ziel Deiner Frage?

-Klaus


Geschrieben von _Tina am 30.11.2001, 12:10:

  RE: Intrabar- Schalter

Hallo Klaus,

Du hast das Problem im Prinip schon geschildert. Im PowerEditor wird eine Variable immmer erst am Ende oder besser zu Beginn der nächsten Bar verändert.
Meine Frage ist nun, ob es eine Möglichkeit gibt(wie auch immer) eine Variable auch innerhalb einer Bar zu verändern. Der PowerEditor arbeitet ja wohl so, daß er von oben nach unten das Script durcharbeitet. Wenn also irgend eine Variable am Anfang steht und von einem exteren Schalter verändert werden könnte, wären somit Veränderungen von einem Tick zum anderen auch innerhalb einer Bar möglich.

Danke für jeden Hinweis

Tina

PS: Tut mir leid, daß ich mich so schlecht verständlich machen kann (;-(


Geschrieben von _Uwe am 30.11.2001, 14:10:

  RE: Intrabar- Schalter

Hallo Tina,

wie Kalus ja schon ausführte, wird bei jedem Tick das EL-Skript abgearbeitet, sodass die Variablen auch bei jedem Tick berechnet werden, wenn die entsprechende Umgebungsvariable (Schalter) gesetzt ist.

Das Skript, welches abgearbeitet wird, nimmt den Tickwert als Close-Kurs. sollte während der Abarbeitung ein weiterer Tick eingehen, so sollte dieser in einer Warteschlange stehen, bis der Durchgang des EL-Codes mit diesem Tick erfolgt (könnte vielleicht auch etwas mit dem Refresh zu tun haben, wenn die Tickanzahl zu groß wird).

Es wäre also ein unötiger Umweg über eine DLL, da sich die Werte für einen Tick-Berechnungsdurchgang nicht ändern und somit z.B. ein average(close,9) am Anfang berechnet, genau den gleichen Wert liefert, wie ein Average(clos,9) am Ende des Durchgangs.

Gruß
Uwe


Geschrieben von _Klaus Eckhoff am 30.11.2001, 15:10:

  RE: Intrabar- Schalter

Hallo Tina,

also noch einmal: Der Unterschied ist Signal zu Indikator. Im Indikator kannst Du alles auch Tickweise machen (innerhalb eines Bars) in einem Signal nicht.

Selbst wenn Du eine Variable in einer DLL speichern würdest (z.B. durch einen Indikator gesteuert) würde ein Signal trotzdem innerhalb eines Bars nicht daruaf zugreifen bzw. reagieren.

Wenn Du auf Tickbasis eine Strategie abarbeiten möchtest dann muss auch der zugrundeliegende Chart ein Tickchart sein.

Deshalb noch mal die Frage: Was genau willst Du erreichen oder was soll die "Variable" bewirken? Schilder uns doch einfach mal Dein eigentliches Problem (losgelöst von irgendwelchen Variablen).

-Klaus


Geschrieben von _Tina am 30.11.2001, 16:10:

  RE: Intrabar- Schalter

also,

nehmen wir mal an, ich will die Aktion"xy" ausführen wenn irgendeine Linie die Nulllinie von unten nach oben kreuzt. Wenn nun die Linien kreuzen und sich bis zum Ende dieser Bar nichts mehr ändert, dann ist alles okay und es gibt kein Problem. Wenn das Kreuzen der Linien aber nicht bis zum End dieser Bar anhält, kann man nicht in der nächsten Bar prüfen, ob die Linien mal gekreuzt hatten.

Anderes Beispiel: Ich möchte, wie Steffen(s.u.), auf ein Ereignis durch "PlaySound" aufmerksam gemacht werden. Mit einem Indikator in der TS mit 5 Minuten Chart kann es passieren, daß die Bedingungen gleich zu Beginn der neuen Bar erfüllt werden und nun geht es 5 Minuten lang Tut,Tut,Tut,Tut,Tut,Tut,Tut,Tut,Tut......... Tut,Tut....
(nerv).
Wenn man nun wie geschildert den Schalter unabhängig von den Bars sondern abhängig vom Ereignis steuern könnte(z.B.über eine DLL) wäre nach dem ersten Tut Ruhe und man kann unabhängig vom weitern Verlauf in der nächsten Bar wieder abfragen war eine Kreuzung der Linien gewesen.
Das sind nur zwei Beispiele es gibt aber bestimmt noch viel mehr Anwendungsmöglichkeiten.
Problematik erkannt?

Gruß Tina


Geschrieben von _Klaus Eckhoff am 30.11.2001, 18:10:

  RE: Intrabar- Schalter

Tina, OK was Du brauchst sind globale Variable. Diese - da hast Du Recht - werden üblicherweise mit Hilfe einer DLL implementiert.

Ist allerdings nicht ganz so einfach damit zu arbeiten, da man sich um Synchronität und ähnliche Dinge selber kümmern (ausprogrammieren) muss.

Ich selbst verwende eine solche DLL von Heiko Schröder "HeikoS@trade4cast.de", Du kannst ihm ja mal eine Mail Schreiben und fragen, zu welchen Bedingungen er diese weitergibt.

Ansonsten gibt es weitere kommerzielle Anbieter solcher DLLs, eine Suche in diesem Forum sollte da eigentlich Quellen liefern.

Gruss

-Klaus


Geschrieben von _Tina am 30.11.2001, 18:10:

  RE: Intrabar- Schalter

Danke dir Klaus,

aber noch mal, ist es, mit der von dir genutzten DLL möglich, das von mir geschilderte Vorhaben (z.B.PlaySound nur einmal) umzusetzen bzw. wie aufwendig ist das?

Danke Tina


Geschrieben von _Klaus Eckhoff am 30.11.2001, 19:10:

  RE: Intrabar- Schalter

Tina,

ja, das ist relativ einfach möglich. Du speicherst Dir beim PlaySound die Uhrzeit in der DLL und fragst sie vor einem neuen PlaySound wieder ab. Wenn nicht mindestens x Minuten vergangen sind ignorierst Du den neuen PlaySound.

Gruss

-Klaus


Geschrieben von _Tina am 30.11.2001, 19:10:

  Vielen Dank für Deine Mühe und Geduld o.T.

.


Geschrieben von _Uwe am 30.11.2001, 20:10:

  RE: Intrabar- Schalter ... als An-/Ausschalter für Sound

Hallo Tina,

das geschilderte Problem sollte sich eigentlich auch mit folgenden Anweisungen lösen lassen:

vars: PlaySound(True), LastTime(time);

if time<>LastTime then
begin
PlaySound=true;
LastTime=time;
end;

if Bedingung=true then
begin
....
if PlaySound then
begin
...Sound(tut tut....)
PlaySound=false;
end;
....
end;


Ungeprüft, Nur als Idee, daher ohne Gewähr
Viel Erfolg
Uwe


Geschrieben von _Klaus Eckhoff am 30.11.2001, 23:10:

  RE: Intrabar- Schalter ... als An-/Ausschalter für Sound

Hallo Uwe,

ich fürchte das wird eben nicht funktionieren, da ja bei einem Indikator für jeden Tick innerhalb eines Bars alle Variablen auf den Anfangswert (vor 1. Tick des Bars) immer wieder zurück gesetzt werden.

Das ist ja genau Tinas Problem: Wenn am Anfang eines längeren Bars ein Ereignis (z.B. Kurs schneidet GD) stattgefunden hat, dann wird dieses bei jedem weiteren Tick immer wieder als "neues" Ereignis gewertet.

Da helfen wirklich nur globale Variablen oder aber ein "echter" Tickchart.

Gruss

-Klaus


Geschrieben von _Uwe am 01.12.2001, 00:10:

  RE: Intrabar- Schalter ... als An-/Ausschalter für Sound

Klaus: Wenn am Anfang eines längeren Bars ein Ereignis (z.B. Kurs schneidet GD) stattgefunden hat, dann wird dieses bei jedem weiteren Tick immer wieder als "neues" Ereignis gewertet.


Das ist schon richtig, Klaus, da ja die Abfrage läuft:

if close[1] < GD[1] AND close > GD then ...Kurs schneidet GD von unten nach oben....

und dies ist mit jedem Tick=close so, solange die zweite Bedingung erfüllt ist.

Wenn Du allerdings recht damit hast, dass die Variablenwerte bei jedem Rechengang auf Ausgangswerte zurückgesetzt werden, dann würde meine Vorschlag natürlich nicht so funktionieren, doch bin ich mir nicht sicher, ob nicht nur beim ERSTEN Durchlauf einerhalb einer Barperiode, die Werte durch die Werte des Vorbars "vorbesetzt" werden.

Kommt auf einen Versuch an, wenn er noch nicht mit negativen Ergebnis durchgeführt wurde. Der muß allerdings wohl dann doch bis Montag warten, da ohne Dateneingänge das Verhalten nun leider nicht getestet werden kann.

Schönes Wochenende
Uwe


Geschrieben von _Klaus Eckhoff am 01.12.2001, 09:10:

  RE: Intrabar- Schalter ... als An-/Ausschalter für Sound

Hallo Uwe,

Hier der entsprechende Passus aus dem ELA-Reference Manual:

---
Also, when you’re receiving data on a real-time/delayed basis, and have the Update every tick option enabled for an analysis technique (or the Generate orders for next bar option for trading strategies), EasyLanguage evaluates the analysis technique or trading strategy as well as any series functions that are referenced by the analysis technique or trading strategy, for each new tick. To keep accumulated values accurate, each time a new tick is received, all variables, arrays and function values are “pushed-back” to their values from the previous bar, and the calculation based on the most recent tick is performed. This ensures that the trading signals, analysis technique, and functions perform their calculations as though each tick were the last tick of the bar.
---

Das ist genau das, was auch ich in der Vergangenheit beobachtet habe.

Gruss

-Klaus


Geschrieben von _Uwe am 01.12.2001, 17:10:

  RE: Intrabar- Schalter ... als An-/Ausschalter für Sound

Danke für Deine Mühe, Klaus!

Das liest sich ja nicht so, als wenn sich da mit meinem Vorschlag etwas wirkungsvolles ergibt (probieren werd ich es denn wohl doch).

Da ich mir allerdings auch wenig Erfolgschancen einräume, habe ich einen Schalter-DLL ausgearbeitet, der allerdings bei Umsetzung von Heikos Angebot wohl nicht mehr benötigt wird (siehe Beitrag unter Heikos Beitrag, der zwischenzeitlich veröffentlicht wurde).
Andernfalls, also wenn doch kurzfristig vedarf daran besteht, kann die DLL auch zum Abruf veröffentlicht werden.

Gruß
Uwe


Geschrieben von _Tina am 01.12.2001, 20:10:

  RE: Intrabar- Schalter ... als An-/Ausschalter für Sound

Hallo Uwe,

würde mich auch für deine Variante interessieren. Kannst du mir nähere Infos geben?
Wo kann man Heiko`s veröffendlichten Beitrag finden?

Danke, Tina


Geschrieben von _Tina am 01.12.2001, 20:10:

  Hat sich erledigt- hatte deinen Beitrag oben übersehen

.


Geschrieben von _Uwe am 01.12.2001, 20:10:

  Email-Adressenfehler?

Nachricht kam mit folgender Meldung zurück.



This message was created automatically by mail delivery software (Exim).

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

tina251@freenet.de
SMTP error from remote mailer after RCPT TO::
host mx.freenet.de [194.97.50.136]: 550 Unknown local part tina251 in



tina: Hat sich erledigt- hatte deinen Beitrag oben übersehen

Hat sich Deine Anfrage zur "Kurzfassung"-SWITCH-DLL mit Heikos Angebot insgesamt erledigt?

Gruß
Uwe





Geschrieben von _Tina am 02.12.2001, 11:10:

  sorry-jetzt ist es richtig

Hallo,

nein ich werde auf jeden Fall beide Varianten testen um die für meine Anwendung günstigste Möglichkeit herauszufinden.

Schönen 1. Advent

Tina


Geschrieben von _Klaus Eckhoff am 03.12.2001, 11:10:

  RE: Intrabar- Schalter

Hallo Tina,

habe von Heiko die Erlaubnis erhalten, Dir die verwendete OUGD.DLL zu schicken.

Damit sieht eine mögliche Variante der Lösung (unter Verwendung der Barnummer) so aus:

{ --- }
if {Bedingung fuer Playsound erfüllt} then
begin
if GetGlobal2(1, 1) < CurrentBar then
begin
Var: x(0);
x = SetGlobal2(1, 1, CurrentBar);
Playsound(...)
end;
end;
{ --- }

Andere Lösungen (z.B. mit Uhrzeit wie schon geschrieben) sind möglich und sinnvoll, denke, Du wirst damit zurecht kommen...

Gruss

-Klaus

Powered by: Burning Board 1.1.1 © 2001 by WoltLab