Somme de différentes conditions pour créer un signal de trading
Forums › ProRealTime forum Français › Support ProBuilder › Somme de différentes conditions pour créer un signal de trading
- This topic has 11 replies, 2 voices, and was last updated 3 years ago by Nicolas.
-
-
02/24/2021 at 3:52 PM #162528
Bonjour
Je souhaite créer un code dans lequel je définie plusieurs indicateurs comme dans le code que je vais faire suivre .
je souhaite donner une valeur numérique quand chaque indicateur rempli une condition défini afin de pouvoir créer une addition des valeurs de chaque condition validée pour que cette somme donne un résultat qui permet d’obtenir une flèche validant l’achat ou la vente.
en gros si chaque indicateur a une valeur de 1 et qu’il y a trois indicateurs il me faudra un résultat de 2 pour obtenir une flèche up ou une valeur de -2 pour une flèche down.
C’est ce que j’ai tenté de faire pour un essai sur le code suivant mais ca ne fonctionn
essai addition123456789101112131415161718192021222324252627282930313233343536373839SLIPPAGE1=25indicator2=exponentialAverage[1](close)-exponentialAverage[7](close)indicator3=exponentialAverage[7](close)-exponentialAverage[20](close)indicator4=exponentialAverage[20](close)-exponentialAverage[50](close)indicator5=exponentialAverage[5](close)-exponentialAverage[35](close)indicator6=exponentialAverage[35](close)-exponentialAverage[100](close)indicator7=exponentialAverage[100](close)-exponentialAverage[250](close)cond1 = (close >= CLOSE[1])cond2 = (indicator2 >= 0)cond3 = (indicator3 >= 0)cond4 = (indicator4 >= 0)IF cond1 THENindic1 = 1endifIF cond2 THENindic2 = 1endifIF cond3 THENindic3 = 1endifif indic1 + indic2 +indic3 >=2 thenDRAWARROWUP (barindex,BollingerDown-slippage1)coloured(253,108,158)endifRETURNe pas..
Help si possible
02/24/2021 at 4:16 PM #162532Le problème c’est que tu fais une somme des variables indic1,2,3 mais ces variables ne sont jamais remise à zéro, donc il suffit d’une seule fois pour que la condition soit vrai à l’infini.
Je pense qu’il aurait été plus simple de faire :
123if cond1 + cond2 + cond3 >=2 thenDRAWARROWUP (barindex,BollingerDown-slippage1)coloured(253,108,158)endifdirectement utilisé tes variables booléennes, qui elle sont testés à chaque bougie puisqu’elles ne sont pas enfermés dans une autre condition.
02/24/2021 at 8:24 PM #162546Bonsoir et merci pour la réponse
j’avais bien compris qu’en faisant comme tu me le dis ca fonctionnerait
le problème c’est que je voudrais donner des valeurs différentes a chaque indicateur en mixant les uts grâce a une règle de 3 et que donc il faut que je puisse donner une valeur numérique en fonction de l’ut.
Je m’explique
Dans mes conditions je veux que pour prendre la position soit égale ou sup a une valeur minimum mais cette valeur peut etre obtenue par la somme de valeurs predefinies a savoir
un macd >0 en 5 mn aura forcement plus de valeur qu’en 1 mn donc je veux pouvoir lui attribuer une valeur de 5 par exemple alors que le meme macd en 1 mn aura une valeur de 2 et ainsi de suite
et donc en utilisant la condition citée ci dessus ca ne fonctionne pas
merci
02/25/2021 at 10:09 AM #162595Bien compris, comme je l’explique dans mon précédent message, je pense que ton problème vient du fait que tu ne remets pas à zéro les variables à chaque lecture du code. Donc si indic1 vaut 5 par ce que cond1 est vrai, il vaudra toujours 5 à la bougie suivante, même si cond1 n’est plus vrai.
02/26/2021 at 9:35 AM #16266702/26/2021 at 9:57 AM #162668Ton code est correct, selon ma compréhension de ton besoin, tu dois simplement ajouter ces lignes en tête du code ou juste avant la ligne 26 du code posté ci-dessus :
123indic1 = 0indic2 = 0indic3 = 0Pour la valeur / poids, que doit prendre chaque “indic”, tu le définis comme tu le veux dans tes conditions entre les lignes 27 et 35 (exemple indic1= 10 ; indic2= 3; indic3= 1=)
02/26/2021 at 11:41 AM #16267402/26/2021 at 6:04 PM #162696Bonjour
j’ai un probleme avec un indicateur que je veux mettre en place en groupant plusieurs indics le premier indic c’est celui du superextended créé par nicolas avec le code suivant
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172// --- settings//multiplier=2.236//period=66//type=1 //1 = use ATR , 2 = Use standard deviation , 3 = Use standard error//midperiod=10// --- end of settingstype=max(1,type)if type=1 thenmoy=averagetruerange[period](close)elsif type=2 thenmoy=std[period](close)elsif type=3 thenmoy=ste[period](close)endifprice=(highest[midperiod](high)+lowest[midperiod](low))/2up=price+multiplier*moydn=price-multiplier*moyonce trend=1if close>up[1] thentrend=1elsif close<dn[1] thentrend=-1endifif trend<0 and trend[1]>0 thenflag=1elseflag=0endifif trend>0 and trend[1]<0 thenflagh=1elseflagh=0endifif trend>0 and dn<dn[1] thendn=dn[1]endifif trend<0 and up>up[1] thenup=up[1]endifif flag=1 thenup=price+multiplier*moyendifif flagh=1 thendn=price-multiplier*moyendifif trend=1 thenmysupertrend=dnoffset=moycolor1=0color2=191color3=255elsemysupertrend=upoffset=-moycolor1=255color2=69color3=0endifdrawcandle(mysupertrend,mysupertrend+offset,mysupertrend,mysupertrend+offset) coloured(color1,color2,color3,50)bordercolor(100,100,100,0)if trend=1 and trend[1]<>1 then//drawarrowup(barindex,mysupertrend) coloured(color1,color2,color3)endifif trend=-1 and trend[1]<>-1 then//drawarrowdown(barindex,mysupertrend) coloured(color1,color2,color3)endifcond11=(trend=1 )cond12=(trend=-1 )auquel je souhaite ajouter ce code ci pour donner deux autres conditions mais quand je mets celui ci du tdi le code du super extended ne fonctionne plus correctement
il doit y avoir une contradiction ou une variable ou une appellation identique dans les deux codes qui met le “bordel”
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354//tdiOnce RsiPeriod = 35Once VolatilityBand = 92Once RsiPricePeriod = 5Once TradeSignalPeriod = 19Once TradeSignal2Period = 49r = Rsi[RsiPeriod](Close)Ma = Summation[VolatilityBand](r / VolatilityBand)//delta = 1.6185 * STD[VolatilityBand](r)//Up = Ma + delta//Down = Ma - deltaRsiPriceLine = Average[RsiPricePeriod](r)TradeSignalLine = Average[TradeSignalPeriod](r)TradeSignalLine2 = Average[TradeSignal2Period](r)SLIPPAGE4=10cond40=(MA<=TradeSignalLine)//cond41=(d9>=0)//cond42=(d10>=0)//cond43=(d11>=0)//conditions à la baissecond44=(MA>=TradeSignalLine)//cond45=(d9<=0)//cond46=(d10<=0)//cond47=(d11<=0)IF cond40 THENDRAWARROWUP (barindex,BollingerDown-slippage4)coloured(200,200,0)ENDIFIF cond44 THENDRAWARROWDOWN (barindex,BollingerUp+slippage4)coloured(200,200,0)endifRETURNmerci
03/01/2021 at 9:42 AM #16280203/19/2021 at 1:23 PM #164662Bonjour
pas réussi a faire l indic d’addition , trop compliqué pour moi , pas assez douée.
par contre j’ai un code pour l’indicateur magic trend qui fonctionne sur toutes les uts sans probleme.
je vais mettre le code en dessous .
J’essaye désespérément de le dupliquer pour mettre sur le 5 mn sur le 1 mn et je n’y arrive pas.
1234567891011121314151617if (CCI[50](typicalPrice)>=0) thenmagic=Low[1]-AverageTrueRange[5](close)endifif (CCI[50](typicalPrice)<0) thenmagic=High[1]+AverageTrueRange[5](close)endifif (CCI[50](typicalPrice)>=0 and magic<magic[1]) thenmagic=magic[1]endifif (CCI[50](typicalPrice)<0 and magic>magic[1]) thenmagic=magic[1]endifreturn magicje veux mettre celui ci sur le 1 mn et mettre le 5 mn sur le même
123456789101112131415161718192021222324252627282930313233343536//TimeFRAME= 1mnMAGIC=50TimeFRAME1Mn=1if (CCI[TimeFrame1mn*MAGIC](typicalPrice)>=0) thenmagic1mn=Low[1]-AverageTrueRange[5](close)endifif (CCI[TimeFrame1mn*MAGIC](typicalPrice)<0) thenmagic1mn=High[1]+AverageTrueRange[5](close)endifif (CCI[TimeFrame1mn*MAGIC](typicalPrice)>=0 and magic1mn<magic1mn[1]) thenmagic1mn=magic1mn[1]endifif (CCI[TimeFrame1mn*MAGIC](typicalPrice)<0 and magic1mn>magic1mn[1]) thenmagic1mn=magic1mn[1]endif//TimeFRAME= 5mnTimeFRAME5Mn=5if (CCI[TimeFrame5mn*MAGIC](typicalPrice)>=0) thenmagic5mn=Low[1]-AverageTrueRange[5](close)endifif (CCI[TimeFrame5mn*MAGIC](typicalPrice)<0) thenmagic5mn=High[1]+AverageTrueRange[5](close)endifif (CCI[TimeFrame5mn*MAGIC](typicalPrice)>=0 and magic5mn<magic5mn[1]) thenmagic5mn=magic5mn[1]endifif (CCI[TimeFrame5mn*MAGIC](typicalPrice)<0 and magic5mn>magic5mn[1]) thenmagic5mn=magic5mn[1]endifreturn magic1mn as "Magic1mn Rouge/Vert",magic5mn as "Magic5mn rouge/vert",ExponentialAverage(LinearRegression[MAGIC](close))+ slippageMM as "MM vert/rouge slippageMM as "graphe j’ai donc fait ce code là mais rien a voir avec le 5 mn en comparaison ca marche pas
merci
03/19/2021 at 1:28 PM #164663j avais essayer ca aussi mais ca ne marche pas non plus
1234567891011121314151617if (CCI[1250](typicalPrice)>=0) thenmagic=Low[5]-AverageTrueRange[5](close)endifif (CCI[1250](typicalPrice)<0) thenmagic=High[5]+AverageTrueRange[5](close)endifif (CCI[1250](typicalPrice)>=0 and magic<magic[5]) thenmagic=magic[5]endifif (CCI[1250](typicalPrice)<0 and magic>magic[5]) thenmagic=magic[5]endifreturn magicmerci
03/19/2021 at 1:45 PM #164673On peut désormais utiliser le MTF pour les indicateurs, voir ce sujet : indicateurs MTF pour ProRealTime disponible! programmation MTF pour ProBuilder
-
AuthorPosts
Find exclusive trading pro-tools on