Bonjour à tous
Je me permets d’intervenir pour la premiere fois, mais je connais ce forum que je trouve genial.
J’ai trouvé ici un screener interessant…donnant un signal long ou short.
Je voudrais l’utiliser mais impossible de backtester les screener. Avez vous une idée? est ce possible à part manuellement?
Vous devez le convertir en stratégie.
Ceci est un screener qui indique un croisement haussier entre deux moyennes mobiles
FastAVg = Average[5](close)
SlowAvg = Avergae[20](close)
x = FastAvg CROSSES OVER SlowAvg
SCREENER [x]
C’est une stratégie qui permet le débogage, avec GRAPH, du screener mentionné ci-dessus
FastAVg = Average[5](close)
SlowAvg = Average[20](close)
x = FastAvg CROSSES OVER SlowAvg
GRAPH FastAvg
GRAPH SlowAvg
GRAPH close
GRAPH x
buy at -close limit //ligne inutile, il sert seulement à avoir au moins un BUY
thanked this post
Bonjour
MErci pour votre réponse.
Le screener avait developpe un indicateur 0/1 afin de savoir si ‘lon pouvait entrer long ou short
JE vais devoir l’adapter un peu…il se peut que je vous redemande de l’aide ; en effet ce n’est pas ma specialité
MErci pour votre réponse rapide
BOnjour,
Je n’y arrive pas.
Le code que je souhaite adapter est celui de Gabre que j’ai trouvé dans la librairie.
J’ai mis ci-dessous l’original puis ma proposityion d’adapatation mais c’est NOK.. si quelqu’un peut m(‘aider
//basic definitions
conversion=(highest[9](high)+lowest[9](low))/2
base=(highest[26](high)+lowest[26](low))/2
//conditions for conversion/base positioning
c10=conversion > base
c11=conversion crosses over base
c12=conversion < base
c13=conversion crosses under base
//spanA and spanB future value
spanA=(conversion+base)/2
spanB=(highest[52](high)+lowest[52](low))/2
//spanA and spanB present value
maxspan=max(spanA[26],spanB[26])
minspan=min(spanA[26],spanB[26])
//conditions for future span A and B positioning
c20=spanA > spanB
c21=spanA crosses over spanB
c22=spanA < spanB
c23=spanA crosses under spanB
//conditions for present span A and B positioning
c30=close>maxspan
c31=close crosses over maxspan
c32=close<minspan
c33=close crosses under minspan
//conditions for lag line positioning
maxspanlag=max(spanA[52],spanB[52])
minspanlag=min(spanA[52],spanB[52])
c40=close>maxspanlag
c41=close crosses over maxspanlag
c42=close<minspanlag
c43=close crosses under minspanlag
clong1=c11 and c20 and c30 and c40
clong2=c10 and c21 and c30 and c40
clong3=c10 and c20 and c31 and c40
clong4=c10 and c20 and c30 and c41
cshort1=c13 and c22 and c32 and c42
cshort2=c12 and c23 and c32 and c42
cshort3=c12 and c22 and c33 and c42
cshort4=c12 and c22 and c32 and c43
long=clong1 or clong2 or clong3 or clong4
short=cshort1 or cshort2 or cshort3 or cshort4
SCREENER [long or short](long as "long")
//basic definitions
conversion=(highest[9](high)+lowest[9](low))/2
base=(highest[26](high)+lowest[26](low))/2
//conditions for conversion/base positioning
c10=conversion > base
c11=conversion crosses over base
c12=conversion < base
c13=conversion crosses under base
//spanA and spanB future value
spanA=(conversion+base)/2
spanB=(highest[52](high)+lowest[52](low))/2
//spanA and spanB present value
maxspan=max(spanA[26],spanB[26])
minspan=min(spanA[26],spanB[26])
//conditions for future span A and B positioning
c20=spanA > spanB
c21=spanA crosses over spanB
c22=spanA < spanB
c23=spanA crosses under spanB
//conditions for present span A and B positioning
c30=close>maxspan
c31=close crosses over maxspan
c32=close<minspan
c33=close crosses under minspan
//conditions for lag line positioning
maxspanlag=max(spanA[52],spanB[52])
minspanlag=min(spanA[52],spanB[52])
c40=close>maxspanlag
c41=close crosses over maxspanlag
c42=close<minspanlag
c43=close crosses under minspanlag
clong1=c11 and c20 and c30 and c40
clong2=c10 and c21 and c30 and c40
clong3=c10 and c20 and c31 and c40
clong4=c10 and c20 and c30 and c41
cshort1=c13 and c22 and c32 and c42
cshort2=c12 and c23 and c32 and c42
cshort3=c12 and c22 and c33 and c42
cshort4=c12 and c22 and c32 and c43
GRAPH
Merci par avancec pour votre aide à tous
Je n’ai pas regardé en détail le code et où pourrait être le problème, mais cela me fait penser à ce sujet: ASTUCE Comment tester l’efficacité d’un screener
Dans la version d’origine, supprimez uniquement la ligne 46 et ajoutez les éléments suivants:
GRAPH long
GRAPH short
buy at -close limit
remplacez les variables que j’ai utilisées avec GRAPH (vous pouvez indiquer jusqu’à 5 instructions GRAPH) avec celles que vous souhaitez vérifier.
Merci pour vos réponses
J’ai essayé de coder une regle moi même mais ca ne marche pas
Si je veux dire, des que le signe est long ou short, il faut entrer en position sur 1 lot faire + 10pips en objectif & – 5 en stop je ne sais pas dui tout comment le coder.
Pourriez vous m’aider svP
C’est le support ProScreener, pour la stratégie vous devez ouvrir un nouveau sujet dans le support de ProOrder.
Merci.
Bonsoir,
je viens de voir dans ce message le mot débogage. Ce qui m’a amené ici, c’est ce mot : comment peut-on déboguer le code avec ProRealTime ?
Uniquement avec la sortie Graph ?
Merci
Jean-Marie
En effet, GRAPH est la seule instruction pour débugger / débogger , mais uniquement dans les backtests.
Pour les indicateurs, on ajoutera la variable à visualiser dans l’instruction RETURN, et pour les screeners, on peut visualiser la valeur d’une variable en l’affichant en tant que critère de tri.
Merci pour vos réponses. Vraiment pas pratique. Est-ce que la version qui est en préparation sera modifié à ce niveau là ?
Edit : il est vrai que le code est tout de même relativement simple et généralement pas très long. Tout au moins pour ce que j’ai pu voir jusqu’à aujourd’hui.
A ma connaissance, il n’y a rien de prévu en complément. Au fil du temps, on s’y habitue, mais le mieux serait quand même d’avoir une vrai console, rien que faire un print qui accepte les string nous simplifierai vraiment la vie 🙂