select
Mitglied seit 10 Jahre 9 Monate

Tradestation: Fragen und Antworten

Ich eröffne mal einen Sammelthread für die TS:-) Hier gleich eine Frage an die Spezialisten:

Möchte in dem Indicator (zeichnet im Monat an einem bestimmten Tag eine vertikale Linie ein ) eine weitere Linie einzeichen lassen.

***********
Variable: wert1(0); wert2(0);

if wert1(date) = true then wert1=1
else wert=0;

wert2 = {5 Bar zurück von wert1 soll eine vertikale Linie geplotet werden} ?

Plot1(wert1, "wert1",blue);
Plot2(wert2, "wert2",red);
************

Danke!

Gruß Thomas

ladowa

@ select [#20]

Moin Thomas,

ok, ich hatte Dich mißverstanden, und meine Vorschläge lösen nicht Dein Problem. Du willst offenbar den überlangen String abkürzen, oder? Vielleicht sollte ich mich besser weiterhin nicht zu EL-spezifischen Fragen äußern, :-) aber um das hier halbwegs ordentlich abzuschließen:

a) Du kannst den String einmal zusammenbauen und dann in einer Variable wie z. B. AusgabeString speichern. Diesen AusgabeString übergibst Du dann FileAppend() und Print(). Das halbiert wenigstens den Schreibaufwand und ist auch leichter zu warten.

b) Evtl. kannst Du für das Generieren des Strings auch eine Funktion schreiben, die Dir den String jeweils auf Abruf zusammenbaut, indem Du ihr lediglich die erforderlichen Parameter übergibst.

c) Die Verwendung von einem "if... then begin ... end;" hat den Vorteil, daß es den Code ebenfalls leichter wartbar macht, anstatt mit zwei "if ... then" zu arbeiten.

Wie gesagt, diese Verbesserungsvorschläge gehen wahrscheinlich nicht wirklich auf die Substanz Deiner Fragen ein, sondern sind nur kleines Programmier-Einmaleins. :-)

@ wuelle [#21]

Ich dachte, Select will die alte Datei gar nicht löschen, sondern beibehalten?

wuelle
Mitglied seit 10 Jahre 9 Monate

@ Livetour [#22]

Select schrieb: "Ich möchte also nur die Zeilen ab dem letzten Datumg in der txt. Datei aktuellisiert haben. Mit FileDelete komme ich dem Problem nicht nach."

Mein Vorschlag ist, daß man nicht an die vorhandene Datei anhängt, sondern die alte Datei durch eine aktualisierte Datei ersetzt. Das sollte laut Pruitt mit dem Print Bafehl funktionieren.

select
Mitglied seit 10 Jahre 9 Monate

@wuelle[#21]

"Wieso kann man das Problem nicht mit dem Print Befehl, statt FileAppend lösen?"

Habe ich schon versucht. Siehe Code.

if d <>d[1] then Print(Datei, numtostr(date[1],0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,2) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,2) + "; " +
numtostr(!!!,2) + "; " +
numtostr(- !!!,2) + "; " +

numtostr(!!!,0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,2) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,0) + "; " +
numtostr(!!!,2) + "; " +
numtostr(!!!,2) + "; " +
numtostr(- !!!,2) +"");

Leider wird dann die Datei/Auswertung nicht exportiert. Das sieht dann so im DebugFenster aus:

c:\temp\Output1.txt1060324; !!!!!!!!!!!!
c:\temp\Output1.txt1060327; !!!!!!!!!!!!
c:\temp\Output1.txt1060328; !!!!!!!!!!!!
c:\temp\Output1.txt1060329; !!!!!!!!!!!!
c:\temp\Output1.txt1060330; !!!!!!!!!!!!

Der Input für das exportieren wird vor das Datum geschrieben.

@Livetour [#22]

"Du willst offenbar den überlangen String abkürzen, oder?"

Genau:-)

zu a und b) Wäre eine Idee, aber nicht "sauber".

zuc) Gute Idee. Werde ich mir anschauen und dann hier als Ergebnis vorlegen.

ladowa

@ wuelle [#23]

Das ist ja wie einen Gesetzestext interpretieren: Select schrieb... Select schrieb nicht... :-)

Select schrieb, er wollte die Datei nicht immer mit den ganzen Ergebnissen aus der TS gefüllt haben, sondern nur mit den Zeilen, die chronologisch nach dem letzten Datum in der bereits vorhandenen Datei passen. Das klingt für mich so, daß er die bereits vorhandenen Daten in der Datei behalten möchte, und die aktuelle Auswertung der TS nur noch neue Datensätze anhängen soll.

Daß er überhaupt FileDelete() erwähnte, lag meines Erachtens an seinem Irrtum, mit dieser Funktion die überflüssigen Zeilen aus der Datei nachträglich wieder löschen zu können. In Wahrheit natürlich löscht man mit dieser Funktion lediglich eine Datei ganz oder gar nicht.

Meine Interpretation. :-)

@ select [#24]

Kann es sein, daß Du dem FileAppend()-Befehl den Namen der gewünschten Datei nur als Klartext, nicht in einer Variablen angeben darfst?

ladowa

@ Livetour [#25]

Korrektur: Kann es sein, daß Du dem Print()-Befehl...

select
Mitglied seit 10 Jahre 9 Monate

@Livetour [#25]

"Select schrieb, er wollte die Datei nicht immer mit den ganzen Ergebnissen aus der TS gefüllt haben,"

Natürlich gib es zwei Möglichkeiten. Alles löschen oder anhängen. Mir wäre es erstmal egal, welche Variante genommen wird. Eine sollte funktionieren:-) Bis jetzt klappt noch keine.

"Kann es sein, daß Du dem FileAppend()-Befehl den Namen der gewünschten Datei nur als Klartext, nicht in einer Variablen angeben darfst?"

Der Befehl wird nicht als Variable sondern über die Inputs festgesetzt.

inputs: Datei("c:\temp\Output1.txt");

Meinst Du das?

ladowa

@ wuelle [#23]

Ausgehend von Selects Posting [#27]: Sorry, wuelle, Du hattest ihn offenbar doch richtig verstanden. :-)

@ select [#27]

Ja, mit "Variablen" meinte ich auch "Inputs". :-)

select
Mitglied seit 10 Jahre 9 Monate

@Livetour[#28]

"Ja, mit "Variablen" meinte ich auch "Inputs". :-)"

Habe es wie im Handbuch beschrieben versucht. Leider kein Erfolg.

The following statement sends the same information to an ASCII file called Mydata.txt:

Print(File("c:\data\mydata.txt"),Date, Time, Close);

dansmo
Mitglied seit 10 Jahre 9 Monate

@ select [#29]

Verstehe ich dich richtig, dass du eigentlich nur einen Export machen willst in eine vorhandene txt, die Daten aber nur ab einem bestimmten Datum erfolgen soll?

Wieso setzte du nicht einfach vor dem ganzen Code ein

If Date > Startdatum then begin

...Code...

end;

Kann aber sein, dass ich völlig daneben bin. So richtig habe ich nicht geschnallt was du suchst.

Grüße,
dansmo

select
Mitglied seit 10 Jahre 9 Monate

@dansmo [#30]

"Verstehe ich dich richtig, dass du eigentlich nur einen Export machen willst in eine vorhandene txt,"

Ja und gleichzeitig soll das Ergbnis im Debug (PowerEditor) erscheinen.

"die Daten aber nur ab einem bestimmten Datum erfolgen soll?"

Fürs erste reicht es, wenn ich den Indicator im PowerEditor verifiziere und diese Ergbenisse dann komlpett in die txt. geschrieben werden.

In der txt. kann/soll dann der alte Datensatz gelöscht/überschrieben werden.

"If Date > Startdatum then begin"

Habe ich auch schon gemacht. Kein Erfolg.

"So richtig habe ich nicht geschnallt was du suchst."

Jetz besser?:-)

Danke!

Rückrufservice
Beschreiben Sie bitte Ihr Anliegen, damit wir uns auf den Rückruf vorbereiten können.
Ja, ich habe die Datenschutzerklärung zur Kenntnis genommen und willige ein, dass die von mir angegebenen Daten inklusive der Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen elektronisch erhoben und gespeichert werden. Meine Daten werden dabei nur streng zweckgebunden zur Bearbeitung meiner Anfrage genutzt und nicht ohne Einwilligung weitergegeben. Diese Einwilligung kann jederzeit mit Wirkung für die Zukunft widerrufen werden.

Jetzt registrieren

Jetzt registrieren und ZMP Live+ 14 Tage kostenlos testen!
  • Dauerhaft kostenfrei
  • Keine Zahlungsinformationen erforderlich