Comment coder ? - page 201

 

Comment améliorer ces résultats ?

Bonjour,

Je suis en train d'écrire mon premier EA qui montre partiellement de bons résultats dans le back testing. Cependant, je n'arrive pas à trouver comment améliorer les mauvais résultats.

Tout d'abord, il a un pourcentage de gain élevé de 86% mais seulement un petit facteur de profit parce que les trades perdants perdent beaucoup plus que les gagnants gagnent !

J'ai mis en place un MM qui n'utilise pas plus de 5% du solde du compte par transaction et sur l'ensemble des transactions actives, pas plus de 11% du solde du compte ne peut être utilisé. Je suis également tous les stop loss.

Il semble que je ferme (OrderClose) les trades gagnants trop tôt et que je coupe les trades perdants trop tard (ou les S/L).

Quelle est une bonne stratégie pour cela ? J'ai implémenté quelque chose comme "ne pas fermer les trades gagnants même s'il y a un signal closebuy" mais cela n'a pas mieux fonctionné non plus !

J'apprécierais tout conseil ! Le rapport complet se trouve ici.

 

le moyen le plus simple d'ajouter un TP de 3 pip pour chaque transaction manuelle ?

j'ai besoin d'ajouter un take profit de 3 pip sur le forex pour chaque transaction entrée manuellement. quel est le moyen le plus simple de le faire ? je n'ai aucune compétence en programmation et je ne trouve pas de valeur par défaut à définir dans les options de metatrader 4.

 

Réinitialisation de l'ordre d' achat stop

Bonjour,

J'ai écrit ce code et bien qu'il se compile, il ne fonctionne pas. (C'est-à-dire qu'il ne supprime pas l'ordre d'achat stop).

Je pensais qu'il y avait peut-être un problème avec l'instruction "for" mais je suis assez nouveau et je ne suis pas sûr.

Si quelqu'un pouvait m'indiquer le problème, je l'apprécierais vraiment.

Merci

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

 
asgard2:
Salut,

J'ai écrit ce code et bien qu'il se compile, il ne fonctionne pas. (c'est-à-dire qu'il ne supprime pas le buystop).

Je pensais qu'il y avait peut-être un problème avec l'instruction "for", mais je suis assez nouveau et je ne suis pas sûr.

Si quelqu'un pouvait m'indiquer le problème, je l'apprécierais vraiment.

Merci

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

[/code]

[CODE] if( StopResetMinutes > 0)

{

total = OrdersTotal() ;

si(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket()) ;

if(PrintComments) Print("Buy Stop Deleted.") ;

}

}

}

}
 
asgard2:
Bonjour,

J'ai écrit ce code et bien qu'il se compile, il ne fonctionne pas. (Cela signifie qu'il ne supprime pas le buystop).

Si vous voulez fermer les ordres d' achat ou de vente, vous devez utiliser la fonction OrderClose().

 
okfar:

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

Vous savez, j'ai travaillé sur ce problème pendant deux jours et vous l'avez résolu en quelques secondes...

Merci, merci, merci, merci... Thankyou et Thankyou...

J'espère que j'ai l'air reconnaissant, parce que je suis excité !

acclamations

 

Chers tous,

J'ai une question simple, je pense.

J'ai un indicateur qui me notifie avec un pop-up (alerte) et je voulais ajouter un son personnalisé (autre que le standard alert.wav).

J'ai remarqué qu'une fois que l'événement se produit et que l'alerte apparaît, peu importe le son "personnalisé" que j'ai programmé dans l'indicateur, Metatrader 4 jouera TOUJOURS le son que j'ai assigné pour l'alerte (par défaut c'est alert.wav, voir le menu MT4 Tools>Options>Events).

Est-il possible de programmer l'indicateur de manière à ce que j'obtienne à la fois une alerte visuelle ET une alerte sonore assignée de manière personnalisée... ?

Merci d'avance...

 

En fait, vous pouvez prendre n'importe quel son et l'appeler alert.wav et remplacer le fichier original.

 

Modification de l'alerte personnalisée

Snowski:
Chers tous,

J'ai une question simple, je pense.

J'ai un indicateur qui me notifie avec une pop-up (alerte) et je voulais ajouter un son personnalisé (autre que le standard alert.wav).

J'ai remarqué qu'une fois que l'événement se produit et que l'alerte apparaît, peu importe le son "personnalisé" que j'ai programmé dans l'indicateur, Metatrader 4 jouera TOUJOURS le son que j'ai assigné pour l'alerte (par défaut c'est alert.wav, voir le menu MT4 Tools>Options>Events).

Est-il possible de programmer l'indicateur de manière à ce que j'obtienne à la fois une alerte visuelle ET une alerte sonore assignée de manière personnalisée... ?

Merci d'avance...

Bonjour Snowski,

Essayez............

if (alert_ON == true) // pour activer ou désactiver l'alerte sonore

{

Alert ("Key in you custom PopUp Here",Symbol(),"-",TimeFrame) ;

PlaySound("custom.wav") ;

}

Je ne suis pas très doué pour le codage mais vous pouvez essayer ceci car cela devrait fonctionner. Pour le .wav personnalisé, vous pouvez entrer votre propre nom de fichier dans le champ (" ??????.wav").

si vous voulez être en mesure d'activer et de désactiver l'alerte, vous devez également ajouter

extern bool alert_ON = True ; // ou false au début du code de votre indicateur.

 

Fonction d' historique

Bonjour,

J'ai ce code ci-dessous. J'essaie de mettre en place un délai entre mes ordres d'arrêt d'achat au cas où ils seraient supprimés. Je n'ai jamais utilisé la fonction historique auparavant.

Je ne parviens pas à le compiler en raison d'une erreur de parenthèses déséquilibrées. Quelqu'un peut-il me dire pourquoi elles sont déséquilibrées ?

Par ailleurs, quelqu'un peut-il me dire si je suis sur la bonne voie ou si je dois chercher une autre façon de procéder ?

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

Print("Access to history failed (",GetLastError(),")"); break;

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Merci