Buongiorno,
scusate non ho ben capito nell’ambito della programmazione dei trading system la differenza fra set stop loss e set stop ploss, cioè che si si intende per unità o punti? p.s. potete indirizzarmi a dei topic o dei video dove si spiega bene la scrittura di stop loss e trailing profit?
grazie mille
- SET STOP pLOSS richiede che vengono espressi dei pips (es. SET STOP PLOSS 20, per avere uno SL di 20 pips/punti)
SET STOP LOSS richiede che venga espressa una differenza di prezzo (es. SET STOP LOSS CLOSE-LOW)
- TRAILING PROFIT non esiste, c’è SET STOP [p]TRAILING, per il trailing stop, ma è preferibile non usare questa istruzione e sostituirla con uno dei molti codici disponibili sul forum.
La stessa differenza, tra indicare la p iniziale o no, vale anche per SET TARGET PROFIT.
grazie roberto per la tua pronta risposta
ottimo quindi si può utilizzare set stop loss anche con una varibile che noi creiamo. Approfitto della tua gentilezza per chiederti un ulteriore informazione:
se voglio fare un trading system che entra a mercato su una condizione daily ma poi utilizza un time frame a 5 minuti per l’entrata effettiva posso farlo senza problemi? cioé le istruzioni multi time frame funzionano bene ?
grazie mille ancora per il tuo supporto è stato davvero utilissimo
Si, certo che puoi, anzi… è proprio questo lo scopo del supporto MTF.
Come ti ho preannunciato l’unico inconveniente è dato dal fatto che quando farai il backtest avrai lo storico del 5 minuti, non del Daily!
Ah ottimo! tu che piattaforma utilizzi per passare ordini a mercato?
Non faccio trading manuale da alcuni anni, solo automatico.
scusami intendevo come broker?
Ti ho risposto all’altro tuo topic.
ciao roberto volevo chiederti una cosa: se io volessi mettere una condizione per cui se il mio sistema supera in guadagno l’8% e poi torna al 4% chiude tutto pensi che vada bene l’istruzione seguente? perche alcune volte vedo che non mi viene eseguita o meglio mi viene eseguita solo nella barra in cui contemporaneamente mi fa l’8 e poi torna al 4
grazie mille
IF POSITIONPERF(0)>0.08 THEN
SELL AT TRADEPRICE*1.05 STOP
ENDIF
Va bene, ma funziona per una sola candela. Se scende al 0.08 (tu verifichi solo se è maggiore) oppure al 0.079 alla candela successiva NON piazza l’ordine pendente.
Gli ordini pendenti si chiudono AUTOMATICAMENTE alla fine della candela successiva (non esiste un’istruzione per annullarli, sarebbe superflua), per cui vanno piazzati ancora finché servono.
Nel tuo caso devi usare una variablile, diciamo FLAG che metti a zero quando non sei a mercato e ad 1 appena 0.08 è stato superato, dopodiché piazzi l’ordine pendente solo se FLAG=1:
IF Not OnMarket THEN
Flag = 0
ENDIF
IF POSITIONPERF(0)>0.08 THEN
Flag = 1
ENDIF
IF Flag = 1 THEN
SELL AT TRADEPRICE*1.05 STOP
ENDIF
in questo modo anche se POSITIONPERF scende sotto 0.08 la variabile che indica che precedentemente era stato superato ha valore 1, quindi l’ordine pendente viene piazzato ad ogni candela successiva, fino all’uscita.
Grande Robertogozzi!
funziona. E adesso se volessi scaglionare i vari livelli secondo te devo stabilire un ordine all’interno del codice? ad esempio se la performance va a 8% e poi a 5% chiudi e poi a scalare un’altra condizione per cui se va a 5% e poi torna a 3% chiudi. Pensi che devo utilizzare una gerarchia fra le due? grazie ancora per la disponibilità!!!
IF Not OnMarket THEN
Flag = 0
ENDIF
IF POSITIONPERF(0)>0.08 THEN
Flag = 1
ENDIF
IF Flag = 1 THEN
SELL AT TRADEPRICE*1.05 STOP
endif
IF POSITIONPERF(0)>0.05 THEN
Flag=2
endif
IF Flag = 2 THEN
SELL AT TRADEPRICE*1.03 STOP
endif
Per favore usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri.
Ci sono alcune delle pricipali regole che sono BEN evidenziate in giallo qui sotto, ti prego di rileggerle attentamente.
Grazie 🙂
Va bene, ma devi cambiare la riga 10 in:
IF POSITIONPERF(0)>0.05 ANF Flag = 0 THEN
altrimenti quando scende da 0.08 diminuisce il prezzo d’uscita.
grazie Roberto scusami non avevo letto bene questa regola(Insert PRT code)! Perdonami per le mie domande ma non programmo da tanto. Perché hai usato però flag =0 e non ad esempio flag =2 creando una nuova variabile? Flag =0 non indica che siamo fuori dal mercato? Ho provato cmq a scrivere il codice in questo modo, sembra funzionare.
IF Not OnMarket THEN
Flag = 0
ENDIF
IF POSITIONPERF(0)>0.08 THEN
Flag = 1
ENDIF
IF Flag = 1 THEN
SELL AT TRADEPRICE*1.05 STOP
ENDIF
IF POSITIONPERF(0)>0.03 and POSITIONPERF(0)<0.07 then
flag=2
endif
IF Flag = 2 THEN
SELL AT TRADEPRICE*1.02 STOP
ENDIF
Grazie ancora
Esatto, alla riga 2 ho messo FLAG = 0 quando non siamo a mercato, altrimenti anche nelle operazioni successive resterebbe il valore precedente, 1 o 2.