|
Langage de script Adx |
|
Défintion d'une analyse
Dans le logiciel Aldexia, une analyse est un ensemble de regle d'analyse technique portant sur une theme particulier.
Chaque regle étant definie comme étant haussiere ou baissiere, le résultat de l'analyse d'une valeur
est une somme de point haussier et baissier.
Note : Il est possible de définir des regles comme étant particulierement fiable à l'aide du mot clé strong.
Ces regles "compteront double" dans le résultat de l'analyse.
Structure d'une analyse
Syntaxe génerale d'une analyse Adx.
analyze "Anlyze Name" :
// Déclaration des parametres
begin
// Corps de l'analyse
// Déclaration des variables et des regles
end
Les parametres
Une analyse peut etre parametrée. Cela permet de faire des analyses generiques qui pourront etre executées avec differentes valeurs.
param : nomDuParametre = <expression> "Explication du parametre" ; // Commentaire
Note : Cette fonctionalité est en cours de developpement.
Les variables
var : nomDeLaVariable1 = <expression>, nomDeLaVariable2 = <expression> ; // Commentaire
Les regles haussieres
set "Nom de la regle" as bullish rule : <expression> explain by "Explication de la regle"; // Commentaire
set "Nom de la regle" as strong bullish rule : <expression> ;
Les regles baissieres
set "Nom de la regle" as bearish rule : <expression> explain by "Explication de la regle" ;
set "Nom de la regle" as strong bearish rule : <expression> ; // Commentaire
Exemple d'une analyse
analyze "Anlyze Name" : // Comment
param : nbDays = 14 "Number of days" ; // Comment
param : maxi = 50 + 20 "Max value" , mini = 30 ;
param : isOk = true or 1 > 2 ;
begin
var : foo = nbDays * 5, foo2 = 18 + 2; // Local variables
// Regle baissiere, quand elle est vraie, c'est un signe baissier
set "my bearish rule mane" as bearish rule : rsi(nbDays).workOn(MAX) <= mini or not isOk ;
var : rs = rsi(foo);
// Regle haussiere, quand elle est vraie, c'est un signe haussier
set "my bullish rule mane 01" as bullish rule : rsi(nbDays).workOn(MAX) >= maxi explain by "Explication de la regle" ;
// Regle haussiere très fiable (c'est un exemple :p), lorsqu'elle est vraie, c'est un signe très haussier
set "my bullish rule mane 02" as strong bullish rule : rsi(nbDays).workOn(MAX) - foo > maxi + 5 ;
end
Les expressions
Le logiciel Aldexia permet la manipulation de 2 types de données : les booléens (Boolean) et les nombre réels (Double).
Les opérateurs booléens disponibles sont :
- = : égalité.
- not : opérateur NON.
- and : opérateur ET.
- or : opérateur OU.
Les opérateurs réels disponibles sont :
- + : addition.
- - : soustraction.
- * : multiplication.
- / : division.
- = : égalité.
- <> : inégalité.
- < : inferieur strict.
- <= : inferieur ou égal.
- > : supérieur strict.
- >= : supérieur ou égal.
- % : modulo.
- ^ : puissance.
Les fonctions mathématiques disponibles sont :
- abs(double) : valeur absolue.
- sqrt(double) : racine carrée.
- exp(double) : exponentielle.
- log(double) : logarithme népérien.
- log10(double) : logarithme base 10.
- cos(double) : cosinus.
- sin(double) : sinus.
- tan(double) : tangente.
- acos(double) : arc cosinus.
- asin(double) : arc sinus.
- atan(double) : arc tangeante.
- atan2(double, double) : arc tangeante.
- cosh(double) : cosinus hyperbolique.
- sinh(double) : sinus hyperbolique.
- tanh(double) : tangente hyperbolique.
Les fonctions logiques disponibles sont :
- crossUp(expression1:double, expression2:double) : vrai lorsque la courbe expression1 coupe la courbe expression2 vers le haut.
- crossDown(expression1:double, expression2:double) : vrai lorsque la courbe expression1 coupe la courbe expression2 vers le bas.
- sustain(expression:bool, double) : maintient la valeur 'true' pendant n periodes.
Les fonctions financières disponibles sont :
- quote() : cotation.
- mavg(periode) : moyenne mobile.
- macd(fast, slow, signal) : MACD.
- rsi(periode) : RSI.
Des nouvelles fonctions financières sont en cours de développement.
Exemples d'expressions :
- quote() >= mavg(20)
- quote() < mavg(40) - 20
- crossUp(mavg(50), quote())
- crossUp(mavg(20), mavg(30))
- mavg(50) - mavg(20)
- macd(12,26,9)>0
- crossDown(mavg(20), mavg(30))
- sustain(crossup(mavg(20), mavg(30)), 5)
|
|