Help Easy Language

Dog_Foot

Nuovo Utente
Registrato
21/8/01
Messaggi
8
Punti reazioni
0
Uso da poco Tradstation e vorrei costruire un TS che compri
quando appare un certo pattern di prezzo e venda se il mercato
scende sotto un certo livello . Per l' acquisto non ci sono problemi
ma non riesco a far uscire il TS quando il prezzo scende sotto
un certo minimo . per maggiorev chiarezza il TS sarebbe il seguente :

variable: prezzo(0), uscita(0),Uscitapos(0);
prezzo=high;{ se supera questo prezzo entro in buy }
uscita=low;{ se il mercato scende oltre questo prezzo esco }
uscitapos= prezzo + (prezzo/100*7); { esco se raggiungo un 7% di guadagno }


If close>open AND close[1]<close[2] AND close[2]<close[3] AND close[3]<close[4] Then

Buy("mio buy") at prezzo stop;

exitlong from entry ("mio buy") at uscita stop;

exitlong from entry ("mio buy") at uscitapos limit;



Il TS entra bene al superamento del prezzo stabilito ma non
esce se scende sotto al minimo stabilito .
Qualcuno puo' darmi una mano ??
Grazie mille a Tutti :)
 
Credo che l'errore sia nel fatto che non crei delle condizioni.
Mi spiego meglio, in teoria il codice che hai scritto più che non
uscire probabilmente esce sempre. Infatti se prendiamo un intraday
il primo tick della barra che si forma è comtemporaneamente open,
close,high e low. Per cui il sistema esce per forza.
Anche il targer USCITAPOS non può intervenire poichè tu aggiorni
prima il prezzo, di conseguenza si aggiorna un target che cresce
in funzione del prezzo high e quindi divenda irragiungibile.
Deduco che l'esempio che hai messo non è quello reale e quindi
diventa difficile darti una mano.

Comunque per il targer ti consiglio di scrivere:

uscitapos = entryprice(0) + (entryprice(0)/100*7);
if marketposition(0) = 1 then
exitlong from entry ("mio buy") at uscitapos limit;

in questo modo esci quando hai raggiunto un 7% dal prezzo di
entrata.

Per l'uscita stop il codice è corretto fermo restando l'errore
dell'assegnazione di uscita al livello low che è poco "definito",
poichè esso è indefinibile. In un intraday se fa due tick sullo
stesso livello all'apertura di una barra ti scatta lo stop.
Potresti usare ad esempio low[1] che almeno è un livello ben preciso
e conosciuto.
 
Grazie mille della risposta Vanni .
Allora non avevo precisato che uso questo TS con dati
daily e non intraday . debbo dire che anche l' uscita
che mi hai suggerito ( uscitapos )purtroppo non funziona bene
perche' ( come la mia ) esce si ma non al valore del 10%
superiore all' entrata. Allego una immagine di cosa
succede cosi' magari Ti rendi conto meglio .
Come vedi il TS non esce ne quando il prezzo scende sotto il minimo del pattern ne quando raggiunge il 10% di guadagno
ma ad un valore che non capisco.
Grazie anticipatamente del Tuo aiuto. :)
 

Allegati

  • mio-ts.jpg
    mio-ts.jpg
    55,6 KB · Visite: 172
Scritto da Dog_Foot
Grazie mille della risposta Vanni .
Allora non avevo precisato che uso questo TS con dati
daily e non intraday . debbo dire che anche l' uscita
che mi hai suggerito ( uscitapos )purtroppo non funziona bene
perche' ( come la mia ) esce si ma non al valore del 10%
superiore all' entrata. Allego una immagine di cosa
succede cosi' magari Ti rendi conto meglio .
Come vedi il TS non esce ne quando il prezzo scende sotto il minimo del pattern ne quando raggiunge il 10% di guadagno
ma ad un valore che non capisco.
Grazie anticipatamente del Tuo aiuto. :)

Succede perchè stai resettando (cambiando) i prezzi di uscita in stop e profit ad ogni barra, quello che ti serve e di inserirli nella condizione di entrata e di non cambiarli finchè la posizione non è chiusa:

Vars:Mp(0),Uscita(999999),UscitaStop(0),entrata(999999);

Mp=MarketPosition;

If <tue condizioni di entrata> then begin
Entrata=H; {Salvo i prezzi che mi servono}
Uscita=H*(1.007);
UscitaStop=L;
end;
If MP=0 then Buy at entrata stop; {Segnale di acquisto}
If MP=1 then begin {Se sono long attivo i segnali di uscita}
ExitLong at Uscita limit;
ExitLong at UscitaStop stop;
end else begin {altrimenti li resetto}
Uscita=999999;
UscitaStop=0;
Entrata=999999;
end;

Guarda se ti funziona che l'ho scritto senza testarlo.
Ciao
 
Grazie mille Mindgame per l'aiuto.
il tuo sistema funzionava quasi perfettamente , l' ho solo
dovuto adattare cosi' :

Vars:Mp(0),Uscita(999999),UscitaStop(0),
entrata(999999),curs(0);

If close>open AND close[1]<close[2] AND close[2]<close[3] AND close[3]<close[4] and marketposition=0 then begin

Entrata=H; {Salvo i prezzi che mi servono}
Uscita=H*(1.10);
UscitaStop=L;
If marketposition=0 then Buy next bar at entrata stop; {Segnale di acquisto}
end;

If Marketposition=1 then begin {Se sono long attivo i segnali di uscita}
ExitLong at Uscita limit;
ExitLong at UscitaStop stop;
end;

Ho dovuto togliere il resettaggio delle variabili altrimenti non
funzionava bene , non so' perche'.

ti volevo chiedere un' altra cosa :
c'e' un sistema per vedere il valore delle variabili
ad ogni barra ??
Cioe' vorrei vedere come cambia il valore delle variabili del
TS ad ogni barra , e' possibile ??
Grazie mille dell' aiuto :)
 
:'( shob!! Nessun esperto di easy language sa dirmi come
fare per riuscire a vedere come cambia il valore delle variabili del
TS ad ogni barra , cioe' che valore ha la variabile "uscitapos" ,
per esempio , il giorno 1 poi il giorno 2 , e via via cosi' ???
Grazie mille dell' aiuto.
 
Indietro