Excellent EA en backtest ! - page 108

 

Résultats des démonstrations de la semaine dernière

Bonjour à tous.

C'est vers vendredi dernier que j'ai découvert un bug potentiel lors du calcul des heures bloquées.

J'utilise FXDD avec un réglage de GMT=3. Le morceau de code suivant devrait calculer l'heure actuelle (gmt).

int hadj=TimeHour(CurTime())-GMT ;

cependant, à 00:00 heure FXDD, cette fonction renvoie -3, à 01:00 elle renvoie -2 et à 02:00 elle renvoie -1. or les valeurs correctes devraient être 21, 22, et 23.

C'est la raison pour laquelle mes heures bloquées de 23:00 gmt pour les paires JPY n'ont jamais été bloquées.

J'ai ajouté ce code pour compenser cette erreur :

if (hadj<0) hadj = hadj + 24 ;

en tout cas, voici les résultats de la semaine dernière... rien de spectaculaire cependant.

mon compte live n'a pas été très performant non plus.

ce qui m'énerve le plus, c'est que les backtests après coup s'avèrent être des gagnants absolus sur toute la ligne. les trades gagnants du backtest n'ont jamais été exécutés pendant le trading en direct et les trades perdants pendant le trading en direct ne se sont jamais manifestés pendant les backtests. c'est un monde méchant.

AZBOfin

 

Aragorn, utilisez-vous les paramètres par défaut de votre version 1.0 R2, ou avez-vous changé quelque chose ? le risque, les lots etc. n'ont pas d'importance de toute façon, je m'interroge plutôt sur les filtres, les paramètres SL et autres.

J'ai ajouté votre EA-révision à partir d'aujourd'hui (j'ai manqué le jour de trading d'hier) à mon portefeuille live pour les EUR$. J'espère qu'il pourra regagner ce que la version "originale" a perdu.

AZBOfin

BTW : bon travail avec la programmation en effet

 
Aaragorn:
Je dois vous dire que j'aime toujours autant me réveiller le matin et voir que cette EA a gagné de l'argent pendant que je dormais.

Je suis en train de faire une comparaison entre mon compte live qui ne fonctionne que sur la version alerteuro et le compte démo sur lequel j'autorise la version alerteuro ET usdcad ET usdjpy que j'ai posté plus tôt dans le fil de discussion... Des trois, l'usdjpy est de loin le plus actif, et il est aussi de loin le moins rentable, il semble faire à peine plus que le seuil de rentabilité et perd parfois beaucoup. Je voulais voir si les trois paires ensemble feraient plus ou moins que juste l'euro lui-même ferait qui est le résultat le plus fiable que je vois jusqu'ici.

Eh bien, les trois paires ensemble ont presque fait exploser mon compte de démonstration pour le ramener au niveau de mon compte réel... elles sont nulles ensemble ! Je pense que je vais continuer à laisser la version euroalert fonctionner dans la démo à risque=1 et dans mon compte réel à risque=.25 Le solde de mon compte réel ce matin est de $315.16 et dans ma démo il est de $322.63. C'est presque pareil maintenant, je verrai dans la démo si je peux tolérer un risque plus élevé ?

En attendant... sur la piste du développement...

J'ai quelques problèmes avec la création d'un histogramme avec les données de support et de résistance. Il est évident que je ne maîtrise pas les boucles et les tableaux. J'essaie de faire en sorte qu'une boucle parcoure un tableau et si elle correspond à une valeur déjà présente dans le tableau, elle incrémente le compte et passe à la valeur suivante et si elle ne trouve pas de correspondance, elle ajoute la valeur à la fin du tableau. Cela s'avère d'une difficulté dégoûtante. Tout d'abord, le tableau ne permet que les entiers, je dois donc convertir la valeur du niveau de prix en un entier. Il doit passer par deux conversions de type de données pour le faire....THEN... il doit s'incrémenter dans la boucle, ce qu'il ne fait apparemment pas. Il boucle bien mais il n'incrémente pas les valeurs du test....oy vey. Où est le magicien du codage quand j'en ai besoin ?

#define SIZE 50 // must be set to match NumberOfBars

static int Index = 0;

static double Opens[ SIZE ] = { 0 };

static int TotalOMatches[ SIZE ] = { 0 };

static double OpenHistogram[2][ SIZE ] = { 0 };

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

string Openhist=DoubleToStr(Opens,4*10000);

int Ohist=StrToInteger("Openhist");

Print("Ohist: ",Ohist," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[Ohist][TotalOMatches])

{

level++;

matches++;

Print("Ohist: ",Ohist," ",TotalOMatches);

//Print("cycle: ",i5);

if(OpenHistogram[level][matches] != OpenHistogram[Ohist][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[Ohist][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[Ohist][TotalOMatches]);

}

i5--;

}

}

Quand je lance ce programme, il imprime

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

.....

environ un million de fois.

Si quelqu'un peut m'aider à le faire fonctionner, n'hésitez pas à le faire. Ca me fait tourner en bourrique.

 
AZBOfin:
Aragorn, utilisez-vous les paramètres par défaut pour votre version 1.0 R2, ou avez-vous changé quelque chose ? Le risque, les lots, etc. n'ont pas d'importance de toute façon, je m'interroge plutôt sur les filtres, les paramètres SL et autres.

J'ai ajouté votre révision de l'EA à partir d'aujourd'hui (j'ai manqué le jour de trading d'hier) à mon portefeuille en direct pour les EUR$. J'espère qu'il pourra regagner ce que la version "originale" a perdu.

AZBOfin

BTW : bon travail avec la programmation en effet

Merci, j'aurais quand même besoin d'un peu d'aide pour le codage. Vous connaissez quelqu'un qui pourrait m'aider ? En fait, je me vois coder comme Mickey dans Fantasia quand le magicien a le dos tourné.

C'est ce que j'utilise en ce moment. J'ai fermé tout le reste. Oui, c'est un monde méchant, mais je remarque que je joue toujours le jeu. C'est étonnant de voir à quel point mon attitude envers le monde change lorsque je profite de la situation, par opposition à ce qu'il en est lorsque j'en retire des bénéfices. Mes efforts se concentrent maintenant sur l'amélioration de la gestion de l'argent et des décisions. J'espère que je pourrai faire fonctionner le support/résistance d'ici peu.

Dommage que je n'ai pas attrapé cette vague... mais encore une fois, ce système ne gagne pas en attrapant les grands mouvements. Du moins, de la manière dont je l'ai conçu, il cherche juste 7 pips sur un reverse à forte probabilité lorsque le cci est bon. Ce dont je dois me souvenir, c'est que 7 pips 3 fois par jour, c'est 21 pips par jour, et si cela se produit tous les jours ou presque avec un certain degré de fiabilité, c'est un excellent système qui peut être utilisé comme levier pour gagner des millions en seulement quelques mois. Je dois garder l'objectif en ligne de mire et ne pas me laisser distraire par l'attrait du marché. Tout ce flottement est inutile si vous ne pouvez pas le capturer avec un certain degré de fiabilité. Je vois plus de fiabilité dans ce système tel qu'il est que dans tout ce que j'ai étudié jusqu'à présent, c'est pourquoi je continue à travailler dessus.

 

Je pense que je vois un modèle.

La dernière fois qu'il y a eu un grand mouvement comme celui de ce matin...

le programme a pris trois positions parmi les retournements de tendance qui ont suivi. Il a pris une position courte et deux positions longues.

Il a gagné la position courte qui descendait du pic du grand mouvement. Il a perdu la première position longue, puis a gagné la seconde. La seconde était en fait meilleure en termes de retournement (évidemment).

donc...

Je pense que pour le moment, jusqu'à ce que je puisse le programmer pour qu'il reconnaisse ces conditions, je l'empêche manuellement de prendre une position longue en ce moment. parce que la première position longue qu'il pourrait prendre a, d'après ce que je peux voir du dernier cycle, une probabilité plus faible que la deuxième position longue qu'il pourrait prendre. Je vais donc dès maintenant bloquer manuellement les positions longues et surveiller cela. Je n'ai pas besoin d'empêcher trop de perdants pour faire une différence ici.

Je vois également que cela se négocie maintenant juste en dessous de l'endroit où j'ai tracé une ligne de résistance à 1,2781. Mince, j'aimerais savoir comment rendre mon histogramme de support et de résistance disponible pour ce code...oy

 

ok j'ai ajouté

break ; à cet endroit du code que je viens de poster...

}

i5--;

break;

}[/PHP]

now it's printing the second variable of the array...that's the matches

[PHP]2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

maintenant si je peux comprendre comment obtenir les niveaux à travers leur conversion de type de données et l'incertitude....hum

 

Bonjour Aragorn

Je joue également avec ce système mais j'ai des résultats différents.

Pourriez-vous avoir la gentillesse de faire une capture d'écran d'un jour des derniers jours ?

Je me demande également si ma fenêtre d'alarme ressemble à une alerte cybernétique - vente d'eur/usd mais le système vend du gbp/usd ? (j'ai 2 fenêtres en cours eur/usd, gbp/usd).

Merci pour votre aide et vos informations

begu

Dossiers :
 
forex2006:
Bonjour Aragorn

Je joue également avec ce système mais j'ai des résultats différents.

Pourriez-vous avoir la gentillesse de faire une capture d'écran d'un jour de ces derniers jours ?

Je me demande également si ma fenêtre d'alarme ressemble à une alerte cyberia - vente eur/usd mais le système vend gbp/usd ? (j'ai 2 fenêtres en cours eur/usd, gbp/usd).

merci pour l'aide et les informations

bégu

Comprenez que ce que j'ai construit avec des alarmes est spécifiquement pour la paire eurusd exclusivement. Il pourrait être changé dans le code pour dire gbpusd mais je ne recommande pas d'exécuter la version euroalert sur une autre paire que celle pour laquelle elle est optimisée.

Je ne sais pas ce que vous espérez gagner en postant une capture d'écran. En fait, je suis trop occupé en ce moment par le développement pour le faire pour vous, je suis désolé. Peut-être plus tard, quand je comprendrai mieux ce que vous espérez apprendre de cela.

ok voilà...pour ce que ça vaut.

Dossiers :
aleerteuro.gif  61 kb
 

Ok, je pense que j'ai appris une leçon sur le fait d'essayer d'améliorer manuellement les trades... la démo a pris une position longue et l'a gagnée et mon compte réel ne l'a pas fait parce que j'avais des trades longs bloqués... oy lol, je vais revenir en arrière pour autoriser les positions longues et courtes.... preuve que je ne suis pas un génie du trading. une autre théorie s'est avérée moins qu'impeccable...

je suis en train de faire fonctionner les tableaux et les boucles mieux maintenant.

fyi,

http://www.212movie.com/

 

Ok, j'ai résolu les problèmes de conversion de données. J'ai fait en sorte qu'une boucle précédente charge toutes les valeurs des prix *10000 dans un tableau interger avant que le code n'exécute cette boucle. Maintenant, j'appelle simplement le tableau interger dans celle-ci.

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

//Print("bar: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[OpensInt][TotalOMatches])

{

level++;

matches++;

//Print("Ohist: ",Ohist," ",TotalOMatches);

Print("cycle: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

if(OpenHistogram[level][matches] != OpenHistogram[OpensInt][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[OpensInt][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[OpensInt][TotalOMatches]);

}

i5--;

break;

}[/PHP]

this is the output...

[PHP]2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 1 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 2 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 3 Ohist: 12725 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 4 Ohist: 12722 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 5 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 6 Ohist: 12713 1

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 7 Ohist: 12684 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 8 Ohist: 12679 4

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 9 Ohist: 12666 2

Un problème subsiste...

vous pouvez voir que les barres dans les boucles 1,2 et 5 sont toutes identiques. Donc, bien que cela gère maintenant les données extraites, cela ne fait toujours pas un histogramme consolidé qui n'a qu'une entrée pour chaque niveau de prix.....

Quelque chose dans la partie qui est censée ajouter les valeurs uniques à la fin de l'histogramme ne fonctionne toujours pas....huummm... Je ne suis pas familier avec les tableaux et encore moins avec les tableaux à deux dimensions. Pour quelqu'un qui sait comment faire, ce que je fais mal est probablement très évident.