NunoParticipant
Average
Bonjour Nicolas,
je souhaiterais utiliser ton indicateur https://www.prorealcode.com/prorealtime-indicators/fractals-zigzag/ sur un timeframe weekly avec pour paramètre cp = 100 pour avoir les gros points de retournement
les mettre tous en mémoire( ou les 3 plus près au dessus et les 3 plus près en dessous), et ensuite les récupérer en daily et être alerté quand le prix se rapproche d’un de ces points
est ce possible selon toi?
1/ dois je utiliser la fonction TIMEFRAME(weekly, UpdateOnClose) avec cp = 100
ou alors travailler uniquement en daily avec pour paramètre cp = 500 (100*5) et dans ce cas là faut il ajouter la fonction defparam preloadbars = 10000 pour forcer le calcul sur ce nombre de barres
2/ je me suis aperçu que tous les points zigzag ne sont pas indiqués selon que l’on mette 200 unités ou 10000 unités
quand je mets defparam preloadbars = 10000 j’ai une erreur
merci
Nuno
1/ tu peux faire les 2, par contre si il s’git d’un indicateur, il n’y a pas de preloadbars à faire, d’ailleurs cette instruction n’est pas compatible avec les indicateurs.
2/ je comprends pas ce que tu veux faire, c’est un indicateur ou une stratégie ?
Pour utiliser les 3 derniers fractals haut/bas, ce serait plus simple d’utiliser les tableaux de données en v11.
NunoParticipant
Average
Merci pour tes reponses
pour être plus clair, je souhaiterais faire un screener pour identifier les fractales sur une unité de temps hebdo, les garder en mémoire et être alerté en daily quand le prix d’une action est proche d’une de ses fractales hebdo
NunoParticipant
Average
je me suis inspiré de ton exemple
le screener doit indiquer en weekly si des actions sont à moins de 1 atr (atr = AverageTrueRange[10](close)) d’un des points fractals TOPy ou BOTy
j’ai quelques erreurs
toute aide est bienvenue 😉
// https://www.prorealcode.com/topic/array-variables-availability-in-prorealtime/
// (please do not remove the link above for future reference)
// Example #1: support and resistance example, based on fractals points
// --- settings
timeframe(weekly)
fractalP = 100
barlimit = 500
// Average True Range
atr = AverageTrueRange[10](close)
//fractals
cp=fractalP
if high[cp] >= highest[(cp)*2+1](high) then
$TOPy[lastset($TOPy)+1] = high[cp] //store fractal value
$TOPx[lastset($TOPx)+1] = barindex[cp] //store fractal barindex
endif
if low[cp] <= lowest[(cp)*2+1](low) then //new fractal low found
$BOTy[lastset($BOTy)+1] = low[cp] //store fractal value
$BOTx[lastset($BOTx)+1] = barindex[cp] //stire fractal barindex
endif
if(islastbarupdate and isset($TOPy[0]) and isset($BOTy[0])) then
//check if Topy near (<1atr) the close
for i = 0 to lastset($TOPy) do //loop through the tops
change=abs($TOPy[i]- close)
if change < atr then
myAlert = 1
endif
next
for i = 0 to lastset($BOTy) do //loop through the tops
change=abs($BOTy[i]- close)
if change < atr then
myAlert = 1
endif
next
endif
SCREENER(signal as "Fractal weekly")
NunoParticipant
Average
savez vous pourquoi j’ai une erreur dans mon code ci-dessus ligne 15?
merci
Il n’est pas possible d’utiliser ce type de code dans ProScreener, car il utilise les tableaux de données qui ne sont pas encore intégrés dans celui-ci.
Par ailleurs, une condition de screener doit être entre crochets et non entre parenthèses.
Ci-dessous un code assez bref pour détecter que le prix est à moins de “percent” (pourcentage) de distance du dernier fractal haut ou bas de période “cp”.
//---external parameters
cp = 100
percent = 5
if high[cp] >= highest[2*cp+1](high) then
LH = 1
else
LH = 0
endif
if low[cp] <= lowest[2*cp+1](low) then
LL = -1
else
LL = 0
endif
if LH = 1 then
TOPy = high[cp]
endif
if LL = -1 then
BOTy = low[cp]
endif
test = abs(1-(close/topy))<percent/100 or abs(1-(close/boty))<percent/100
screener[test]
NunoParticipant
Average
Merci Nicolas pour ton aide
en regardant ton code, il se peut q’un ancien fractal haut de periode soit plus près que le dernier fractal haut de periode
je dois donc creer plusieurs variables et memoriser les “x” derniers hauts et faire la condition test pour ces variables, c’est bien cela?
exemple de cas ci dessous