aiuto per sistemare un programma
Forums › ProRealTime forum Italiano › Supporto ProBuilder › aiuto per sistemare un programma
- This topic has 9 replies, 4 voices, and was last updated 8 years ago by tikitaka.
-
-
11/21/2016 at 7:58 PM #1691011/21/2016 at 8:00 PM #1691211/22/2016 at 10:26 AM #16933
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
11/24/2016 at 11:23 PM #17142Non 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
11/24/2016 at 11:29 PM #17143P.S
Devi impostare lavariabile PrimaVolta con il ONCE davanti, altrimenti tutte le volte la setta prima a 1.
12345678910111213141516171819202122<span class="token operator">Once PrimaVolta=1indicator8 = SMI[10,3,6](close)indicator9 = Average[2](SMI[10,3,6](close))c5 = (indicator8 CROSSES OVER indicator9 )If c5 thenif PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2PrimaVolta=2elsif PrimaVolta = 2 then //la seconda volta entrabuy......PrimaVolta = 1 //reimposti la variabile PrimaVolta a 1 per ripartire col giro successivo in modo "pulito"endifendif</span>11/25/2016 at 9:35 AM #17151grazie 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
1234567891011121314151617181920212223242526272829303132333435// Definizione dei parametri del codiceDEFPARAM CumulateOrders = false // Posizioni cumulate disattivate// Condizioni per entrare su posizioni longOnce PrimaVolta=1indicator1 = 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 THENif PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2PrimaVolta=2elsif PrimaVolta = 2 thenBUY 1 CONTRACT AT MARKETPrimaVolta = 1ENDIF// Condizioni per uscire da posizioni longindicator4 = SMI[10,3,6](close)c3 = (indicator4 >= 58)IF c3 THENSELL AT MARKETENDIFendif11/25/2016 at 10:48 AM #17154se 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
11/25/2016 at 11:07 PM #17209Per 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.
123456789101112131415161718192021222324252627282930313233// Definizione dei parametri del codiceDEFPARAM CumulateOrders = false // Posizioni cumulate disattivate// Condizioni per entrare su posizioni longOnce PrimaVolta=1indicator1 = 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 THENif PrimaVolta = 1 then //la prima volta non fa nulla e imposta solo la variabile PrimaVolta a 2PrimaVolta=2elsif PrimaVolta = 2 thenBUY 1 CONTRACT AT MARKET//PrimaVolta = 1ENDIFendif// Condizioni per uscire da posizioni longindicator4 = SMI[10,3,6](close)c3 = (indicator4 >= 58)IF c3 THENSELL AT MARKETENDIF11/25/2016 at 11:48 PM #1721011/26/2016 at 11:06 AM #17222Buongiorno Italia,
provo ad aiutare. Attenzione alle lignee 8, 12 e 17. Ho lasciato fuori quello ridondante o che non c’entra.
12345678910111213141516171819DEFPARAM CumulateOrders = false// Indicatoriindicator1 = SMI[10,3,6](close)indicator2 = Average[2](indicator1)// Condizionic1 = c1 + (indicator1 CROSSES OVER indicator2)c2 = (indicator1 <= -60)c3 = (indicator1 >= 58)if (c1 >= 2) and c2 thenBUY 1 CONTRACT AT MARKETendifif c3 thenc1 = 0SELL AT MARKETendifSpero che ti serva, almeno come idea per trovare la soluzione da sola. In ogni caso, sono sicuro que Dany può continuare ad aiutarti.
Ciao
-
AuthorPosts