Buonasera,
sto provando a scrivere un codice, sono alle prime armi..
Guardando l’immagine allegata, vorrei che il sistema vendesse al prezzo della barra successiva (cerchio rosso) ma, avendo impostato un SET STOP pTRAILING 1 (valido per le altri condizioni/casistiche previste), mi sembra di intuire che l’algoritmo non vende.
Come posso fare ad ottenere l’obbiettivo desiderato?
Qua sotto in corsivo riporto il codice che avevo scritto ma non funziona.
// Definition of code parameters
MyBollingerUp = BollingerUp [25] (Close)
// Condizione 2 per uscire da posizioni long: se un valore va oltre BOLLINGER UP
IF LONGONMARKET AND Low > MyBollingerUp THEN
SELL AT MARKET
ENDIF
// Stop e target: Inserisci qui i tuoi stop di protezione e profit target
SET STOP pTRAILING 1
SET TARGET pPROFIT 10
Altra domanda, è possibile fare il debug del codice scritto?
Grazie anticipatamente a tutti per il Vs prezioso contributo
Non vende perché SELL non serve a vendere, ma a chiudere un precedente BUY (quindi chiude un entrata Long)
Per vendere devi usare SELLSHORT, che dovrai chiudere con EXITSHORT
Perché alla riga 8 hai messo IF LONGONMARKET? (Presuppone che tu sia già entrato Long, ma non hai messo nessuna istruzione BUY !)
Sempre alla 8, se vuoi entrare quando LOW è inferiore, perché hai messo l’operatore “>” (maggiore) ?
Non vende perché SELL non serve a vendere, ma a chiudere un precedente BUY (quindi chiude un entrata Long) Per vendere devi usare SELLSHORT, che dovrai chiudere con EXITSHORT Perché alla riga 8 hai messo IF LONGONMARKET? (Presuppone che tu sia già entrato Long, ma non hai messo nessuna istruzione BUY !)
Nella parte di codice precedente che non avevo scritto c’è BUY:
IF NOT LONGONMARKET AND c1 THEN
BUY 1000 SHARES AT MARKET
ENDIF
Perché alla riga 8 hai messo IF LONGONMARKET? (Presuppone che tu sia già entrato Long, ma non hai messo nessuna istruzione BUY !) Sempre alla 8, se vuoi entrare quando LOW è inferiore, perché hai messo l’operatore “>” (maggiore) ?
Ho messo LONGONMARKET perchè nella precedente parte di codice sono entrato long.
Ho messo LOW perchè pensavo così di indicare la seguente istruzione:
se il low della shadow dell’ultima barra (nello screenshot la barra verde) è superiore alla linea di bollinger superiore, allora vendi al prezzo di mercato.
Dome mi sono perso?
Spero di essermi riuscito a spiegare, grazie mille!
Se per VENDERE intendi, quindi, chiudere un’operazione Long il codice va bene.
Verifica che quel LOW della candela verde sia realmente SOPRA alla banda bollinger, basta che tenga il mouse fermo su quella barra e ti appariranno i valori della candela e degli indicatori, così capirai se è davvero sopra oppure no.
Si per vendere, intendevo uscire da una posizione LONG (si intuisce che sono un novellino ahah..).
Forse ho capito perchè non funziona, in effetti nel grafico con frame a 1 minuto (vedi allegato), la barra è sopra alla linea di Bollinger ma, se cambio frame tipo a 5 minuti, questo non accade.
Può essere questo il motivo? Come comunico al sw di utilizzare il frame a un minuto?
Grazie ancora per il prezioso contributo.
Basta che tu esegua la strategia dal TF a 1 minuto.
Le strategie, come gli indicatori, operano sempre sul TF in uso in quel momento.
Ok, stavo già operando in quel modo, allora non mi spiego perchè non funziona 🙂
Può essere per stop e target indicati? Mi sa che mi sono perso da qualche parte.. boh
// Condizione 2 per uscire da posizioni long: se un valore va oltre BOLLINGER UP
IF LONGONMARKET AND Low > MyBollingerUp THEN
SELL AT MARKET
ENDIF
// Stop e target: Inserisci qui i tuoi stop di protezione e profit target
SET STOP pTRAILING 1
SET TARGET pPROFIT 10
Può essere dovuto
Il fatto che apra o non apra posizioni non dipende dagli stop.
Certo, il target è piuttosto ravvicinato, siamo al limite con il minimo di distanza richiesta dal broker (devi verificare sul loro sito qunt’è la distanza minima per gli ordini pendenti e a mercato).
SET STOP pTRAILING è anch’esso molto stretto. In ogni caso ti consiglio di non usare questo comando per il trailing stop, ma di sostituirlo con codice apposito, il più semplice, chiaro ed usato è quello di Nicolas (le righe 17-56 sono già pronte per essere aggiunte alla fine della tua strategia, devi solo cambiare i due valori iniziali secondo le tue necessità): https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/