salve
ho terminato un ts ma mi servirebbe mettere che invece di entrare su un incrocio per un sto momentum devo mettere di entrare sul secondo incrocio
come posso fare?
grazie
martina
certo
indicator3 = SMI[10,3,6](close)
c2 = (indicator3 <= -60)
indicator6 = LinearRegression[8](close)
indicator7 = WeightedAverage[67](close)[13]
c4 = (indicator6 <= indicator7)
indicator8 = SMI[10,3,6](close)
indicator9 = Average[2](SMI[10,3,6](close))
c5 = (indicator8 CROSSES OVER indicator9 )
avrei bisogno che il c5 si attivasse come descritto ma al secondo incrocio dello sto
grazie
DANYParticipant
Senior
Non l’ho testato ma se ho capito bene ti servirebbe qualcosa di simile ….
PrimaVolta=1
indicator8 = SMI[10,3,6](close)
indicator9 = Average[2](SMI[10,3,6](close))
c5 = (indicator8 CROSSES OVER indicator9 )
If c5 then
if PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2
PrimaVolta=2
elsif PrimaVolta = 2 then //la seconda volta entra
buy……
PrimaVolta = 1 //reimposti la variabile PrimaVolta a 1 per ripartire col giro successivo in modo “pulito”
endif
endif
DANYParticipant
Senior
P.S
Devi impostare lavariabile PrimaVolta con il ONCE davanti, altrimenti tutte le volte la setta prima a 1.
Once PrimaVolta=1
indicator8 = SMI[10,3,6](close)
indicator9 = Average[2](SMI[10,3,6](close))
c5 = (indicator8 CROSSES OVER indicator9 )
If c5 then
if PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2
PrimaVolta=2
elsif PrimaVolta = 2 then //la seconda volta entra
buy......
PrimaVolta = 1 //reimposti la variabile PrimaVolta a 1 per ripartire col giro successivo in modo "pulito"
endif
endif
grazie dell aiuto io non sono brava coi programmi faccio il minimo indispensabile
ho messo come hai scritto tu ma non va mi ha aperto una posizione 4 mesifa ed e’ ancora attiva DD
ti scrivo come l’ho messo io col tuo suggerimento se mi puoi aiutare dove sbaglio te ne sarei grata
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = false // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
Once PrimaVolta=1
indicator1 = SMI[10,3,6](close)
indicator2 = Average[2](SMI[10,3,6](close))
c1 = (indicator1 CROSSES OVER indicator2)
indicator3 = SMI[10,3,6](close)
c2 = (indicator3 <= -60)
IF c1 AND c2 THEN
if PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2
PrimaVolta=2
elsif PrimaVolta = 2 then
BUY 1 CONTRACT AT MARKET
PrimaVolta = 1
ENDIF
// Condizioni per uscire da posizioni long
indicator4 = SMI[10,3,6](close)
c3 = (indicator4 >= 58)
IF c3 THEN
SELL AT MARKET
ENDIF
endif
se possibile vorrei che entrasse al secondo incrocio e poi anche al terzo o quarto o quelli che si creano dal secondo in poi fino allo scarico dello sto non so se sono stata chiara…quindi anche due o tre posizioni la stessa cosa poi la creo con l oshort
grazie mille
DANYParticipant
Senior
Per prima cosa devi spostare fuori dalla prima “IF” il controllo relativo al terzo indicatore; se si verifica la prima condizione di acquisto, non entrerà mai nella seconda IF per “vendere”…. Se poi vuoi che entri dal secondo incrocio e in quelli successivi, è sufficiente impostare la variabile “PrimaVolta” in modo che il controllo salti solo il primo incrocio e non la resetti più; prova così e poi mi dici….purtroppo senza sapere su quale prodotto lavori e su quale TimeFrame, diventa difficile anche capire quale è l’obiettivo e provare a darti una mano…
Ciao.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = false // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
Once PrimaVolta=1
indicator1 = SMI[10,3,6](close)
indicator2 = Average[2](SMI[10,3,6](close))
c1 = (indicator1 CROSSES OVER indicator2)
indicator3 = SMI[10,3,6](close)
c2 = (indicator3 <= -60)
IF c1 AND c2 THEN
if PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2
PrimaVolta=2
elsif PrimaVolta = 2 then
BUY 1 CONTRACT AT MARKET
//PrimaVolta = 1
ENDIF
endif
// Condizioni per uscire da posizioni long
indicator4 = SMI[10,3,6](close)
c3 = (indicator4 >= 58)
IF c3 THEN
SELL AT MARKET
ENDIF
Ciao Dany sto sul dax 1m. La mia email e martina_74@hotmail.it se ti va scrivimi magari ci sentiamo Se puoi aiutarmi ci sentiamo e più semplice. Io so una frana con i codici
Grazie
Martina
Buongiorno Italia,
provo ad aiutare. Attenzione alle lignee 8, 12 e 17. Ho lasciato fuori quello ridondante o che non c’entra.
DEFPARAM CumulateOrders = false
// Indicatori
indicator1 = SMI[10,3,6](close)
indicator2 = Average[2](indicator1)
// Condizioni
c1 = c1 + (indicator1 CROSSES OVER indicator2)
c2 = (indicator1 <= -60)
c3 = (indicator1 >= 58)
if (c1 >= 2) and c2 then
BUY 1 CONTRACT AT MARKET
endif
if c3 then
c1 = 0
SELL AT MARKET
endif
Spero che ti serva, almeno come idea per trovare la soluzione da sola. In ogni caso, sono sicuro que Dany può continuare ad aiutarti.
Ciao