Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Ok, j'essaierai quand je serai chez moi, mais alors pourquoi cela fonctionne-t-il déjà avec les ordres d'achat ? Merci.
Vous pouvez être dans un ordre de vente, mais le prix remplit la condition pour le code de changement de stop d'achat, donc il est changé, et ne remplit plus les conditions pour la section de vente, donc il n'est pas changé là.
Big Be
Merci Big Be pour votre aide mais je viens de réaliser que mon ancien code fonctionne mais que je dois activer l'utilisation d'un StopLoss pour les ordres SELL pour qu'ils soient modifiés .
C'est bizarre, je n'ai pas besoin d'activer un TakeProfit pour MoveStopOnce pour travailler avec un ordre BUY mais je dois activer un StopLoss pour MoveStopOnce pour modifier l'ordre SELL.
Oh, eh bien, je vais devoir regarder le code un peu plus profondément pour comprendre celui-là, à moins que vous ne sachiez pourquoi.
EDIT : si vous changez pour ;
if(0 < OrderOpenPrice() - Point * MoveStopTo) {
[/code]
instead of;
[code]
if(OrderStopLoss() < OrderOpenPrice() - Point * MoveStopTo) {
Cela semble bien fonctionner.
Merci
Besoin d'aide avec le calculateur de dimensionnement des postes
OK,
Je suis en train de construire un calculateur de taille de position comme une fonction basée sur la "Formule de Kelly".
(Taux de gain-((1-Win Rate)/(Avg Win/Avg Loss)
J'ai réussi à faire fonctionner l'ensemble du code et des calculs avec des entrées manuelles (externes) pour les variables requises et j'essaie maintenant de faire fonctionner la fonction de manière dynamique en appelant certaines informations du compte (je veux notamment calculer le taux de cohérence gagnant (%), le nombre moyen de pips par transaction gagnante et le nombre moyen de pips par transaction perdante).
J'aurais besoin de toute aide pour faire fonctionner les trois fonctions (WinRate, AvgWin et AvgLoss). J'utilise la variante de saisie manuelle depuis des mois et cela fonctionne très bien. Voici le code complet de cette version (automatisée) jusqu'à présent... lors des tests, je n'obtiens aucune sortie dynamique, tout revient au réglage par défaut (50, 40, 20). Je l'ai configuré comme son propre EA pour le test et la modularisation facile dans n'importe quel EA existant. une fois attaché à n'importe quel graphique, la sortie est imprimée dans l'onglet log/expert. l'utilisation de fractales est intentionnelle de sorte que la croissance maximale du compte (ou la perte minimale) soit exploitée. comme une note la plupart des courtiers offrant la plate-forme MT trader permettent le commerce fractale pour soit mini ou std lots. Cela s'avérera très utile à l'avenir avec la gestion de l'argent qui peut enlever des positions de lot partiel (c'est-à-dire : enlever 25% d'un lot). de toute façon...
Afin de collecter les informations de compte en temps réel dont j'ai besoin, j'essaie de...
1. de compter toutes les transactions
2. de compter les transactions qui sont rentables
etc. etc.
Je ne m'y prends peut-être pas de la bonne façon.
Merci d'avance pour votre aide...
SeaWolf
//+------------------------------------------------------------------+
//| KellyFormula.mq4 |
//+------------------------------------------------------------------+
#property copyright "seawolf"
#property link "seawolf"
//+------------------------------------------------------------------+
//| ENTRÉE D'INFORMATIONS EXTERNES |
//+------------------------------------------------------------------+
extern int MyAccount = 1001 ; //------>>>> ID du compte
extern int ExpertID = 500001 ; //------>>>> Numéro magique pour cette EA
extern double PipValue= 1.00 ; //------>>>> utiliser pour TOUS les calculs
extern double LotCost= 50.0 ; //------>>>> utiliser pour TOUS les calculs
extern double PercentMax= 24.0 ; //------>>>> % maximum du compte avec effet de levier à un moment donné
extern int TradesMax= 3 ; //------>>>> maximum de trades simultanés (exemple : 24%/3 trades = 8% par trade)
extern bool UseKelly= true ; //------>>>> Activation de l'override manuel
extern double ManualLots= 1.0 ; //------>>>> # lots si "UseKelly" est faux
extern double mWinRate= 50.00 ; //------>>>> constance des gains en % (contrôle manuel)
extern int mAvgWin= 40 ; //------>>>> moyenne de pips par trade gagnant (manuel)
extern int mAvgLoss= 20 ; //------>>>> moyenne de pips par trade perdant (manuel)
//+------------------------------------------------------------------+
//| fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0) ;
}
int deinit()
{
//----
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| fonction de démarrage expert |
//+------------------------------------------------------------------+
int start()
{
//----
PositionSize() ;
{
Print("Lots=",PositionSize()," WinRate=",WinRate()," AvgWin=",AvgWin()," AvgLoss=",AvgLoss()) ;
}
Comment("L'heure actuelle est ",TimeToStr(TimeCurrent(),TIME_MINUTES)," GMT ",TimeToStr(TimeCurrent(),TIME_DATE)," ... Win Rate= ",WinRate()," Avg Win= ",AvgWin()," Avg Loss= ",AvgLoss()) ;
//----
return(0) ;
}
//----
//+------------------------------------------------------------------+
//| CALCULER LA TAILLE DE LA POSITION POUR TOUTES LES NOUVELLES TRANSACTIONS |
//+------------------------------------------------------------------+
//------------------------>>>>
double PositionSize()
{
//------------------------>>>> NE PAS UTILISER LA FORMULE KELLY, UTILISER LE TAUX FORFAITAIRE
if(UseKelly == true)
{
double KelyForm = WinRate()-((1-WinRate())/(AvgWin()/AvgLoss())) ;
double PerTrade ;
double Lots ;
si(KelyForm > PercentMax)
{
PerTrade = (PercentMax/10)/TradesMax ;
}
else if(KelyForm < PercentMax)
{
PerTrade = (KelyForm/10)/TradesMax ;
}
sinon si(KelyForm == PercentMax)
{
PerTrade = (KelyForm/10)/TradesMax ;
}
Lots = (PerTrade * AccountBalance()/LotCost) ;
return(MathRound(Lots)/10) ;
}
}
//+------------------------------------------------------------------+
//| COLLECTE DES INFORMATIONS DE COMPTE EN TEMPS RÉEL |
//+------------------------------------------------------------------+
//------------------------>>>>
double WinRate()
{
double Ticket ;
double CountWins = 0 ;
for(Ticket=0;Ticket<OrdersTotal();Ticket++)
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY) ;
if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
//------>>>>
si(OrderType()==OP_BUY))
{
if(OrderClosePrice() >= OrderOpenPrice())
CountWins++ ;
}
sinon, si(OrderType()==OP_SELL)
{
si(OrderClosePrice() <= OrderOpenPrice())
CountWins++ ;
}
}
}
si(CountWins > 0)
return(MathRound(CountWins/OrdersHistoryTotal())*10) ;
sinon
Print("Real Time WinRate not Available") ;
return(mWinRate) ;
}
//------>>>>
//------------------------>>>>
double AvgWin()
{
double Ticket ;
double CountTrades = 0 ;
double CountPips = 0 ;
for(Ticket=0;Ticket<OrdersTotal();Ticket++)
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY) ;
if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
//------>>>>
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice())
CountTrades++ ;
{
si(OrderProfit() >= 0)
CountPips++ ;
}
si(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice())
CountTrades++ ;
{
si(OrderProfit() >= 0)
CountPips++ ;
}
}
}
si(CountPips > 0)
return(MathRound(CountPips/CountTrades)*10) ;
sinon
Print("Real Time AvgWin not Available") ;
return(mAvgWin) ;
}
//------>>>>
//------------------------>>>>
double AvgLoss()
{
double Ticket ;
double CountTrades = 0 ;
double CountPips = 0 ;
for(Ticket=0;Ticket<OrdersTotal();Ticket++)
{
OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY) ;
if(MyAccount==AccountNumber() && OrderSymbol()==Symbol() && OrderMagicNumber() == ExpertID)
{
//------>>>>
if(OrderType()==OP_BUY && OrderClosePrice()<OrderOpenPrice())
CountTrades++ ;
{
si(OrderProfit() < 0)
CountPips++ ;
}
if(OrderType()==OP_SELL && OrderClosePrice()>OrderOpenPrice())
CountTrades++ ;
{
si(OrderProfit() < 0)
CountPips++ ;
}
}
}
si(CountPips > 0)
return(MathRound(CountPips/CountTrades)*10) ;
sinon
Print("Real Time AvgLoss not Available") ;
return(mAvgLoss) ;
}
//---------------------------------------------------------------------+
A : Matricebiz
EDIT: if you change to;
if(0 < OrderOpenPrice() - Point * MoveStopTo) {
[/code]
instead of;
[code]
if(OrderStopLoss() < OrderOpenPrice() - Point * MoveStopTo) {
Il semble que cela fonctionne bien.
MerciVous êtes le bienvenu.
Big Be
Fxpro, demander
Bonjour à tous... Je veux juste demander comment configurer les lots EA dans FxPro....
Je suis confus parce qu'il y a 6 chiffres (1 chiffre supplémentaire), j'ai fixé le S/L et le T/P mais je ne peux pas changer le lot...
toujours 0.4 par transaction... même si je le change en 0.1 ou 0.3
J'ai utilisé 10points 3 EA...
S'il vous plaît aidez-moi ... email moi à hansen_hardrocker@yahoo.co.id
ou je peux vous envoyer un message.
cheerz tous...
Ask_change Lot (fxpro)
Fxpro,demande
Bonjour à tous... Je veux juste demander comment configurer les lots EA dans FxPro....
Je suis confus parce qu'il y a 6 chiffres (1 chiffre supplémentaire). J'ai fixé le S/L et le T/P mais je ne peux pas changer le lot...
toujours 0.4 par transaction... même si je le change en 0.1 ou 0.3
J'ai utilisé 10points 3 EA...
S'il vous plaît aidez-moi ... email moi à hansen_hardrocker@yahoo.co.id
ou je peux vous envoyer un message.
cheerz tous...
Je le veux aussi. Veuillez m'envoyer à omidchart@yahoo.com.
C'est probablement parce que vous avez activé le Money Management dans l'EA.
Thx
C'est probablement parce que vous avez activé le Money Management dans l'EA.
Thx bro...
Je suis novice...
Pouvez-vous modifier cette EA ?
Bonjour aux programmeurs,
J'ai cette EA qui place des ordres stop au-dessus et au-dessous du prix actuel. Ce dont j'ai besoin, c'est d'un EA qui place des ordres à cours limité au lieu d'ordres stop au-dessus et au-dessous du prix actuel. Pouvez-vous modifier cette EA pour qu'elle le fasse tout en gardant les mêmes paramètres ?
Merci d'avance,
Paul