ACS indicator
Forums › ProRealTime forum Français › Support ProBuilder › ACS indicator
- This topic has 9 replies, 4 voices, and was last updated 5 months ago by Christopher.
-
-
06/18/2024 at 4:55 PM #234060
Bonjour,
je voudrais savoir s’il serait possible d’avoir de l’aide pour paramétrer des conditions supplémentaire à l’indicateur de flèches “ACS indicator”
J’aimerais pouvoir ajouter certaine conditions à l’apparitions des flèches :
- Pas de flèches baissières si la MM50 est haussière
- Pas de flèches haussières si la MM50 est baissière
- Pas de flèche haussière si ouverture bougie au dessus de la MM20
- Pas de flèche baissière si ouverture bougie en dessous de la MM20
Si quelqu’un pouvait m’apporter son aide je lui serais particulièrement reconnaissant.
Bonne journée.
Christopher.
06/18/2024 at 5:02 PM #234062Désolé pour le double post, mais je suis prêt à apprendre à coder pour paramétrer cela moi même seulement je ne sais pas ou ni comment m’y prendre, ni quel code je dois apprendre pour y parvenir ?
06/18/2024 at 6:22 PM #234063J’ai déjà modifié des valeurs dans le codage en essayant quelque trucs, mais éliminer certaine flèches ne sortant pas dans des cas adaptés à mon trading m’aiderait énormément.
Je joint le codage de l’indicateur si cela peut aider :
// — settings
RISK=1.5
CountBars=500
// — end of settingsvalue10=3+RISK*2
x1=80+RISK
x2=50-RISK
value11=value10shift=CountBars-11-1
if islastbarupdate and barindex>CountBars then
while(shift>=0) doCounter=shift
iRange=0.0
AvgRange=0.0
for Counter=shift to shift+9 do
AvgRange=AvgRange+Abs(High[Counter]-Low[Counter])
nextiRange=AvgRange/10
Counter=shift
TrueCount=0
while (Counter<shift+9 and TrueCount<1) do
if (Abs(Open[Counter]-Close[Counter+1])>=iRange*2.0) then
TrueCount=TrueCount+1
endif
Counter=Counter+1
wend
if (TrueCount>=1) then
MRO1=Counter
else
MRO1=-1
endifCounter=shift
TrueCount=0
while (Counter<shift+6 and TrueCount<1) do
if (Abs(Close[Counter+3]-Close[Counter])>=iRange*4.6) then
TrueCount=TrueCount+1
endif
Counter=Counter+1
wend
if (TrueCount>=1) then
MRO2=Counter
else
MRO2=-1
endifif (MRO1>-1) then
value11=3
else
value11=value10
endif
if (MRO2>-1) then
value11=4
else
value11=value10
endifvalue2=100-Abs(Williams[value11](close)[shift]) // PercentR(value11=9)
$Tablevalue2[shift]=value2
$val1[shift]=0
$val2[shift]=0
value3=0if (value2<x2) then
i1=1
while ($Tablevalue2[shift+i1]>=x2 and $Tablevalue2[shift+i1]<=x1) do
i1=i1+1
wend
if ($Tablevalue2[shift+i1]>x1) then
value3=High[shift]+iRange*0.5
if (shift = 1 and flagval1=0) then
flagval1=1
flagval2=0
endif
$val1[shift]=value3
drawarrowdown(barindex[shift],$val1[shift]) coloured(255,0,255)
endif
endifif (value2>x1) then
i1=1
while ($Tablevalue2[shift+i1]>=x2 and $Tablevalue2[shift+i1]<=x1) do
i1=i1+1
wend
if ($Tablevalue2[shift+i1]<x2) then
value3=Low[shift]-iRange*0.5
if (shift = 1 and flagval2=0) then
flagval2=1
flagval1=0
endif
$val2[shift]=value3
drawarrowup(barindex[shift],$val2[shift]) coloured(0,255,255)
endif
endifshift=shift-1
wend
endif
return06/19/2024 at 12:13 PM #234082Bonjour
Au début du code, vous devrez coder les moyennes mobiles et les conditions pour les flèches haussières et baissières.
1234567891011121314//-----Simple Moving Average 50 periods----------//ma50=average[50](close)ma50UP=roc[3](ma50)>0 //trendUPma50DN=roc[3](ma50)<=0 //trendDN//---Drawing conditionsconditionUPma50 = not ma50DNconditionDNma50 = not ma50UP//-----------------------------------------------////-----Simple Moving Average 20 periods----------//ma20=average[20](close)//---Drawing conditionsconditionUPma20 = open <= ma20conditionDNma20 = open >= ma20//-----------------------------------------------//Ensuite, entrez les conditions dans la partie du code où il vous est demandé de dessiner les flèches.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118// — settingsRISK=1.5CountBars=500// — end of settings//-----------------------------------------------////-----Simple Moving Average 50 periods----------//ma50=average[50](close)ma50UP=roc[3](ma50)>0 //trendUPma50DN=roc[3](ma50)<=0 //trendDN//---Drawing conditionsconditionUPma50 = not ma50DNconditionDNma50 = not ma50UP//-----------------------------------------------////-----Simple Moving Average 20 periods----------//ma20=average[20](close)//---Drawing conditionsconditionUPma20 = open <= ma20conditionDNma20 = open >= ma20//-----------------------------------------------//value10=3+RISK*2x1=80+RISKx2=50-RISKvalue11=value10shift=CountBars-11-1if islastbarupdate and barindex>CountBars thenwhile(shift>=0) doCounter=shiftiRange=0.0AvgRange=0.0for Counter=shift to shift+9 doAvgRange=AvgRange+Abs(High[Counter]-Low[Counter])nextiRange=AvgRange/10Counter=shiftTrueCount=0while (Counter<shift+9 and TrueCount<1) doif (Abs(Open[Counter]-Close[Counter+1])>=iRange*2.0) thenTrueCount=TrueCount+1endifCounter=Counter+1wendif (TrueCount>=1) thenMRO1=CounterelseMRO1=-1endifCounter=shiftTrueCount=0while (Counter<shift+6 and TrueCount<1) doif (Abs(Close[Counter+3]-Close[Counter])>=iRange*4.6) thenTrueCount=TrueCount+1endifCounter=Counter+1wendif (TrueCount>=1) thenMRO2=CounterelseMRO2=-1endifif (MRO1>-1) thenvalue11=3elsevalue11=value10endifif (MRO2>-1) thenvalue11=4elsevalue11=value10endifvalue2=100-Abs(Williams[value11](close)[shift]) // PercentR(value11=9)$Tablevalue2[shift]=value2$val1[shift]=0$val2[shift]=0value3=0if (value2<x2) theni1=1while ($Tablevalue2[shift+i1]>=x2 and $Tablevalue2[shift+i1]<=x1) doi1=i1+1wendif ($Tablevalue2[shift+i1]>x1) and conditionDNma50[shift] and conditionDNma20[shift] thenvalue3=High[shift]+iRange*0.5if (shift = 1 and flagval1=0) thenflagval1=1flagval2=0endif$val1[shift]=value3drawarrowdown(barindex[shift],$val1[shift]) coloured(255,0,255)endifendifif (value2>x1) theni1=1while ($Tablevalue2[shift+i1]>=x2 and $Tablevalue2[shift+i1]<=x1) doi1=i1+1wendif ($Tablevalue2[shift+i1]<x2) and conditionUPma50[shift] and conditionUPma20[shift] thenvalue3=Low[shift]-iRange*0.5if (shift = 1 and flagval2=0) thenflagval2=1flagval1=0endif$val2[shift]=value3drawarrowup(barindex[shift],$val2[shift]) coloured(0,255,255)endifendifshift=shift-1wendendifreturn ma50 as "MA50"coloured("blue")style(line,2),ma20 as "MA20"coloured("orange")style(line,2)06/21/2024 at 4:38 PM #234198Bonjour, merci beaucoup pour votre aide.
J’ai essayé de rentrer le code de telle manière : mais cela ne fonctionne pas, c’est comme si je n’avais rien fait les flèches dans le mauvais sens restent apparentes.
//—–Simple Moving Average 50 periods———-//
ma50=average[50](close)
ma50UP=roc[3](ma50)>0 //trendUP
ma50DN=roc[3](ma50)<=0 //trendDN
//—Drawing conditions
conditionUPma50 = not ma50DN
conditionDNma50 = not ma50UP
//———————————————–//
//—–Simple Moving Average 20 periods———-//
ma20=average[20](close)
//—Drawing conditions
conditionUPma20 = open <= ma20
conditionDNma20 = open >= ma20
//———————————————–//// — settings
RISK=2
CountBars=500// — end of settings
value10=3+RISK*2
x1=30+RISK
x2=30-RISK
value11=value10shift=CountBars-11-1
if islastbarupdate and barindex>CountBars then
while(shift>=0) doCounter=shift
iRange=0.0
AvgRange=0.0
for Counter=shift to shift+9 do
AvgRange=AvgRange+Abs(High[Counter]-Low[Counter])
nextiRange=AvgRange/10
Counter=shift
TrueCount=0
while (Counter<shift+9 and TrueCount<1) do
if (Abs(Open[Counter]-Close[Counter+1])>=iRange*2.0) then
TrueCount=TrueCount+1
endif
Counter=Counter+1
wend
if (TrueCount>=1) then
MRO1=Counter
else
MRO1=-1
endifCounter=shift
TrueCount=0
while (Counter<shift+6 and TrueCount<1) do
if (Abs(Close[Counter+3]-Close[Counter])>=iRange*4.6) then
TrueCount=TrueCount+1
endif
Counter=Counter+1
wend
if (TrueCount>=1) then
MRO2=Counter
else
MRO2=-1
endifif (MRO1>-1) then
value11=3
else
value11=value10
endif
if (MRO2>-1) then
value11=4
else
value11=value10
endifvalue2=100-Abs(Williams[value11](close)[shift]) // PercentR(value11=9)
$Tablevalue2[shift]=value2
$val1[shift]=0
$val2[shift]=0
value3=0if (value2<x2) then
i1=1
while ($Tablevalue2[shift+i1]>=x2 and $Tablevalue2[shift+i1]<=x1) do
i1=i1+1
wend
if ($Tablevalue2[shift+i1]>x1) then
value3=High[shift]+iRange*0.5
if (shift = 1 and flagval1=0) then
flagval1=1
flagval2=0
endif
$val1[shift]=value3
drawarrowdown(barindex[shift],$val1[shift]) coloured(255,0,255)
endif
endifif (value2>x1) then
i1=1
while ($Tablevalue2[shift+i1]>=x2 and $Tablevalue2[shift+i1]<=x1) do
i1=i1+1
wend
if ($Tablevalue2[shift+i1]<x2) then
value3=Low[shift]-iRange*0.5
if (shift = 1 and flagval2=0) then
flagval2=1
flagval1=0
endif
$val2[shift]=value3
drawarrowup(barindex[shift],$val2[shift]) coloured(0,255,255)
endif
endifshift=shift-1
wend
endif
return06/21/2024 at 5:21 PM #23420106/21/2024 at 7:58 PM #234206Oh merci beaucoup je n’avais pas compris que le code était déjà donné modifié par Ivan !
Je vous remercie beaucoup pour votre aide vous êtes au top !
06/24/2024 at 2:05 PM #234292J’ai transformé le code aimablement fourni par Ivan dans un système automatique, cela fonctionne bien sur Backtest, mais dans Demo-Live en cours d’exécution, je reçois le message d’erreur ci-joint.
Quelqu’un sait pourquoi et peut fournir un correctif pour le code s’il vous plaît ?
06/24/2024 at 7:13 PM #234314Le code Algo est exactement le même que celui publié par Ivan ici …
https://www.prorealcode.com/topic/acs-indicator/#post-234082
J’ai commenté drawarrowdown et ajouté SellShort at Market.
J’ai commenté drawarrowup et ajouté Buy at Market.Donc, en gardant à l’esprit ce qui précède, si quelqu’un peut comprendre pourquoi j’ai reçu le message d’erreur ci-joint, ce serait très apprécié.
07/02/2024 at 8:24 PM #234717Bonjour,
merci encore beaucoup pour votre aide sur ma précédente demande.
Je souhaiterai ajouter plusieurs conditions supplémentaire mais n’y ai pas réussi par moi même :
- Pas de flèche baissière si clôture du cours au dessus de la MA50
- Pas de flèche haussière si clôture du cours en dessous de la MA50
J’aimerai aussi paramétrer la pente de la MA 50 en condition d’apparition des flèches, j’ai tenté de toucher au ROC mais cela était infructueux. Je ne sais pas si cela est réellement possible ?
J’apprécierai encore beaucoup votre aide.
Merci,
Bonne journée 🙂
-
AuthorPosts