katsParticipant
Junior
Bonjour, je souhaiterai donner une date d’utilisation maxi pour un indicateur créé . A savoir j’envoi un itf aujourd’hui pour un essai mais je ne veux plus que l’indicateur fonctionne au delà d’une date choisie.
comment programmer cela svp? merci
Avec une condition basée sur DATE.
katsParticipant
Junior
bonjour et merci pour la réponse. je peux avoir un exemple svp je n’ai jamais fait cela et je suis pas franchement douée dans la programmation
katsParticipant
Junior
Bonjour,
en fait je pensais que prorealcode était le site de développement appartenant à prt et non un site indépendant ce qui m’explique le fait de ne pas avoir eu d’exemple sur ma demande de code.
je m’en excuse.
j’ai un peu avancé sur ma demande et voilà ce que j’ai créé et que j’ai rajouter au dessus du code de mon indic:
license= 20210130
// definition de la license
licence =20210130
lic=date
if lic<=licence then
endif
mon indicateur sert a mettre une flèche d’entrée en position à l’achat comme a la vente et comprend plusieurs indicateurs, chacun generant une condition de validation.
Lorsque tous les indicateurs valident leur condition le système met une flèche d’entrée rouge ou bleue. Ca fonctionne très bien mais je voudrais pouvoir dans un second temps commercialiser cet indicateur avec des dates d’abonnement validées d’ou ma demande initiale.
Le probleme c’est qu’avec ce code que j’ai créé les flèches continuent a apparaitre et il n’y a donc pas de blocage en fonction de la date de péremption .
Est ce le fait que j’ai plusieurs indics dans cet indic et que le code ne soit mis qu’une fois ou est ce un probleme de code?
merci d’avance
cdlt
En effet, on ne peut pas connaître la date actuelle avant d’atteindre la dernière bougie, soit celle du présent.
Si tu souhaites ne pas afficher les signaux du passé, alors il faut partir de la bougie actuelle pour afficher les signaux, que l’indicateur soit autorisé ou non.
Avec des variables en tableaux, qui enregistrent tes signaux, à la première lecture du code, on pourrait créer une boucle dans l’historique pour afficher les signaux contenus dans le tableau, uniquement si la date courante est inférieur à “licence”.
Pour cela, il faudrait à minima que tu postes un exemple de signaux, et je modifierai pour te faire comprendre.
katsParticipant
Junior
j’ai pas compris grand chose mais prenant l’exemple du code du step rsi que tu as créé et que j’ai modifié pour qu’il me colore le fond en fonction de mes criteres
on y mettant mon code je voudrais qu’il fonctionne mais qu’il s’arrete au 10 fevrier par exemple donc voila ce que j’ai fait en collant mon histoire de license avant
license= 20210210
// definition de la license
licence =20210210
lic=date
if lic<=licence then
endif
//PRC_StepRSI | indicator
//25.12.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//Converted from MT4 version
// --- parameters
//RSIPeriod=14
//StepSizeFast=5
//StepSizeSlow=15
// ---
Price=customclose
if barindex>RSIPeriod then
RSIBuffer=RSI[RSIPeriod](Price)
smax=RSIBuffer +2.0*StepSizeFast
smin=RSIBuffer -2.0*StepSizeFast
trend=trend[1]
if (trend[1]<=0 and RSIBuffer>smax[1]) then
trend=1
endif
if (trend[1]>=0 and RSIBuffer<smin[1]) then
trend=-1
endif
if(trend>0) then
if(smin<smin[1]) then
smin=smin[1]
endif
result=smin+StepSizeFast
endif
if(trend<0) then
if(smax>smax[1]) then
smax=smax[1]
endif
result=smax-StepSizeFast
endif
FastBuffer = result
smaxSlow=RSIBuffer +2.0*StepSizeSlow
sminSlow=RSIBuffer -2.0*StepSizeSlow
trendSlow=trendSlow[1]
if (trendSlow[1]<=0 and RSIBuffer>smaxSlow[1]) then
trendSlow=1
endif
if (trendSlow[1]>=0 and RSIBuffer<sminSlow[1]) then
trendSlow=-1
endif
if(trendSlow>0) then
if(sminSlow<sminSlow[1]) then
sminSlow=sminSlow[1]
endif
result=sminSlow+StepSizeSlow
endif
if(trendSlow<0) then
if(smaxSlow>smaxSlow[1]) then
smaxSlow=smaxSlow[1]
endif
result=smaxSlow-StepSizeSlow
endif
SlowBuffer = result
endif
// Définition des paramètres du code
//DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
//indicator1, indicator2, ignored, ignored, ignored, ignored = CALL "stepRSI"[14, 5, 15](close)
slippage=4
indicator1= RSIBuffer
indicator2= FastBuffer
indicator3= SlowBuffer
c1 = (indicator1 >= 40)
//ignored, indicator3, indicator4, ignored, ignored, ignored = CALL "stepRSI"[14, 5, 15](close)
c2 = (indicator2 >= indicator3)
c3= (indicator3 >= 40)
IF c1 AND c2 AND c3 THEN
backgroundcolor (176,242,182)
ENDIF
// Conditions pour fermer une position acheteuse
indicator1= RSIBuffer
indicator2= FastBuffer
indicator3= SlowBuffer
c6 = (indicator1 <= 60)
//ignored, indicator3, indicator4, ignored, ignored, ignored = CALL "stepRSI"[14, 5, 15](close)
c7 = (indicator2 <= indicator3)
c8= (indicator3 <= 60)
IF c6 AND c7 AND c8 THEN
backgroundcolor (254,191,210)
ENDIF
RETURN RSIBuffer as "RSI", FastBuffer as "Fast Step RSI", SlowBuffer as "Slow Step RSI", 50 as "level 50", 30 as "level 30", 70 as "level 70"
katsParticipant
Junior
pardon j’ai oublié le merci
En fait c’est plus simple que je ne le pensais, tu n’as pas bien encadré le code dans la condition, c’est pour cette raison que la date limite de fonctionnement ne marche pas :
if lic<=licence then
//c'est ici qu'il faut coller le code à exécuter (soit ton indicateur)
endif
Merci de poster le code avec le bouton approprié la prochaine fois.
katsParticipant
Junior
merci pour la reponse
j ai pas compris le code avec le bouton a poster??
j’ai fait quelque chose qui ne va pas mais je ne sais pas quoi
cdlt
katsParticipant
Junior
ca y est ca fonctionne
en fait il fallait que je termine en bas par endif et encore endif car ayant 5 indicateur dans le calcul le dernier endif manquant le ode refusait de se fermer
merci beaucoup
cdlt
katsParticipant
Junior
c’est pas méchant mais franchement au niveau ergonomie votre site est vraiment compliqué
là je veux ouvrir un nouveau sujet avec des questions sur le forum en Français
ca fait deux heures que je cherche et j’ai toujours pas trouvé????