Phoenix est là ! - page 13

 
AZBOfin:
wow, ça devient de plus en plus confus chaque minute

Je propose ce qui suit :

1) tous les calculs effectués sont basés sur l'heure du serveur et non sur l'heure locale.

2) tous les réglages de l'heure dans l'EA doivent être effectués en GMT

3) introduction d'une nouvelle variable appelée ServerOffset

cette variable reflète un décalage entre le fuseau horaire GMT et le fuseau horaire des serveurs.

mon heure locale n'a pas d'importance. Aujourd'hui je suis ici à GMT-7, demain je pourrais être à GMT-4, la semaine prochaine à GMT+2

mais mon serveur de trading est toujours au même endroit. et cela devrait être la base de tous les calculs.

juste mes 2cents - hendrick tu es l'homme, qu'en penses-tu ?

AZBOfin

Je pensais à quelque chose dans le même ordre d'idée... rester simple pour ceux qui, comme moi, ont des problèmes de décalage horaire... Je soutiens la motion pour une variable ServerOffset... j'aimerais savoir comment le faire moi-même. Je ne suis pas encore si loin dans le codage... la seule chose meilleure serait que le code détecte ce dont il a besoin et s'ajuste automatiquement pour que l'utilisateur n'ait pas à tout gâcher.

 
Dossiers :
 
Hendrick:
J'ai besoin d'aide. Les signaux BUY et SELL de Phoenix sont générés par le morceau de code suivant :

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0) ;

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1) ;

.

Hendrick, j'ai toujours l'impression de te suivre sur ces planches.

Firebird v63g contenait un code de tendance, mais il n'a pas été utilisé. Je l'utilise dans un Firebird modiié et il semble fonctionner pour arrêter les transactions pendant les tendances.

extern int DVLimit = 10 ; // inclus par Renato

int TrendUp=0, Trenddown=0 ;

double iFXAnalyser(int FXA_Period, int mode, int shift)// Fonction locale créée par MrPip

if ( (iFXAnalyser(0,MODE_DIV,0)>DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)>0 ))) Trendup=1 ;

si ((iFXAnalyser(0,MODE_DIV,0)<-DVLimit*Point && iFXAnalyser(0,MODE_SLOPE,0)<0 ))) TrendDown=1 ;

Puis pur "&& TrendUp !=1" suivant DealTime==1 dans le trigger SELL. Et "&& TrendDown !=1" suivant DealTime==1 dans le déclencheur BUY.

Une autre méthode consiste à mettre un facteur de contrôle pour RV ! afin de réguler l'activité de trading.

extern double RVI_Factor =50 ; // Facteur 0-200 ajouté à la valeur RVI pour réguler l'activité de trading

Ensuite, dans les déclencheurs SELL et BUY, changez les codes RVI en "RVI(0+(RVI_Factor*Point))" respectivement.

Une autre méthode consiste à mettre une deuxième enveloppe iMA plus grande pour resserrer la zone de trading active afin d'encourager le trading pendant les périodes sans tendance.

extern double PercentLimit = 0.15 ; // 2ème enveloppe supérieure (bande) qui arrête le trading.

int Safe2=0 ;

si ( myMA*(1+(PercentLimit/100))=Ask) Safe2=1 ;

Mettre "&& Safe2==1" dans les triggers SELL et BUY. Vous pouvez attacher un second indicateur de type Firebird réglé sur PercentLimit pour voir la zone de trading active.

J'utilise un seul Firebird avec les trois filtres et il y a en moyenne ~50% de transactions en moins avec un taux de gain de ~90%. Le problème que je rencontre est l'effet des nouvelles sur le marché. J'ai signalé dans ce fil de discussion que les quatre derniers vendredis ont eu un effet négatif important en raison du report des transactions ouvertes du jeudi. Je teste l'élimination de jours et/ou d'heures de trading pour voir si je peux mieux gérer les pertes du groupe historique.

Hendrick, il s'agirait d'un développement plus poussé de votre tableau de résultats des heures de transaction et cela représenterait beaucoup de travail. Mais, j'aimerais avoir un EA qui soit programmable 6/24 et qui puisse étudier son historique, déterminer les mauvaises périodes de trading et arrêter de trader pendant ces périodes, tout en conservant un historique des transactions fantômes pour ces périodes. Lorsque les transactions fantômes historiques sont à nouveau rentables, ces périodes sont rétablies comme de bonnes périodes de trading. C'est un vœu pieux, mais je vais essayer de travailler sur ce sujet ou voir si un codeur peut le faire fonctionner. Pour l'instant, j'utilise votre type de graphique et j'essaie de le faire manuellement.

Beaucoup trop de saisie. Eh bien, c'est ce qui arrive quand on boit du vin pendant un fil de discussion. Si tout cela n'a pas de sens, c'est la faute du vin.

Wackena

 
Hendrick:
J'ai besoin d'aide. Les signaux d'achat et de vente de Phoenix sont générés par le morceau de code suivant :

MA =iMA(NULL,MA_Timeframe,MA_Length,0,MODE_SMA,PRICE_OPEN,0) ;

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1) ;

Quelqu'un sur le fil de discussion Firebird a suggéré la modification suivante :

au lieu de la vôtre :

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1) ;

Ils l'ont changé en :

RVI=iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,0)-iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,1) ;

Ils ont affirmé que cela donnait moins de faux signaux. Est-ce que cela aide ?

 

Signal supplémentaire

Salut Hendrick,

lorsque je me prépare à trader, je regarde toujours un TF plus élevé pour voir la tendance se former.

Peut-être que l'ajout d'un signal additionnel à Phoenix sur le même TF 15 minutes est trop limité ?

Veuillez consulter l'indicateur XO Multi-Time-Frame.

Vous pouvez le régler sur n'importe quel TF, mais pour Phoenix qui travaille sur le M15, je le réglerais sur H4 ou H5.

je l'aurais réglé sur H4 ou peut-être même D1.

Il est peut-être plus flexible d'avoir le réglage du TF dans le panneau des entrées de l'EA afin qu'il puisse être optimisé en cours de route.

Voir l'image ci-jointe avec l'indicateur chargé deux fois ; une pour M15 et l'autre pour H4.

Salutations,

Herbert

PS, j'ai changé l'iRVI de Firebird en iMACD comme l'a rappelé Holyguy7 aujourd'hui, mais bien que cela ait augmenté la vitesse de Firebird en backtesting comme effet secondaire , j'avais l'impression que cela ne supprimait pas les faux signaux.

Dossiers :
 
holyguy7:
Quelqu'un sur le fil de discussion Firebird a suggéré le changement suivant :

au lieu du vôtre :

RVI=iRVI(NULL,0,10,MODE_MAIN,0)-iRVI(NULL,0,10,MODE_MAIN,1) ;

Ils l'ont changé en :

RVI=iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,0)-iMACD(NULL,0,24,52,9,PRICE_CLOSE,MODE_MAIN,1) ;

Ils ont affirmé que cela donnait moins de faux signaux. Est-ce que ça aide ?

Salut Holyguy,

Pour Phoenix version 2, j'utilise maintenant une SMA 120 et une SMA 12 sur un graphique 15M. L'objectif principal est d'empêcher Phoenix de placer des transactions à contre-courant de la tendance. Jusqu'à présent, cela semble fonctionner correctement.

 
HerbertH:
Salut Hendrick,

Lorsque je me prépare à trader, je regarde toujours une TF plus élevée pour voir la tendance se former.

Peut-être que l'ajout d'un signal additionnel à Phoenix sur le même TF 15 minutes est trop limité ?

Veuillez consulter l'indicateur XO (Multi-Time-Frame).

Vous pouvez le régler sur n'importe quel TF, mais pour Phoenix qui travaille sur le M15, je le réglerais sur H4 ou H5.

je l'aurais réglé sur H4 ou peut-être même D1.

Il est peut-être plus flexible d'avoir le réglage du TF dans le panneau des entrées de l'EA afin qu'il puisse être optimisé en cours de route.

Voir l'image ci-jointe avec l'indicateur chargé deux fois ; une pour M15 et l'autre pour H4.

Salutations,

Herbert

PS, j'ai changé l'iRVI de Firebird en iMACD comme l'a rappelé Holyguy7 aujourd'hui, mais bien que cela ait augmenté la vitesse de Firebird en backtesting comme effet secondaire , j'avais l'impression que cela ne supprimait pas les faux signaux.

Hey Herberth,

Voir ma réponse précédente à Holyguy.

 

Phoenix v2

Phoenix version 2.

Changements :

suppression de la divergence (je pense qu'elle ne sert à rien)

suppression de Surf-orders (les performances n'étaient pas bonnes)

remplacé RVI par ce morceau de code :

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1));

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

si(AdMA > 1)

{

AdSELLSignal = true ;

SortOrder = "SELLSignal" ;

}

if(AdMA < -1)

{

AdBUYSignal = true ;

SortOrder = "BUYSignal" ;

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true ;

SortOrder = "BUYSELLSignal" ;

}

Le but de ce code est d'éviter que Phoenix ne place des transactions à contre-courant de la tendance.

Pour le tester :

Utilisez les paramètres du fichier. TF=15. Toutes les paires disponibles.

Dossiers :
 
Hendrick:
Phoenix version 2.

Modifications :

suppression de la divergence (je pense qu'elle ne sert à rien)

suppression de Surf-orders (les performances n'étaient pas bonnes)

remplacé RVI par ce morceau de code :

AdMA=(iMA(NULL,PERIOD_M15,120,0,0,3,1) - iMA(NULL,PERIOD_M15,12,0,0,3,1)) ;

if(Point==0.0001) {AdMA=AdMA*1000;}

if(Point==0.01) {AdMA=AdMA*10;}

si(AdMA > 1)

{

AdSELLSignal = true ;

SortOrder = "SELLSignal" ;

}

if(AdMA < -1)

{

AdBUYSignal = true ;

SortOrder = "BUYSignal" ;

}

if((AdMA > -1) && (AdMA < 1))

{

AdBUYSELLSignal = true ;

SortOrder = "BUYSELLSignal" ;

}

Le but de ce code est d'éviter que Phoenix ne place des transactions à contre-courant de la tendance.

Pour les tests :

Utilisez les paramètres du fichier. TF=15. Toutes les paires disponibles.

Merci, mettez sur les graphiques.

Avez-vous fait un backtest?

 
Yauhen:
Merci, mettez sur les graphiques. faites-vous un backtest ?

Bonjour,

Pas de backtest, seulement des tests en avant.