Salve, avrei bisogno di una mano nello scrivere una strategia. In pratica le regole dovrebbero essere queste:
1. presa una media a 3 periodi, vorrei che il sistema acquistasse e vendesse al secondo break della media. (PROVO A SPIEGARMI MEGLIO).
prendiamo le ultime 10 barre, il long va aperto dopo che nelle ultime dieci barre il prezzo ha chiuso prima Sopra la media, poi sotto, e poi appena richiude sopra si entra a mercato. La cosa non deve essere consecutiva, è pero’ importante che la cosa avvenga nelle ultime tot barre.
Non so proprio come scriverlo ^_* Grazie per l’aiuto.
Barre = 10
Media = average[3](close)
Rialzo = close CROSSES OVER Media
Ribasso = summation[Barre - 1](close[1] CROSSES UNDER Media)
Cond = Rialzo AND Ribasso
Quando COND sarà vera è perché le tue richieste si sono verificate.
Quando COND sarà vera è perché le tue richieste si sono verificate.
Sei sempre gentilissimo grazie.
Posso pero’ chiederti un ulteriore aiuto? non fa proprio quello che vorrei, è evidente che non ho saputo spiegarmi bene.
Allora, la close supera la media tre poi ci diamo da questo evento un tot barre per il quale se chiude sotto e richiude sopra, alla barra successiva si entra.
Come nella foto
Barre = 10
Media = average[3](close)
Rialzo = close CROSSES OVER Media
Ribasso = summation[Barre – 1](close[1] CROSSES UNDER Media)
Cond = Rialzo AND Ribasso
questo strumento è il mini dax future ufficiale.
AD OGNI modo forse ho capito.
C’e’ modo per far fare solo un operazione e poi azzerare i conteggi?
Per esempio se mettiamo il cci oltrepassa lo zero vorrei che il sistema non facesse operazioni.
oppure se uno volesse incrociare più variabili come se fossero dei pattern, per esempio, diciamo che rsi o stocastico vanno in ipervenduto, se avviene ciò allora si parte con la conta degli incroci della media, e se si verifica si entra nel mercato, se pero’ nel frattempo un indicatore torna sotto ipervenduto non si entra a mercato e si aspetta nuovamente la condizione
Riformulo il tutto per essere molto più chiaro partendo da una foto.
Gli strumenti da prendere in considerazione sono:
1. cci 136 PERIODI
2. media mobile 3 periodi spostata di 3 periodi in avanti ( Average[3](close)[3] )
3. lo stop loss deve essere 5 punti sotto il minimo segnato nelle ultime (30 barre) o il minimo di giornata.
Quello che cerco di fare è questo:
Quando il CCI esce da un ipervenduto (-200) si osserva il prezzo e si aspetti che esso chiuda sopra la media, poi sotto e la seconda volta che chiude sopra la media (in un massimo di 10-20 barre dopo l’uscita dal cci) si entri a mercato dopo la chiusura.
Ho allegato un grafico del DAX CASH CFD IG 5 MINUTI del 28 settembre, alle 14.35 si verifica la condizione. e alla barra delle 14.40 si dovrebbe entrare.
[attachment file=”81599″]
io ho anche provato a scrivere la strategia ma senza successo.
defparam cumulateorders = false
once signal=0
//once signal2=0
cc=(cci[136] crosses over -200)
Media = Average[3](close)[3]
Barre = 10
if not onmarket then
signal=0
//signal2=0
else
if onmarket then
signal=0
//signal2=0
endif
endif
if cc then
signal=1
else
signal=0
endif
if signal>0 then
Rialzo = summation[Barre - 1] (close CROSSES OVER Media)
Ribasso = summation[Barre - 1](close[1] CROSSES UNDER Media[1])
Rialzo2 = (close crosses over media)
Cond = Rialzo AND Ribasso and Rialzo2
endif
if cond then
buy 1 contract at market
endif
set stop ploss 10
set target pprofit 20
Devi togliere le righe 7-8-9-10 e 15, perché se azzeri il segnale prima di essere a mercato annulli quello che hai fatto in precedenza.
Devi togliere le righe 19 e 20, altrimenti alla barra successiva all’incrocio azzeri subito il segnale senza attendere le X barre (10 o 20 che vorrai) per gli incroci delle medie.
Per iul resto devi solo mettere lo SL con la seguente riga da inserire tra la 31 e la 32 (prima del BUY):
SL = (close - lowest[30](low)) / pipsize
ed alla riga 35 sotituire 10 con la variabile SL.
Scusami, anche alla riga 24 devi mettere [1] a CLOSE e MEDIA come hai fatto alla 25.
Dovrai anche aggiungere un contatore in modo che all’incrocio del CCI inizi a contare le bvarre e, superato il limite che tu vuoi, azzeri di nuovo il segnale anche se non è entrato a mercato.
Certamente eccolo, allora incollo anche uno screenshot del solito giorno ed ora, l’entrata giusta la fa. Ma ne fa anche tante altre che non dovrebbe fare.
defparam cumulateorders = false
once signal=0
//once signal2=0
Media = Average[3](close)[3]
BarreMedia = 10
BarreCC = 5
if onmarket then
signal=0
endif
cc=summation[BarreCC - 1](cci[136] crosses over -200)
if cc then
signal=1
endif
if signal>0 then
Rialzo = summation[BarreMedia - 1] (close CROSSES OVER Media[1])
Ribasso = summation[BarreMedia - 1](close[1] CROSSES UNDER Media[1])
Rialzo2 = (close crosses over media)
Cond = Rialzo AND Ribasso and Rialzo2
endif
if cond then
SL= (close - lowest[30](low)) / pipsize
buy 1 contract at market
endif
set stop ploss SL
set target pprofit 50
Spero di non aver fatto errori, pare che nel segnale singolo ha isolato bene il trade, da vedere in un periodo lungo;
[EDIT] no, giovedi 27 settembre alle 10.05 viene fatto un trade, ma l’entrata non è a quell’ora ma alle 11.15, spero sia risolvibile.
defparam cumulateorders = false
once signal=0
//once signal2=0
Media = Average[3](close)[3]
BarreMedia = 5
BarreCC = 5
if onmarket then
signal=0
signal=0
endif
cc=summation[BarreCC - 1](cci[136] crosses over -200)
if cc then
signal=1
endif
if signal>0 then
Rialzo = summation[BarreMedia - 1] (close CROSSES OVER Media[1])
Ribasso = summation[BarreMedia - 1](close[1] CROSSES UNDER Media[1])
Cond = Rialzo AND Ribasso
endif
Rialzo2 = (close crosses over media)
if cond then
signal2=1
SL= (close - lowest[30](low)) / pipsize
endif
if signal2>0 and rialzo2 then
buy 1 contract at market
signal2=0
signal=0
endif
set stop ploss SL
set target pprofit 50
Certo che le fa errate, hai messo il valore BARRECC minore di BARREMEDIA.
Ad ogni modo il contatore va messo in un altro modo, non con SUMMATION, perché così non sai se incrocia prima il CCI e poi la media, come vuoi tu.
Ci vuole un contatore che parta da 1 quando il CCI incrocia e vada avanti finché non entra a mercato oppure quando è passato il numero di barre desiderato ed in questi casi va azzerato.
Se non ci riesci, quando sarò al PC te lo farò io.
Certo che le fa errate, hai messo il valore BARRECC minore di BARREMEDIA.
Ad ogni modo il contatore va messo in un altro modo, non con SUMMATION, perché così non sai se incrocia prima il CCI e poi la media, come vuoi tu.
Ci vuole un contatore che parta da 1 quando il CCI incrocia e vada avanti finché non entra a mercato oppure quando è passato il numero di barre desiderato ed in questi casi va azzerato.
Se non ci riesci, quando sarò al PC te lo farò io.
Ok grazie, forse sbagliamo con la questione barre? La strategia dovrebbe partire dal CCI, da li aspetterai i rientri della media e comprare o vendere chiaramente. e poi se dopo tot barre o se il cci sale a 0 fermarsi ed aspettare un nuovo rientro.
Se domani risci ti ringrazio
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR.
For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com
If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.
Get Assistance
Assistance Type
Your Need
Proposed Solutions
Do you like cookies? 🍪 We use cookies to ensure you get the best experience on our website.
(Learn more)