Insider 3000 - Forums
Insider 3000 - Forums
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Problemi con "Insider 3000 versione 3"
 Problemi col linguaggio di programmazione
 Stop Loss
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Ale
Nuovo Utente

9 Posts

Posted - 12 April 2006 :  15:31:17  Show Profile  Reply with Quote
ciao e grazie per la risposta nell' altro topic.

ho capito che per impostare uno stop devo memorizzare il prezzo di ingresso nelle opzioni comuni con Dim ... e fin qui...
ho guardato i TS di esempio precaricati ma non riesco a capire come impostare uno stop fisso (puntuale), per esempio : chiudi la posizione se la perdita = 200pt ...

potresti, per farmi capire, scrivere il codice di questo sistema di esempio?

entro Long il lunedi in apertura, esco il mercoledi in chiusura o se la perdita supera 200pt.

grazie anticipatamente

SupportoTecnico
Forum Admin

1261 Posts

Posted - 12 April 2006 :  16:04:35  Show Profile  Reply with Quote

Il metodo è sempre lo stesso. Se vuoi portare fuori informazioni da un modulo specifico e rendere disponibile questa informazione a tutti gli altri moduli devi memorizzare l'informazione in una variabile globale dichiarata nel modulo [Opzioni comuni] e poi utilizzarla come credi negli altri moduli.

Veniamo al tuo esempio:

[Opzioni comuni]

Dim plBarraLong as Numeric = 0
Dim pdPrezzoIngressoLong as Numeric = 0


[Entra in Acquisto]

Function Main()
....
plBarraLong = CurrentBar
pdPrezzoIngressoLong = Open

Price Open

...
EndFunction


[Esci da posizione in acquisto]

Function Main()
Price Close
Return ((CurrentBar - plBarraLong) >= 2) OR (Close <(pdPrezzoIngressoLong - 200))
EndFunction


N.B. ho inserito anche la parola chiave "Price" per definire il prezzo di esecuzione dell'ingresso e uscita. Ciò che è importante è che "Price" deve sempre essere prima del "Return".

Go to Top of Page

Ale
Nuovo Utente

9 Posts

Posted - 13 April 2006 :  12:26:28  Show Profile  Reply with Quote
ho capito. il problema è però un pò più specifico, ho fatto un esempio incompleto.
se io stabilisco uno stop in denaro voglio che l' uscita (in perdita) dalla posizione avvenga al prezzo che, in base alla mia entrata, mi dia quella perdita...questo è ovvio.

l' unico modo (credo..) per farlo è usare il Price nel modulo di uscita dalla posizione definendolo come (PrezzoIngresso -/+ StopLoss).

Inquesto modo però, se io ho anche un' altra condizione per l' uscita (e c'è per forza perchè non può esserci solo quella di stoploss) il sistema calcolerà comunque per l' uscita il prezzo definito col Price, generando per definizione una perdita, anche se il prezzo di stoploss non è stato toccato nel periodo corrente.

sono sicuro che la soluzione sia semplice, ma la mia conoscenza del linguaggio è ancora molto superficiale.

grazie ancora

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 13 April 2006 :  13:03:24  Show Profile  Reply with Quote
Questa è la soluzione:


Function Main()
Dim bSignal as Boolean = False

if ((CurrentBar - plBarraLong) >= 2) Then
Price Close
bSignal = True
endif
If (bSignal = False) then
if (Close < (pdPrezzoIngressoLong - 200)) then
Price pdPrezzoIngressoLong - 200
bSignal = True
Endif
Endif

Return bSignal
EndFunction


Comunque a mio avviso non è teoricamente giusto prendere come prezzo di uscita pdPrezzoIngressoLong - 200, perchè di fatto nella condizione utilizzi il valore di chiusura per capire se devi uscire in stop loss o meno e quindi non puoi uscire ad un valore se quel valore l'hai già superato e forse di molto..

insomma.. se hai un close a 1000 e pdPrezzoIngressoLong - 200 è uguale a 1100 è ovvio che lo stop loss scatta quando il prezzo dell'azione è già a 1000 e pertanto dire al trading system di uscire a pdPrezzoIngressoLong - 200 significa sfalsare i risultati.

Il mio è un consiglio.. poi ovviamente vedi tu cosa vuoi fare!
Go to Top of Page

Ale
Nuovo Utente

9 Posts

Posted - 13 April 2006 :  14:36:12  Show Profile  Reply with Quote
hai perfettamente ragione, ma io ho mischiato un pò il ragionamento e dato per scontate alcune cose...

il sistema sopra era solo un esempio super semplice per capire come impostare lo stop loss dal punto di vista della sintassi, in realtà non lo uso! colpa mia che non ho spiegato esattamente cosa mi serve..

ti rispiego:

il concetto di base del sistema che sto testando (per l' ingresso in posizione)è la rottura di un livello di prezzo calcolato sommando all' apertura un certo valore (il risultato della formula "ristretta" che mi hai scritto nell' altro topic).il mio "Price" è proprio quel livello quindi per verificare che nel giorno X il segnale è scattato uso high e low, poi sono fatti miei se la chiusura fa rientrare il segnale, fa parte delle eventualità e lo stop loss c'è apposta. Nell' operatività reale infatti controllo il sistema durante la seduta, non a fine giornata.

E' nell' uscita dalla posizione che nasce il problema, mi spiego: il sistema esce (per esempio) alla prima apertura in profitto dopo essere stato in posizione per 2 giorni (e qui price = open) oppure se scatta lo stop fisso in denaro, e qui il price deve necessariamente essere il livello specifico che mi fa uscire con quella perdita prestabilita. Anche qui (nel test) uso high e low per verificare il segnale, perchè vuol dire che il prezzo è passato di lì e io lì dovevo incassare la perdita.
questo crea il conflitto di avere 2 price nello stesso modulo di uscita (..o sbaglio), come ovviare?

ciao egrazie

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 13 April 2006 :  16:09:55  Show Profile  Reply with Quote

Avere diversi "Price" nello stesso modulo a seconda delle diverse situazioni che si presentano non crea alcun conflitto. "Price" infatti serve proprio per definire il prezzo di esecuzione dell'ordine.

Il codice di esempio che ti ho scritto poco sopra è ottimo per quello che vuoi fare e cioè avere due prezzi di esecuzione differenti a seconda della condizione che genera l'uscita. Infatti, da come è scritto il codice solo uno dei due "Price" verrà eseguito.

Certo che come già detto durante il test del TS in caso di uscita per stop fisso in denaro i valori risulteranno essere un po' falsati.
Non c'è modo di ovviare alla situazione se non quello di avere una base dati più dettagliata, nel tuo caso intraday e non giornaliera.

Go to Top of Page

Ale
Nuovo Utente

9 Posts

Posted - 13 April 2006 :  16:34:41  Show Profile  Reply with Quote
sono confuso...
se posso usare due price perchè i risultati dovrebbero essere falsati in caso di stop fisso?

Go to Top of Page

SupportoTecnico
Forum Admin

1261 Posts

Posted - 13 April 2006 :  19:29:08  Show Profile  Reply with Quote
E' solo una questione operativa.

Se utilizzi il valore di "Close" per il confronto con "pdPrezzoIngressoLong - 200" potresti trovarti nella seguente situazione:

- Tu stai osservando il mercato e il prezzo scende sotto "pdPrezzoIngressoLong - 200". Giustamente tu esci in stop loss. Dopo poco però il prezzo risale e chiude sopra il valore di stop (quindi sopra "pdPrezzoIngressoLong - 200").

In questa situazione ti trovi ad avere che il tuo TS non è uscito invece tu nella realtà si. Da qui la possibilità di avere risultati molto diversi tra l'operatività reale e quella ottenuta nei test del TS.

Se invece del "Close" utilizzi il "Low" la questione è diversa. Sicuramente molto più vicina alla realtà.

Go to Top of Page

Ale
Nuovo Utente

9 Posts

Posted - 13 April 2006 :  19:42:58  Show Profile  Reply with Quote
ah...ok, allora siamo d' accordissimo. siccome l' ho scritto sopra che uso i valori high e low, non mi tornava più tutto il discorso.

grazie e alla prossima

Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Insider 3000 - Forums © Copyright 2003-2016 Tradersoft s.r.l. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07