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

select
Mitglied seit 10 Jahre 9 Monate

Die Verzweiflung hat mich gefangen. Ich bin ein bescheidener Mensch, aber dadurch konnte ich die TS nicht überzeugen mir den Fehler/das Problem aufzuzeigen:-)

Habe das meiste aus dem Code entfernt, damit wir uns um die Entrys kümmern können.

Was will/versuche ich?

Nach einer Zeitspanne X (hier 0800 - 1100) sollen entweder Long oder - Shortentrys zugelassen werden.

So weit so gut. Ich kann leider den lEntryprice und sEntryprice nicht richtig "greifen".

In der Zeitspanne wurde das HH und LL definiert. Das passt.

Nun soll das HH ab 1100 als lTrigger und das LL ab 1100 als sTrigger fungieren.

Danke für Eure Hilfe.

Thomas

Indicator"Stat_Breakout":

********************

inputs:

BEGINCH(0800),ENDCH(1100),PlotEndTime(2200),
Endtime(2200),sBEGINCH(1100),
Datei("c:\temp\Output1.txt"),
Tag(0),gewinnziel(5);

var:
vortagesopen(0),
startdatum(0),
lEntryprice(0), ltrigger(0),lTargetPrice(0),
sEntryprice(0),strigger(0), sTargetPrice(0),
inposlong(0),successlong(0),HH(0),LL(0),
inposshort(0),successshort(0),count(0);

if currentbar = 1 then begin
startdatum = d;
filedelete(datei);
end;

if date <> date[1] then begin
HH = High;
LL = Low;
Count = 1;
end;

{hier wird die Handelspanne in Zeit definiert}
IF TIME > BEGINCH AND TIME < ENDCH THEN BEGIN
Count = Count + 1;
HH = Highest(High, Count);
LL = Lowest(Low, Count);

end;

if d <> startdatum then print(
numtostr(date[1],0) + "; " +
numtostr(inposlong,0) + "; " +
numtostr(successlong,0) + "; " +
numtostr(lEntryprice,2) + "; " +

numtostr(inposshort,0) + "; " +
numtostr(successshort,0) + "; " +
numtostr(sEntryprice ,2) + "; " + "");

vortagesopen = o;
lEntryprice = lTrigger ; {?????? hier muss doch der Entry besser definiert werden}
sEntryprice = sTrigger ; {???????kann ja nicht low < sTrigger schreiben}
lTargetPrice = lEntryprice + gewinnziel;
sTargetPrice = sEntryprice - gewinnziel;
inposlong = 0; inposshort = 0;
successlong = 0; successshort = 0;

{*****************************************************************}

{long Test Positionseinstieg}

if h > lEntryprice and t > sBEGINCH and t <= endtime and inposlong = 0 then begin
inposlong = 1;
end;

{*****************************************************************}

{short Test Positionseinstieg}

if l <= sEntryprice and t >= sBEGINCH and t <= endtime and inposshort = 0 then begin
inposshort = 1;
end;

IF TIME > sBEGINCH AND TIME < PlotEndTime THEN BEGIN
Plot1(lEntryprice ,"Plot1",green);
Plot2 (sEntryprice ,"Plot2",red);
end;

******************

select
Mitglied seit 10 Jahre 9 Monate

Er kann doch gar kein Entry fangen, denn die Handelsspanne geht von 0800 -1100. Ab 1100 darf gehandelt werden. Wie sollen wir nun das Entry greifen/schreiben/definieren? Keine Idee?

{long Test Positionseinstieg}

if h > lEntryprice and t > sBEGINCH and t <= endtime and inposlong = 0 then begin
inposlong = 1;
end;

sBEGINCH = soll kauf ab 1100 zulassen.

Daaaaaanke.

ftrader
Mitglied seit 10 Jahre 9 Monate

@ select [#63]

einfach

lTrigger = HH;
sTrigger = LL;

vor

vortagesopen = o;
lEntryprice = lTrigger;
sEntryprice = sTrigger;
lTargetPrice = lEntryprice + gewinnziel;
sTargetPrice = sEntryprice - gewinnziel;

einfügen!

select
Mitglied seit 10 Jahre 9 Monate

@ ftrader [#64]

Leider habe ich das schon verucht und keinen Erfolg gehabt. Deswegen ist die Variable vorgesehen gewesen.

Habe mal inposlong und inposshort geplotet. Ab der blauen Linie darf erst geplotet werden. Die TS kann den Entrypreis nicht zuordnen. Oder?

hektor
Mitglied seit 10 Jahre 9 Monate

Probiere mal, ob es so geht.

Inputs: MyRangeEndTime(1100);
Variables: NeuHi(0), NeuLo(0), HiPivotA(0), LoPivotA(0),counter(0);

If Date <> Date[1] then
begin

NeuHi = High;
NeuLo = Low;
HiPivotA = 9999999;
LoPivotA = 0;
counter=0;
end;

If High > NeuHi then NeuHi = High;
If Low < NeuLo then NeuLo = Low;

If Time <= MyRangeEndTime then
begin
HiPivotA = NeuHi;
LoPivotA = NeuLo ;
end;

If time >MyRangeEndTime then begin
if C>HiPivotA and counter=0 then begin
buy next bar;
counter=1;
end;
end;
if marketposition=1 then begin
sell next bar at entryprice+5 limit;
sell next bar at entryprice-5 stop;
end;
setexitonclose;

{Für Ind:
If time >MyRangeEndTime then begin
Plot1(HiPivotA );
Plot2(LoPivotA );end;}

hektor
Mitglied seit 10 Jahre 9 Monate

Es muss heißen:

if C crosses over HiPivotA and counter=0 then begin

ftrader
Mitglied seit 10 Jahre 9 Monate

@ select [#65]

Natürlich kann die TS den Entrypreis zuordnen!

Hier mit Deinem Code:

inputs:
BEGINCH(0800),ENDCH(1100),PlotEndTime(2200),
Endtime(2200),sBEGINCH(1100),
Datei("c:\temp\Output1.txt"),
Tag(0),gewinnziel(5);

var:
vortagesopen(0),
startdatum(0),
lEntryprice(0), ltrigger(0),lTargetPrice(0),
sEntryprice(0),strigger(0), sTargetPrice(0),
inposlong(0),successlong(0),HH(0),LL(0),
inposshort(0),successshort(0),count(0);

if currentbar = 1 then begin
startdatum = d;
filedelete(datei);
end;

if date > date[1] then begin
HH = High;
LL = Low;
Count = 0; {sonst wird Vortagsbar mit einbezogen!}
end;

{hier wird die Handelspanne in Zeit definiert}
IF TIME > BEGINCH AND TIME < ENDCH THEN BEGIN
Count = Count + 1;
HH = Highest(High, Count);
LL = Lowest(Low, Count);
end;

if t = sBEGINCH then begin
vortagesopen = o;
lEntryprice = HH;
sEntryprice = LL;
lTargetPrice = lEntryprice + gewinnziel;
sTargetPrice = sEntryprice - gewinnziel;
inposlong = 0; inposshort = 0;
successlong = 0; successshort = 0;
end;

{*****************************************************************}

{long Test Positionseinstieg}

if h > lEntryprice and t > sBEGINCH and t <= endtime and inposlong = 0 then begin
inposlong = 1;
end;

{*****************************************************************}

{short Test Positionseinstieg}

if l <= sEntryprice and t >= sBEGINCH and t <= endtime and inposshort = 0 then begin
inposshort = 1;
end;

IF TIME > sBEGINCH AND TIME < PlotEndTime THEN BEGIN
{Plot1(lEntryprice ,"Plot1",green);
Plot2(sEntryprice ,"Plot2",red);}
Plot1(inposlong ,"Plot1",green);
Plot2(inposshort ,"Plot2",red);
end;

select
Mitglied seit 10 Jahre 9 Monate

@ hektor [#66]

Vielen Dank. Sehr gute Lösungsansätze. Die "Spuren" hatte ich gestern auch in den Pruitt Codes versucht aufzudecken:-)

@ ftrader [#68]

Echt super:-) Habe meinen Fehler durch die Erklärung noch deutlicher erkennen können. Ich Idiot:-)

Welche Perlen hier auf TMW immer wieder "rumschwimmen". Puhhhhhhh.......:-)

select
Mitglied seit 10 Jahre 9 Monate

Mal wieder an die EL Profis.

Wenn man es geschafft hat, seine gewünschten Punkte im Chart anzusprechen und richtig plotten kann ist man echt ein rießen Stück weiter. Vorher kann man seine statistischen Auswertungen ruhen lassen. Es wird besser und hoffe, das ich bald einen Thread dazu eröffnen kann:-)

Nun eine Frage zu dem "Verfallscode". appzon hatte da eine feine Steilvorlage abgegeben.

Möchte zwei Punkte (Plot1 und Plot2) im Code als horizontale Linie plotten. Sollte man die Ergebnisse aus Plot 1 und 2 in Value1 und Value2 "packen"?

Die Tage werden richtig angezeigt (siehe Chart), aber ich komme nicht weiter. Irgendwie kann ich die gewünschten Punkte nicht richtig ansprechen, um sie dann als Linie plotten zu können.

Wie muss es richtig sein?

Indicator:

**********
inputs: color(red),vorVerfall(12),length(12), vcolor(darkgray);

Variables:j(0),wert(0), x(0),
opening(0),
opening_1(0);

opening = open[vorVerfall];

opening_1 = open;

opening_1 = value1;

if d <> d[1] then begin

opening = open[vorVerfall];
opening_1 = open;

end;

Arrays: Tag[100](0);

Tag[0] = 1060124;
Tag[1] = 1060221;
Tag[2] = 1060323;
Tag[3] = 1060423;
Tag[4] = 1060524;
Tag[5] = 1060622;
Tag[6] = 1060724;
Tag[7] = 1060824;
Tag[8] = 1060921;
Tag[9] = 1061024;
Tag[10] = 1061123;
Tag[11] = 1061220;
Tag[12] = 1070124;
Tag[13] = 1070221;
Tag[14] = 1070323;

for j=0 to 100 begin
wert = Tag[j] ;

if Date = Tag[j] then begin

If wert <> 0 then x = 1 else if wert = 0 then x = 0;

{if date = open[vorVerfall] and date < TL_GetEndDate(opening_1[length]) then begin}

Plot1[vorVerfall](opening,"opening",magenta);
Plot2(opening_1[length],"opening_1",magenta);
end;
end;

*****************

Danke!

Gruß Thomas

wuelle
Mitglied seit 10 Jahre 9 Monate

@ select [#70]

Wie soll denn das Ergebnis aussehen, so in etwa?

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