select
Member for 10 years 9 months

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
Member for 10 years 9 months

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
Member for 10 years 9 months

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
Member for 10 years 10 months

@ select [#63]

einfach

lTrigger = HH;
sTrigger = LL;

vor

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

einfügen!

select
Member for 10 years 9 months

@ 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
Member for 10 years 9 months

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
Member for 10 years 9 months

Es muss heißen:

if C crosses over HiPivotA and counter=0 then begin

ftrader
Member for 10 years 10 months

@ 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
Member for 10 years 9 months

@ 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
Member for 10 years 9 months

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
Member for 10 years 9 months

@ 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.
Yes, I have read the Privacy Policy note and I consent that the data provided by me, including the contact data, for the processing of the inquiry and in case of questions are electronically collected and stored. My data will only be used strictly for my request and will not be passed without my consent. This consent can be revoked any time with effect for the future.'
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Register now

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