Buongiorno, in questo semplice TS devo inserire una terza condizione , che il range della barra odierna sia inferiore del range della barra di ieri per entrare in posizione.
inserisco una foto del TS
se qualcuno mi puo’ gentilmente aiutare,
grazie cristian
Posta il codice facendo il copia e incolla usando il tasto “insert PRT code”.
Aggiungi alla riga 12 la seguente condizione:
AND range < range[1]
OK grazie Roberto , sempre gentilissimo
Buongiorno, nello TS dovrei inserire l’ordine limit a condizione che il prezzo di sia inferiore della candela di oggi ( nextbar, L , limit)
e l’uscita e’ sempre con ordine limit se la barra e’ sopra la barra di oggi (nextbar, H, limit)
non riesco a inserire questa condizione, grazie
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = close
indicator2 = Average[200](close)
c1 = (indicator1 > indicator2)
indicator3 = RSI[2](close)
c2 = (indicator3 < 20)
IF c1 AND c2 AND range < range[1] THEN
BUY 1 SHARES AT MARKET
ENDIF
// Condizioni per uscire da posizioni long
indicator4 = RSI[2](close)
c3 = (indicator4 > 70)
IF c3 THEN
SELL AT MARKET
ENDIF
// Stop e target
SET STOP $LOSS 2000
Che significa la frase “a condizione che il prezzo di sia inferiore della candela di oggi”?
Che significa la frase “e l’uscita e’ sempre con ordine limit se la barra e’ sopra la barra di oggi”?
Fai degli esempi per favore.
Ti allego una foto per far capire meglio, l’ordine limit va a mercato con l’apertura al di sotto del minimo precedente e va in vendita limit ad di sopra del massimo precedente..
Nel tuo codice sopra tu entri a mercato a quelle condizioni (prezzo > media a 200 e Rsi a 2 periodi < 20) sulla candela corrente.
Vuoi trasformare l’ordine a mercato in un ordine LIMIT per entrare in posizione (Long) solo se il prezzo scende sotto il minimo di quale barra? qual’è quella che di setup, cioè quella che ti fa dire “ok, adesso ci sono le condizioni, appena scende sotto il minimo entro in posizione Long“?
Ho cambiato il tuo esempio con due ordini pendenti, per entrare sul Minimo ed uscire sul Massimo, ma non so se è questo che intendevi:
DEFPARAM CumulateOrders = False
IF LongOnMarket THEN
SELL AT Massimo STOP
ENDIF
indicator1 = close
indicator2 = Average[200](close)
c1 = (indicator1 > indicator2)
indicator3 = RSI[2](close)
c2 = (indicator3 < 20)
IF c1 AND c2 AND range < range[1] AND Not OnMarket THEN
BUY 1 SHARES AT low LIMIT
Massimo = high
SELL AT Massimo STOP
ENDIF
indicator4 = RSI[2](close)
c3 = (indicator4 > 70)
IF c3 AND LongOnMarket THEN
SELL AT MARKET
ENDIF
SET STOP $LOSS 2000
Nel tuo codice sopra tu entri a mercato a quelle condizioni (prezzo > media a 200 e Rsi a 2 periodi < 20) sulla candela corrente.
SI ENTRA :se c’è un ulteriore debolezza della barra di domani entro con il setup della candela di oggi ma condizione che domani il prezzo si abbassi ancora .(ORDINE LIMIT) altrimenti non si entra a mercato
SI ESCE CON DUE CONDIZIONI QUANDO RSI>70 E IL PREZZO SIA SOPRA AL PREZZO H DELLA BARRA RSI>70
SI ENTRA :se c’è un ulteriore debolezza della barra di domani entro con il setup della candela di oggi ma condizione che domani il prezzo si abbassi ancora .(ORDINE LIMIT) altrimenti non si entra a mercato
L’ordine LIMIT per potere entrare domani va inserito oggi, quindi sulla base di quale minimo? Non di domani perché non si sa. Se vuoi entrare a quel minimo dovrai farlo a mercato, non con un ordine LIMIT
Nel tuo ragionamento noto che parli del futuro perché hai un grafico davanti e tu lo vedi oggi, quindi il tuo passato (visivamente) conosce il futuro, un programma non può farlo. Deve entrare sulla base di dati certi e ben specificati. Se gli dico di entrare a 1.23187, non entrerà né a 1,23188 né a 1.23186; in realtà a causa di un pò di slippage entra anche con differenze maggiori, ma il mio discorso era solo per farti capire che parole come “debolezza” non possono essere espresse con un codice, occorre dire rialzo, ribasso, maggiore, minore, sempre accompagnando questi termini con un dato certo, es: Superamento del minimo di ieri, 3 pips oltre la media, ecc… mentre non si può dire Appena sopra la media, perché non viene indicato nessun valore preciso.
Si deve SEMPRE parlare del presente o del passato, MAI del futuro perché non esiste, quindi si può, sulla base di alcune condizioni di oggi entrare alla rottura dei Massimi/Minimi di ieri.
Se vuoi entrare dopo avere visto i Massimi/Minimi di domani, devi attendere un’altra barra e poi fare il ragionamento di cui sopra (cioè al passato).
MMMM, HO CAPITO… ALLEGO UNA FOTO DI COSA AVEVO IN MENTE…. DOPO FARO’ UN PO’ DI CHIAREZZA
Quindi, ragionando al passato, occorre spostare l’entrata di una barra indietro:
DEFPARAM CumulateOrders = False
IF LongOnMarket THEN
SELL AT Massimo STOP
ENDIF
indicator1 = close
indicator2 = Average[200](close)
c1 = (indicator1 > indicator2)
indicator3 = RSI[2](close)
c2 = (indicator3 < 20)
IF c1[1] AND c2[1] AND range[1] < range[2] AND close < low[1] AND Not OnMarket THEN
BUY 1 SHARES AT low LIMIT
Massimo = high[1]
SELL AT Massimo STOP
ENDIF
indicator4 = RSI[2](close)
c3 = (indicator4 > 70)
IF c3 AND LongOnMarket THEN
SELL AT MARKET
ENDIF
SET STOP $LOSS 2000
Grazie della pazienza Roberto, cosi’ il sistema nn funziona… ma ho provato a inserire il codice cosi’ come te lo posto e in questo modo funziona… nn so che ho fatto…?
ti allego una foto,
grazie ancora Roberto, magari mi fai sapere che ne pensi
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = close
indicator2 = Average[200](close)
c1 = (indicator1 > indicator2)
indicator3 = RSI[2](close)
c2 = (indicator3 < 20)
IF c1 AND c2 AND range < range[1] THEN
BUY 1 SHARES AT low LIMIT
ENDIF
// Condizioni per uscire da posizioni long
indicator4 = RSI[2](close)
c3 = (indicator4 > 70)
IF c3 THEN
SELL 1 SHARES AT high LIMIT
ENDIF
// Stop e target
SET STOP $LOSS 2000