Créer nouvel indicateur sous AlphaTrader

Indicateurs d'AlphaTrader
jfb2207
Messages : 10
Inscription : lun. oct. 24, 2011 7:59 pm

Messagepar jfb2207 » lun. déc. 23, 2013 5:01 pm

Bonjour, j'ai créé un indicateur dans MyAlgos.ind il a été compilé sans erreur , mais je ne sais pas comment faire pour pouvoir l''utiliser sur un graphique (dans la liste des indicateurs je ne le vois pas) Je suis en version demo
Merci de votre aide

jfb2207
Messages : 10
Inscription : lun. oct. 24, 2011 7:59 pm

Messagepar jfb2207 » jeu. janv. 02, 2014 8:44 am

Bonjour et bonne année à tous
N'ayant pas eu de réponse je pense que ce n'était pas clair :
je crée un indicateur dans myAlgos.ind
Je génère la solution (F6) sans erreur
le fichier .cs se trouve bien dans MyAlgos.ind
mais quand j'ouvre alphatrader (je suis en demo mais je pense que cela ne change rien) , j'ouvre un chart , sélectionne f(x)+ pour ajouter un indicateur au chart et dans la liste je ne vois apparaitre que les indicateurs d'Algobox et pas mon nouvel indicateur
Qu'ais je oublié de faire ?
Merci de votre aide
Autre sujet : ce matin l'ouverture d'un chart prend plusieurs minutes (alors que jusqu'à présent c'était instantané ??

Genesis
Messages : 31
Inscription : lun. nov. 04, 2013 8:08 pm

Messagepar Genesis » jeu. janv. 02, 2014 9:11 am

Salut jfb,

La classe de ton indicateur hérite t-elle de la classe Indicator et est bien située dans l'espace des noms MyAlgos.Ind ?

Tu dois avoir quelque chose de cette forme :

namespace MyAlgos.Ind
{
public class LeNomDeTaClasse: Indicator
{

jfb2207
Messages : 10
Inscription : lun. oct. 24, 2011 7:59 pm

Messagepar jfb2207 » jeu. janv. 02, 2014 9:37 am

Merci Genesis , en effet c'était cela le problème
Autre question (je débute vraiment en c#)
Peut-on utiliser core.Sma pour calculer la moyenne d'une variable déjà calculée par une autre fonction de core (core.StdDev en l'occurence) ?
As-tu aussi ce matin des problèmes de lenteur d'ouverture de charts ou celà vient-il de mon ordinateur ?
Merci d'avance pour ton aide

Genesis
Messages : 31
Inscription : lun. nov. 04, 2013 8:08 pm

Messagepar Genesis » jeu. janv. 02, 2014 10:50 am

Désolé mais je n'utilise pas la Library Ta-Lib-Core, d'autres pourront surement t'aider à ce sujet.

Concernant les charts, ras de mon côté ce matin !

jfb2207
Messages : 10
Inscription : lun. oct. 24, 2011 7:59 pm

Messagepar jfb2207 » jeu. janv. 02, 2014 11:10 am

Merci , j'ai réinstallé alphatrader et c'est OK maintenant

Avatar de l’utilisateur
nvitale
Messages : 6614
Inscription : ven. avr. 10, 2009 3:30 pm
Localisation : London
Contact :

Messagepar nvitale » jeu. janv. 02, 2014 11:25 am

Desole pour le temps de reponse. Un partie du staff etait en vacances (meritees) et l'autre a la cave pour avancer sur le connecteur Interactive Brokers.

Le probleme d'ouverture de chart a en effet ete resolu sur la version 2.1.4.1 envoye le 29 decembre. Ce probleme etait du aux jours feries tombant en milieu de semaine (et oui c'etait le premier noel et nouvel an d'AlphaTrader 2 ;-)

Je ne suis pas sur de suivre quels question/problemes tu as encore maintenant. Arrives tu a voir ton indicateur desormais?

jfb2207
Messages : 10
Inscription : lun. oct. 24, 2011 7:59 pm

Messagepar jfb2207 » jeu. janv. 02, 2014 6:16 pm

Oui c'est OK pour voir l'indicateur maintenant , merci
Ma question est maintenant : comment calculer la moyenne d'une variable var déja calculée dans un indicateur (une standard deviation)?
(quand je veux sommer var[0] + var[1] etc .. et diviser par la période le résultat est var[0] / période

Avatar de l’utilisateur
nvitale
Messages : 6614
Inscription : ven. avr. 10, 2009 3:30 pm
Localisation : London
Contact :

Messagepar nvitale » jeu. janv. 02, 2014 6:33 pm

Contrairement a EasyLaguage (ou sur PRT il me semble), mais tout comme sur MT4, une variable que tu declares ne devient pas automatiquement une serie. Sauf si tu declares celle ci en buffer. Si la standard deviaiton est un buffer, tu pourrais acceder a chaque valeur viaa un "this["NomDuBuffer,n]"

Est-ce un indicateur classique? Si oui, on peut eventuellement directement l'ecrire pour le rajouter...

jfb2207
Messages : 10
Inscription : lun. oct. 24, 2011 7:59 pm

Messagepar jfb2207 » jeu. janv. 02, 2014 7:02 pm

Voici le code (la partie principale)
Je veux calculer la moyenne de stadev sur plusieurs périodes
public override decimal[] OnUpdate()
{
IBar[] bars = GetBarSequence(Period);
decimal[] buffer;

// calcul moyenne SMA
int num, si;
double[] inputs = bars.Prices(BarField.Close).Decimal2Double();
double[] ma = new double[inputs.Length];
double[] stadev = new double[inputs.Length];
double[] mastadev = new double[inputs.Length];

int lastIndex = inputs.Count() - 1;

Core.Sma(lastIndex, lastIndex, inputs, Period, out si, out num, ma);

// calcul Standard Deviation
double sum = 0;

int k = Period - 1;
double newres = 0;

if (ComputedMemory < (Period + 1))
{
return new decimal[] { 0.0m, 0.0m, 0.0m };
}

while (k >= 0)
{
if (k <= (inputs.Length - 1))
{
newres = inputs[k] - ma[0];
}
sum += newres * newres;
k--;
}

stadev[0] = Math.Sqrt(sum / Period);


buffer = new decimal[] { (Decimal) stadev[0] };

return (buffer);
}


Revenir vers « Indicateurs »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité