ProRealCode - Trading & Coding with ProRealTime™
E devo mettere DEFPARAM CumulateOrders = False, giusto?
E devo mettere DEFPARAM CumulateOrders = False, giusto?
Il codice sotto è corretto?
Grazie mille dell’aiuto.
DEFPARAM CumulateOrders = False DEFPARAM PreLoadBars = 10000 //////////////////////////////////////////////////////////////////////////////////////// ONCE Capitale = 4196 ONCE LotNumber = 1 ONCE MinLots = 1 ONCE SpreadEntrata = 20 * pipsize ONCE StopMinimo = 40 * pipsize ONCE StopMassimo = 200 * pipsize BarraVerde = Open < Close BarraRossa = Open > Close TradingDay = OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5 //trade only Mon. to Fri. SpikeInferiore = 0 SpikeSuperiore = 0 //ESCO = 999 //PASSO = 999 //AltaVolatilita = range > LimiteMaxBarra //Definisco il tipo barra IF (close >= (high + low) / 2) THEN TipoBarra = 1 ELSIF (close < (high + low) /2) THEN TipoBarra = 2 ENDIF IF BarraVerde THEN SpikeSuperiore = high - close SpikeInferiore = open - low ELSIF BarraRossa THEN SpikeSuperiore = high - open SpikeInferiore = close - low ENDIF //Credo dica il profitto è dato dal capitale + il ricavato dal programma MyProfit = Capitale + StrategyProfit //Credo centri qualche cosa con l'aumento della size al cambio del mese IF Month <> Month[1] THEN LotNumber = max(MinLots, (MyProfit / Capitale)) ENDIF IF TipoBarra = 1 AND TradingDay THEN IF LONGONMARKET AND BarraRossa THEN SELLSHORT LotNumber CONTRACT AT MARKET IF SpikeSuperiore >= 220 THEN StopEntrata = StopMassimo + SpreadEntrata SET STOP pLOSS StopEntrata ELSE StopEntrata = SpikeSuperiore + SpreadEntrata SET STOP pLOSS max(StopMinimo,StopEntrata) ENDIF ENDIF ELSIF TipoBarra = 2 AND TradingDay AND (NOT SHORTONMARKET) THEN IF SHORTONMARKET AND BarraVerde THEN BUY LotNumber CONTRACT AT MARKET IF SpikeInferiore >= 220 THEN StopEntrata = StopMassimo + SpreadEntrata SET STOP pLOSS StopEntrata ELSE StopEntrata = SpikeInferiore + SpreadEntrata SET STOP pLOSS max(StopMinimo,StopEntrata) ENDIF ENDIF ENDIF //IF LONGONMARKET AND close < open THEN //Esci se sei LONG e si forma una candela rossa //SELL AT MARKET //ENDIF //IF SHORTONMARKET AND close > open THEN //EXITSHORT AT MARKET //Esci se sei SHORT e si forma una candela verde //ENDIF
1
Scusami, ma l’hai provato? Non apre nessuna posizione.
Tu gli hai detto, alle righe 44 e 55 di entrare in una direzione se è già a mercato nell’altra. Come fa ad entrare almeno una prima volta?
Infatti, erroneamente ne avevo provato un altro. Per farlo entrare la prima volta avevo pensato di testare la variabile ONMARKET.
All’inizio se sono tutte e due a 0 allora entro alle mie condizioni iniziali. Poi essendo a mercato una delle due sarà diversa da 0 e li in base a quello positiva testo se barra 1 o 2 , poi se rossa o verde e entro a mercato(stop & reverse). Cumulateorders = False.
Secondo te può andare così sono sulla strada giusta?
Scusami se stresso, ma il problema è che non riesco a trovare un posto dove spieghi come “ragiona” pro order, ed alle volte navigo al buio.
Al momento il programma mi calcola entrate e Stop corretti, mi manca solo uscire a barra contraria e rientrare subito a mercato, che da come dici tu è semplice, ma sto brancolando nel buoi.
Grazie mille ancora del tuo supporto.
Infatti, erroneamente ne avevo provato un altro. Per farlo entrare la prima volta avevo pensato di testare la variabile ONMARKET.
All’inizio se sono tutte e due a 0 allora entro alle mie condizioni iniziali. Poi essendo a mercato una delle due sarà diversa da 0 e li in base a quello positiva testo se barra 1 o 2 , poi se rossa o verde e entro a mercato(stop & reverse). Cumulateorders = False.
Secondo te può andare così sono sulla strada giusta?
Scusami se stresso, ma il problema è che non riesco a trovare un posto dove spieghi come “ragiona” pro order, ed alle volte navigo al buio.
Al momento il programma mi calcola entrate e Stop corretti, mi manca solo uscire a barra contraria e rientrare subito a mercato, che da come dici tu è semplice, ma sto brancolando nel buio.
Sotto il codice riscritto.
Grazie mille ancora del tuo supporto.
DEFPARAM CumulateOrders = True
DEFPARAM PreLoadBars = 10000
////////////////////////////////////////////////////////////////////////////////////////
ONCE Capitale = 4196
ONCE LotNumber = 1
ONCE MinLots = 1
ONCE SpreadEntrata = 20 * pipsize
ONCE StopMinimo = 40 * pipsize
ONCE StopMassimo = 200 * pipsize
//ONCE LimiteMaxBarra = 450 * pipsize
BarraVerde = Open < Close
BarraRossa = Open > Close
TradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 //trade only Mon. to Fri.
//ESCO = 999
//PASSO = 999
//AltaVolatilita = range > LimiteMaxBarra
//Definisco il tipo barra
IF (close >= (high + low) / 2) THEN
TipoBarra = 1
ELSIF (close < (high + low) /2) THEN
TipoBarra = 2
ENDIF
IF BarraVerde THEN
SpikeSuperiore = high - close
SpikeInferiore = open - low
ELSIF BarraRossa THEN
SpikeSuperiore = high - open
SpikeInferiore = close - low
ENDIF
//Credo dica il profitto è dato dal capitale + il ricavato dal programma
MyProfit = Capitale + StrategyProfit
//Credo centri qualche cosa con l'aumento della size al cambio del mese
IF Month <> Month[1] THEN
LotNumber = max(MinLots, (MyProfit / Capitale))
ENDIF
IF NOT ONMARKET THEN
IF TipoBarra = 1 AND TradingDay THEN
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(Stopminimo,StopEntrata)
ENDIF
ENDIF
ELSE
IF LONGONMARKET AND BarraRossa THEN
IF TipoBarra = 1 AND TradingDay THEN
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ENDIF
ELSIF SHORTONMARKET AND Barraverde THEN
IF TipoBarra = 1 AND TradingDay THEN
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ENDIF
ENDIF
ENDIF
Mi parli di FALSE e invece metti TRUE, diventa difficile capire cosa desideri fare! (comunque alla fine credo di avere capito)
Il codice mi sembra sia corretto.
In pratica tu vuoi:
Ok, direi che va bene, anche il calcolo dello SL.
Tutto corretto tranne che:
se sei a mercato Long e c’è una barra contraria (Rossa) fai Stop & Reverse e rientro short se TipoBarra=1, long se TipoBarra=2
se sei a mercato Short e c’è una barra contraria (Verde) fai Stop & Reverse e rientro short se TipoBarra=1, long se TipoBarra=2
Questo è quello che vorrei fare. Quindi credo che cumulate order, debba essere FALSE, corretto?
Grazie mille ancora per la tua pazienza.
Tutto corretto tranne che:
se sei a mercato Long e c’è una barra contraria (Rossa) fai Stop & Reverse e rientro short se TipoBarra=1, long se TipoBarra=2
No, se sei già LONG o resti a mercato come lo sei già, oppure aggiungi un’altra posizione (mettendo TRUE invece di FALSE). in ogni caso così com’è c’è già BUY, quindi lo ignora a causa del FALSE, senza chiudere niente. BUY chiude solo posizioni Short aperte.
se sei a mercato Short e c’è una barra contraria (Verde) fai Stop & Reverse e rientro short se TipoBarra=1, long se TipoBarra=2
come sopra, solo che è invertito il ragionamento essendo nell’altra direzione
Questo è quello che vorrei fare. Quindi credo che cumulate order, debba essere FALSE, corretto?
mi sembra possa andare bene quando devi fare Stop & Reverse, mentre nell’altro caso tu dici RIENTRO… no non puoi rientrare, essendo già in posizione in quella stessa direzione, dovresti prima uscire dalla posizione e rientrarci, ma che senso avrebbe? Quindi in quelle due ipotesi che tu hai fatto sopra, invece di RIENTRO dovresti dire PROSEGUO
Grazie mille ancora per la tua pazienza.
Fai attenzione perché, ad esempio, alle righe da 73 a 82 NON entra Long perché lo sei già, però ti calcola e setta un diverso Stop Loss per l’operazione in corso.
La riga 74 (per il Long) e la 85 (per lo Short) volendo le puoi togliere se usi FALSE, in quanto non puoi entrare più di una volta. Se invece vuoi tenerle e desideri PRIMA uscire e poi rientrare con il nuovo SL, basta che prima del BUY metti una riga con SELL e prima di SELLSHORT metti metti una riga con EXITSHORT.
Grazie Roberto.
Ho aggiunto le righe SELL ed EXISHORT. Quindi mi aspetto che:
sono a mercato LONG, si chiude una barra rossa, mi chiude la posizione e rientro a mercato in base al tipo barra appena chiuso.
sono a mercato SHORT, si chiude una barra verde, mi chiude la posizione e rientra a mercato in base al tipo barra appena chiuso.
Il senso di rientrare se sono LONG, ancora LONG, sta nelle mie condizioni. Infatti se la posizione si chiude a causa di una pin bar short, però rossa, le mie condizioni essendo sul tipo barra 2 mi farebbero rientrare LONG.
Per il caso SHORT, l’inverso.
Come rientro dipende sempre dal tipo di barra appena chiusa.
Potresti cortesemente inviarmi un link dove è spigata la logica di funzionamento di Pro Order?
Grazie ille.
Qui puoi trovare tutti e 3 i manuali in PDF https://www.prorealcode.com/reply/104551/
Roberto, ho corretto il codice, adesso esce e rientra subito. Lo fa però solo nel caso venga cambiata la direzione di entrata. Ti allego il codice al quale ho aggiunto alla riga di vendita l’istruzione che se sono in guadagno esci e rientra nella stessa direzione in cui eri già a mercato, ma non chiude.
E’ possibile chiudere una posizione per esempio LONG e rientrare subito LONG?
Se risolvo questo ho trovato la quadratura del cerchio.
Con il GRAPH ho controllato le variabili e la variabile VENDO alla chiusura della barra delle 16 (quindi alle 16.30) vale correttamente 3, però non chiude la posizione.
Grazie mille.
DEFPARAM CumulateOrders = True
DEFPARAM PreLoadBars = 10000
////////////////////////////////////////////////////////////////////////////////////////
ONCE Capitale = 4196
ONCE LotNumber = 1
ONCE MinLots = 1
ONCE SpreadEntrata = 20 * pipsize
ONCE StopMinimo = 40 * pipsize
ONCE StopMassimo = 200 * pipsize
//ONCE LimiteMaxBarra = 450 * pipsize
BarraVerde = Open < Close
BarraRossa = Open > Close
TradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 //trade only Mon. to Fri.
//ESCO = 999
//PASSO = 999
//AltaVolatilita = range > LimiteMaxBarra
//Definisco il tipo barra
IF (close >= (high + low) / 2) THEN
TipoBarra = 1
ELSIF (close < (high + low) /2) THEN
TipoBarra = 2
ENDIF
IF BarraVerde THEN
SpikeSuperiore = high - close
SpikeInferiore = open - low
ELSIF BarraRossa THEN
SpikeSuperiore = high - open
SpikeInferiore = close - low
ENDIF
//Credo dica il profitto è dato dal capitale + il ricavato dal programma
MyProfit = Capitale + StrategyProfit
//Credo centri qualche cosa con l'aumento della size al cambio del mese
IF Month <> Month[1] THEN
LotNumber = max(MinLots, (MyProfit / Capitale))
ENDIF
IF NOT ONMARKET THEN
//PASSO = 1
IF TipoBarra = 1 AND TradingDay THEN
SELLSHORT LotNumber CONTRACT AT MARKET
TipoPosizione = -1
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
BUY LotNumber CONTRACT AT MARKET
TipoPosizione = 1
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(Stopminimo,StopEntrata)
ENDIF
ENDIF
ELSE
PASSO = 2
IF TipoPosizione = 1 AND BarraRossa THEN
IF TipoBarra = 1 AND TradingDay THEN
LONG = 20
IF PositionPerf > 0 THEN
VENDO = 1
SELL AT MARKET
ENDIF
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
LONG = 21
IF PositionPerf > 0 THEN
VENDO = 2
SELL AT MARKET
ENDIF
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ENDIF
ELSIF TipoPosizione = -1 AND Barraverde THEN
IF TipoBarra = 1 AND TradingDay THEN
LONG = 23
IF PositionPerf > 0 THEN
VENDO = 3
EXITSHORT AT MARKET
ENDIF
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
LONG = 24
IF PositionPerf > 0 THEN
VENDO = 4
EXITSHORT AT MARKET
ENDIF
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ENDIF
ENDIF
ENDIF
Certo che puoi uscire da LONG e rientrare subito. Esci con SELL ed esegui un nuovo BUY. Però occorre fare qualche prova per verificare che non debba attendere una barra.
riporto il tuo post che ho cancellato per eliminare la domanda estranea di dg007:
Il codice che ti ho postato prima, dovrebbe fare quello, ma ho notato che se deve rientrare nella stessa direzione in qui è non chiude la posizione. Con il GRAPH ho controllato le variabili che ho impostato per capire se ero nella parte corretta degli IF e ci sono. Non capisco se è pro order che dice se esci long per rientrare long, non chiudo e continua la posizione in qui sei. Se invece sono per esempio LONG e si forma una barra contraria che prevede un ingresso SHORT allora chiude LONG e riapre SHORT. Quello che non capisco è perchè se sono LONG e gli dico di chiudere per poi ripartire LONG non lo fa, la logica è uguale, cambiano solo i comandi.
Roberto cortesemente mi puoi verificare la situazione sotto?
Wall Street Cash(1€) 30 minuti. Sono entrato long alla barra delle 4.30, però al cambio colore della barra delle 7.30 non è uscito.
Allegato il codice, mi dici se a te invece esce? ProrealTime non mi ha ancora risposto alla segnalazione dell’altro giorno.
Grazie mille.
DEFPARAM CumulateOrders = True
DEFPARAM PreLoadBars = 10000
////////////////////////////////////////////////////////////////////////////////////////
ONCE Capitale = 4196
ONCE LotNumber = 1
ONCE MinLots = 1
ONCE SpreadEntrata = 20 * pipsize
ONCE StopMinimo = 40 * pipsize
ONCE StopMassimo = 200 * pipsize
//ONCE LimiteMaxBarra = 450 * pipsize
BarraVerde = Open < Close
BarraRossa = Open > Close
TradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 //trade only Mon. to Fri.
//ESCO = 999
//PASSO = 999
//AltaVolatilita = range > LimiteMaxBarra
//Definisco il tipo barra
IF (close >= (high + low) / 2) THEN
TipoBarra = 1
ELSIF (close < (high + low) /2) THEN
TipoBarra = 2
ENDIF
IF BarraVerde THEN
SpikeSuperiore = high - close
SpikeInferiore = open - low
ELSIF BarraRossa THEN
SpikeSuperiore = high - open
SpikeInferiore = close - low
ENDIF
//Credo dica il profitto è dato dal capitale + il ricavato dal programma
MyProfit = Capitale + StrategyProfit
//Credo centri qualche cosa con l'aumento della size al cambio del mese
IF Month <> Month[1] THEN
LotNumber = max(MinLots, (MyProfit / Capitale))
ENDIF
IF NOT ONMARKET THEN
//PASSO = 1
IF TipoBarra = 1 AND TradingDay THEN
SELLSHORT LotNumber CONTRACT AT MARKET
TipoPosizione = -1
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
BUY LotNumber CONTRACT AT MARKET
TipoPosizione = 1
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(Stopminimo,StopEntrata)
ENDIF
ENDIF
ELSE
//PASSO = 2
IF TipoPosizione = 1 AND BarraRossa THEN
//IF PositionPerf > 0 THEN
//VENDO = 1
SELL AT MARKET
//ENDIF
IF TipoBarra = 1 AND TradingDay THEN
//LONG = 20
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
//LONG = 21
//IF PositionPerf > 0 THEN
//VENDO = 2
//SELL AT MARKET
//ENDIF
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ENDIF
ELSIF TipoPosizione = -1 AND Barraverde THEN
//IF PositionPerf > 0 THEN
//VENDO = 4
EXITSHORT AT MARKET
//ENDIF
IF TipoBarra = 1 AND TradingDay THEN
//LONG = 23
//IF PositionPerf > 0 THEN
//VENDO = 3
//EXITSHORT AT MARKET
//ENDIF
SELLSHORT LotNumber CONTRACT AT MARKET
IF SpikeSuperiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeSuperiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ELSIF TipoBarra = 2 AND TradingDay THEN
//LONG = 24
BUY LotNumber CONTRACT AT MARKET
IF SpikeInferiore >= 220 THEN
StopEntrata = StopMassimo + SpreadEntrata
SET STOP pLOSS StopEntrata
ELSE
StopEntrata = SpikeInferiore + SpreadEntrata
SET STOP pLOSS max(StopMinimo,StopEntrata)
ENDIF
ENDIF
ENDIF
ENDIF
//IF LongOnMarket AND close < open THEN //Esci se sei LONG e si forma una candela rossa
//SELL AT MARKET
//ENDIF
//IF ShortOnMarket AND close > open THEN //Esci se sei SHORT e si forma una candela verde
//EXITSHORT AT MARKET
//GRAPH LONG
//GRAPH VENDO
//GRAPH PASSO
//GRAPH PositionPerf
//GRAPH close < open
Non mi inserisce l'ordine pendente
This topic contains 79 replies,
has 2 voices, and was last updated by
robertogozzi
5 years, 4 months ago.
| Forum: | ProOrder: Trading Automatico & Backtesting |
| Language: | Italian |
| Started: | 04/01/2020 |
| Status: | Active |
| Attachments: | 6 files |
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.