select
Mitglied seit 11 Jahre 4 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
Geschrieben von select
am
Hallo Thomas,
in der Hilfe zum Plot Befehl findest Du folgenden Hinweis:
Remarks
When applying the analysis technique to a chart, you can displace the plot to the right or left. For example:
Plot1 [3] (Value1);
The above example calculates the plot value using the current bar but draws it on the chart 3 bars ago. Use a negative number to draw the value 3 bars ahead of the current bar. You cannot displace a plot in this way when applying the analysis technique to a grid.
Damit sollte Dein Wunsch also umetzbar sein.
Viele Grüße
Prowler
@Prowler
Prima! Manchmal ist die Lösung zu nah:-)
Danke!
Gruß Thomas
Mal wieder eine Frage.
Möchte immer den nächsten Verfall (momentan Okt06) in die "Zukunft" ploten. Wie muss ich das im Indicator codieren?
*********
Variable: wert(0);
if Verfallstag_Optionen(date) = true then wert=1
else wert=0;
Plot1(wert, "Verfall",darkgray);
*********
Danke!
Gruß Thomas
@ select [#254]
Plot1[-MaxBarsForward](Close,"Close");
gruß
@newstrader [#15]
Danke! Das nächste Verfallsdatum stimmt zwar, aber warum werden die Ergebnisse in der Vergangenheit nicht deckungsgleich abgebildet.
Der untere Indicator hat den alten Code. Auf der DB1 hier der neue Code:
*******
Variable: wert(0);
if Verfallstag_Optionen(date) = true then wert=1
else wert=0;
Plot1(wert, "Verfall",darkgray);
Plot2[-MaxBarsForward](wert,"wert",yellow);
*******
Bis dann!
Mit "Plot1[-MaxBarsForward](wert,"wert",yellow);" zeichnet er die vergangenen Verfallstage falsch ein. Mit -MaxBarsForward sollte aber über durch die Funkttion "Verfallstag_Optionen" der richtige Grundwert vorgegeben werden. Aber hier werden die Ergebnisse ab 12/06 auch falsch geplotet.
Hier mein Code für die Funktion:
*******
inputs: datum(numeric);
if dayofweek(datum) = 5 and dayofmonth(datum) >= 15 and dayofmonth(datum) <= 21
then Verfallstag_Optionen = true
else Verfallstag_Optionen = false;
*******
@ select [#7]
Ich verstehe nur Bahnhof. :-(
MaxBarsForward ist die maximale Anzahl von Bars die Du den Indikator in die Zukunft plotten kannst. Du mußt das durch die jeweils richtige Anzahl von Tagen ersetzen.
Im letzten Code, welchen Wert nimmt datum da an?
Er kann den nächsten Verfallstag erst dann als solchen durch Deine Formel erkennen, wenn der nächste Verfallstag von Heute ab weniger als MaxBarsForward entfernt liegt.
Also datum muß demnach heute + maxbarsforward sein in Deinem Code
gruß
wenn ich Du wäre, was ich nicht bin, würde ich mir den Aufwand sparen und eine neue Datei/Symbol/Wertpapier in Excel anlegen mit den Werten 0 und 1, 1 genau dann wenn ein verfallstag vorliegt. Das kannst Du dann bis ins Jahr Schnee vorkalkulieren.
im el code kannst Du dann mit if close of data2 = 1 then etc darauf zugreifen.
gruß
@newstrader [#8]
"Im letzten Code, welchen Wert nimmt datum da an? "
Der Wert soll sich auf die geschriebene Funktion in [#7] beziehen.
"Du mußt das durch die jeweils richtige Anzahl von Tagen ersetzen. "
Das ist klar. Nur gibt es hier keine feste Anzahl, denn die Verfallstage haben ja verschiedene Abstände. Ich hatte z.B. [-15] eingesetzt und trotzdem werden unterschiedliche Abstände geplotet.
Gruß Thomas
Also MaxBarsForward kann nicht funktionieren.
@ select [#10]
Warum gibst Du der Kiste nicht direkt KONKRETE DATEN (= Tagesdatum= zu fressen.
So eine Liste ist doch recht einfach zusammenzustellen = abzuschreiben aus Verfallskalendern.
Das kann er auch nur richtig plotten.
gruss hans
@he96 [#12]
Ja, der erste Code stimmt ja und zeigt mir die richtigen Tage an. Nur "will ich", das der "Frontverfallstag":-) im Chart erscheint.
Gruß Thomas
@select
Hast Du es mit dem hardcodierten Datum hinbekommen?
P.S.: Gibt es in der Zwischenzeit eine Möglichkeit (DLL?), die Beschränkung auf maximal 4 Plots aufzuheben?
Versteht mich nicht falsch! 1999 waren vier Linien im Chart schon ´ne ganz Menge! :-) Aber manchmal möchte man doch mehr bunte Linien sehen...
@wuelle [#14]
"Hast Du es mit dem hardcodierten Datum hinbekommen?"
Ja, aber ich möchte es doch ewas anders haben. Das hat natürlich seine Gründe:-)
"P.S.: Gibt es in der Zwischenzeit eine Möglichkeit (DLL?), die Beschränkung auf maximal 4 Plots aufzuheben? "
Ja, das geht. Nur wie?:-) Entweder man nutzt ein Array oder vielleicht über eine DLL. Oder doch anders. Müssen wir noch testen/suchen:-)
"Aber manchmal möchte man doch mehr bunte Linien sehen..."
Ist klar:-)
Bis dann!
@ wuelle [#14]
Die TradeStation 8.1 kann 99 Linien anzeigen, das sollte auch für die nächsten Jahre reichen :-)
Bei der 2000i werden immer nur 4 Linien gehen. Es gibt allerdings so einen Trick, mit gepunkteten Linien zu arbeiten and nur jeden 2. Bar einen Punkt zu setzen - damit kann man dann 8 Linien "darstellen". Die Darstellung ist allerdings recht gewöhnungsbedürftig und die Linien sind auch nur bei recht engem Bar-Spacing als solche zu erkennen....
Mit/über das Text_Trendline tool/code kann man Millionen Linien ziehen. Genau wie man jeden Text an jede Stelle damit schreiben und automatisch aktualisieren lassen kann.
Das ging schon in TS 4.0
gruss hans
Hallo!
Habe zwei Problemchen:
Meine statistischen Auswertungen kann ich ordnungsgemäß über ein FileAppend als txt. Datei speichern. Auch kann ich im gleichen Code die Ergebnisse über den Print im DebugFenster anzeigen lassen.
Nun meine zwei Fragen:
1.) Kann ich den Befehl "FileAppend" und "Print" in einer Kombination codieren? Bis jetzt habe ich beide Bedingungen in zwei Blöcke schreiben müssen. Hier die Zeilen:
if d <> d[1] then FileAppend(Datei, numtostr(date[1],0) + "; " +
if d <> d[1] then print(numtostr(date[1],0) + "; " +
2.) Was muss ich in den Code einfügen, damit meine txt. Datei nicht immer mit den ganzen Ergebnissen aus der TS aufgefüllt/angehangen wird? 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.
Vielen Dank!
Gruß Thomas
@ select [#18]
Hi Thomas, ich spreche zwar immer noch nicht EL, aber meinst Du evtl. sowas:
Zu 1:
if d <> d[1] then begin FileAppend ... ; Print ... ; end;Zu 2:
if date[1] > LetztesDatum then FileAppend ... ;Die Variable LetztesDatum muß allerdings vorher initialisiert sein. Evtl. kannst Du dieses Datum irgendwoher aus Deinem übrigen Code abgreifen, oder kannst es berechnen, wenn Du z. B. weißt, daß es immer das aktuelle Tagesdatum ist, o. ä.
Andernfalls mußt Du die Datei öffnen, den letzten Datumswert einlesen, voilà. Wie öffnet man eine Datei und liest den letzten Wert ein? Keene Ahnung, ob das überhaupt mit dem Standard-EL-Code geht. Im Zweifel funktioniert es über eine externe DLL.
Gibt es für EL keine fertigen DLLs mit solch nützlichen Funktionen?
@Livetour[#19]
Hallo:-)
zu1.) Bis jetzt habe ich es so geschrieben:
if d <> d[1] then FileAppend(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) + Newline);
if d <> d[1] then print(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) +"");
Mit Deinem Vorschlag habe ich es doch auch so geschrieben. Oder?
zu2.) Werde ich mal versuchen.
"Gibt es für EL keine fertigen DLLs mit solch nützlichen Funktionen?"
Konnte keine entdecken. In der TS muss man alles selber schreiben. Da wird nichts geschenkt:-)
Gruß Thomas
@ select [#18]
Wieso kann man das Problem nicht mit dem Print Befehl, statt FileAppend lösen?
Siehe dazu Pruitt & Hill “Building Winning Trading Systems with TradeStation” S. 166:
The Print Statement can be used to print out to a text file. The probability
table that we created could be printed to a file instead of the Print Log. To
this, you would simply insert the name of the file into the existing Print
Statements:
Before: Print(" Close "," Zone1 Zone2 Zone3 Zone4");
After: Print("c:\MyFile"," Close "," Zone1 Zone2 Zone3 Zone4");
This Print Statement will print to MyFile on the C: drive. Each time you apply
your code with this Print Statement to a chart, MyFile will be deleted and
recreated and printed to.
TS aktualisiert dann nicht letzte Zeile durch anhängen, sondern löscht die alte Datei und ersetzt durch eine Neue incl. des letzten Handelstag.
@ 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?
@ 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.
@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.
@ 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?
@ Livetour [#25]
Korrektur: Kann es sein, daß Du dem Print()-Befehl...
@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?
@ 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". :-)
@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);
@ 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
@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!
@dansmo [#30]
"If Date > Startdatum then begin"
So?
if d[1] <> startdatum then Print("c:\temp\Output1.txt", numtostr(date[1],0) + "; " +
@ select [#32]
Vielleicht kannst du damit was anfangen:
******************
Input: DIR("C:\Temp\"), oval(o), hval(h), Lval(l),cval(c);
Vars: SName("");
SName = GetSymbolName;
If currentbar = 1 then filedelete(DIR+ SName+".csv");
If currentbar >= 1 then FileAppend(DIR+ SName+".csv",
NumToStr(date,0) +","+ NumToStr(oval,4) + "," + NumToStr(hval,4)
+ "," +
NumToStr(lval,4) + "," + NumToStr(cval,4) + newline );
****************
Hier wird dann der komplette datensatz durchgegangen. Willst du das aber
nur ab einem bestimmten Datum, dann musste du eben
currentbar >= DATUM schreiben.
Hilft das weiter?
@ select [#29]
Print(File("c:\data\mydata.txt"),Date, Time, Close);
Merkwürdig, daß das nicht funktioniert. Oder hast Du auf c:\ gar kein Verzeichnis namens "data", und deshalb schlägt die Funktion fehl?
In wuelles Beispiel [#21] wird übrigens der Dateiname ohne das File() verwendet, sondern nur der Name selbst.
@ dansmo [#30]
If Date > Startdatum then begin
Das hatte ich doch schon in [#19] vorgeschlagen... :-)
Ansonsten sollte dansmos Code eigentlich das richtige für Selects Zweck sein.
Habe die Antwort nicht vergessen:-)
Mit folgender Zeile funktioniert es. Die "alte" txt. wird sauber gelöscht und neu eingefüg.
if currentbar = 1 then begin
startdatum = d;
filedelete(datei);
end;
Danke an alle für die Ausdauer.
Gruß Thomas
@ select [#35]
Du hast wohl heimlich gegoogelt? Gib´s zu! :-)
Write TS data to a file:
http://www.traders2traders.com/code&overviews/write_to_file.htm
Schau Dir mal den Link bzgl. des Datumformats ab 2000 an.
Eine Frage bitte:
Ich möchte in der TS aus Data 1, 2 und 3 eine statistische Auswertung erstellen. Zwischen den 3 findet eine Art Allocation statt. Also alle sind direkt miteinander verbunden.
Problem: Ein Signal kann ich nicht programmieren, da nur auf Data 1 Signale generiert werden können. Oder über eine DLL gehen?
Wäre also ein Indicator eine Möglichkeit und dann die Auswertungen nach Excel exportieren. Oder?
Danke für ein paar Anregungen.
Gruß Thomas
@ select [#37]
Verstehe Dein Anliegen nicht ganz. Kannst Du da ein paar mehr Worte verlieren.
Was willst du mit den Datenserien 1,2 und 3 machen?
Grüße,
dansmo
@ dansmo [#38]
Hallo,
ich versuche es über einen anderen Weg:-)
Ich habe für das einzelne Underlying eine eigene statistische Auswertung (Kennzahlen usw.). Diese würde ich gern verbinden und als einheitliche Auswertung darstellen wollen.
Beispiel:
Data 1 = generiert Kauf - und Verkaufsignale
Data 2 = generiert Kauf - und Verkaufsignale
Data 3 = generiert keine Kauf - und Verkaufsignale (Art Festgeldkonto)
Alle drei "Quellen" werden über die Inputs mit den jeweiligen Gewichtungen taxiert (Meine Idee/Ziele). Nun möchte ich diese "Verbinden" und als eine Art Portfoliotest mit den Ergebnissen darstellen. Dabei kann Data 1 und 2 auf "Null fallen". Wenn Data 1 und/oder Data 2 Signale generieren, wird "Kapital" aus Data 3 zugeführt.
Die Kennzahlen werden im Debug dargestellt/gesammelt und danach im Excel weiterverarbeitet.
Besser?
Gruß Thomas
@ select [#39]
Thomas, das hört sich doch sehr nach Excel an - ich würds dort versuchen.
gruss hans
@ select [#39]
Ja, solche Dinge würde ich auch in Excel machen.
Grüße
@he96 & dansmo
Danke für die Gedanken. Excel ist mir nicht soooooooo recht, aber wenn es nicht anders geht. Naja. Angeblich soll es aber über eine DLL gehen. Ich werde die Ergebnisse bekannt geben.
Bis dann!
@ select [#42]
""Angeblich soll es aber über eine DLL gehen""
Es wird so ungefähr ALLE über ein DLL gehen - aber davon hast Du doch sicher noch weniger Ahnung als von Excel und da kann man wenigstens alles übsichtlich und schnell ändern und anpassen.
gruss hans
@ he96 [#43]
Da hast Du schon recht. Das DLL würde mir jemand schreiben. In Excel besteht das Problem, das bestimmte statistische Auswertungen nicht in Excel übertragbar sind. Für bestimmte Leute natürlich schon........
Auf deutsch: Ich bin froh das diese Sachen in EL laufen. Was soll man denn noch alles lernen. EL ist schon ausreichend:-)
@ he96 [#43]
Ich möchte schon gern von den Projekten so viel wie möglich in der TS belassen. Zumindest jetzt noch:-)
ShowMe kann nicht in der Stärke im Chart angepasst werden!
Hier eine mögliche Lösung:
Unter “View -> Chart Option -> General“ reinklicken. Dort gibt es einen Punkt „Auto space bars when chart resizes“. Dieser muss aktiviert sein und der Punkt „Auto size bar witdh when bar spacing changes“ muss deaktiviert sein.
Dann kann man die Stärke des ShowMe regulieren.
Gibt mal wieder eine Frage:
Habe einen Code/Indicator geschrieben und der funktioniert so weit
Hier die Auswertung für den FDAX H7
1070116; 6; 16; 11; 27;
1070117; 9; 15; 12; 46;
1070118; 6; 26; 16; 68;
1070119; 5; 16; 10; 65;
1070122; 6; 15; 11; 57;
1070123; 6; 61; 33; 28;
1070124; 7; 36; 22; 20;
1070125; 9; 38; 23; 27;
1070126; 8; 31; 19; 62;
1070129; 4; 18; 11; 36;
1070130; 8; 64; 36; 34;
1070131; 10; 25; 18; 29;
1070201; 3; 11; 7; 27;
Nun will ich den gleichen Indicator auf den Bund H7 legen und da kommen keine Auswertungen:
1070116; 0; 0; 0; 0;
1070117; 0; 0; 0; 0;
1070118; 0; 0; 0; 0;
1070119; 0; 0; 0; 0;
1070122; 0; 0; 0; 0;
1070123; 0; 0; 0; 0;
1070124; 0; 0; 0; 0;
1070125; 0; 0; 0; 0;
1070126; 0; 0; 0; 0;
1070129; 0; 0; 0; 0;
1070130; 0; 0; 0; 0;
1070131; 0; 0; 0; 0;
1070201; 0; 0; 0; 0;
In meinem statistischen Indicator werden die Ergebnisse (auch für den Bund) über den Plot1-4 richtig angezeigt.
Am Code kann es nicht liegen, denn bei FDAX klappt alles. Gibt es eine Idee?
Danke!
@ select [#47]
Habe den Fehler gefunden:
" numtostr(xxx,2) + "; " + "
Hatte keine zwei Stellen nach dem Komma eingestellt. Mache jetzt mal wieder eine Pause:-)
Wer kann helfen?
Erzeuge ein Ergebnis (HH&LL) in der Zeit von 0800-1100. Dieses Ergebnis möchte ich aber erst von 1400 - 2200 ploten (blaue Linien).
Welchen Befehl muss ich verwenden, damit der Plot von 1300 -2200 gezeichnet wird? Plotendtime ist klar.
********
inputs: CalcStartTime(0800),
CalcEndTime(1100),
{AnfangPlot(1400)??????}
PlotEndTime(2200);
var: HH(0), LL(0), Count(0);
if date <> date[1] then begin
HH = High;
LL = Low;
Count = 1;
end;
If Time > CalcStartTime and Time <= CalcEndTime then Begin
Count = Count + 1;
HH = Highest(High, Count);
LL = Lowest(Low, Count);
end;
If Time >= CalcStartTime and Time <= PlotEndTime then Begin
Plot1(HH, "OR HH",green);
Plot2(LL, "OR LL",red);
end;
***************
Danke!
@ select [#49]
""
If Time >= CalcStartTime and Time <= PlotEndTime then Begin
Plot1(HH, "OR HH",green);
Plot2(LL, "OR LL",red);
end;
""
Das kann ja nicht funzen - warum sagst Du der Maschine denn er soll da auch plotten wenn er rechnet ?
Was macht er denn hiermit:
If Time >= 1400 and Time <= 2200 then Begin
Plot1(HH, "OR HH",green);
Plot2(LL, "OR LL",red);
end;
gruss hans
@ he96 [#50]
Ich Depp. Hatte die Lösung selbst oben angedeutet:-)
Daaaaaaannnnnkkkkeeeee:-)
***********
inputs: CalcStartTime(0800),
CalcEndTime(1100),
Plotbeginn(1400),
PlotEndTime(2200);
var: HH(0), LL(0), Count(0);
if date <> date[1] then begin
HH = High;
LL = Low;
Count = 1;
end;
If Time > CalcStartTime and Time <= CalcEndTime then Begin
Count = Count + 1;
HH = Highest(High, Count);
LL = Lowest(Low, Count);
end;
If Time >= Plotbeginn and Time <= PlotEndTime then Begin
Plot1(HH, "OR HH",green);
Plot2(LL, "OR LL",red);
end;
**************