[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 533
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
Je n'arrive pas à comprendre la logique du compilateur. J'ai une fonction. Je déclare une variable externe.
int start ;
en outre, le corps de la fonction
double B()
{
int i=0, k=OrdersHistoryTotal() ;
for (i=k-1 ; i<=k ; i++) {
si (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
si(OrderProfit()< 0) {start=1;}
}
}
}
}
La valeur de la variable de départ doit être mémorisée et assimilée à zéro en cas de besoin. Mais dans ce cas, si OrderProfit()<0 , alors start=1, et si OrderProfit()> 0 , alors automatiquement start=0.
pas de
si OrderProfit()> 0, la variable stockera la même valeur
.
Pouvez-vous me dire où le trouver ? Tout est en anglais.
pas de
Si OrderProfit()> 0, ce qui était dans la variable reste
.
Voici la fonction .
//+------------------------------------------------------------------+
double Balans()
{
int i=0, k=OrdersHistoryTotal() ;
for (i=k-1 ; i<=k ; i++) {
//------------------------------------------------------------
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if (OrderType()==OP_SELL) {
if(OrderProfit()<0) {start=true;}
}
}
//-----------------------------------------------------------
}
Print(" start= ",start) ;
if(lots<0.01) lots=0.01 ;
lots=NormalizeDouble(lots,2) ;
return(lots) ;
}
//+------------------------------------------------------------------+
Voici le journal.
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1 : open #1 sell 0.01 GBPUSD à 2.03190 tp : 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1 : close #1 vendre 0.01 GBPUSD à 2.03190 tp : 2.03100 au prix 2.03210
16:01:36 2007.07.07.13 04:04 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1 : open #2 sell 0.01 GBPUSD à 2.02860 tp : 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1 : close #2 vendre 0.01 GBPUSD à 2.02860 tp : 2.02770 au prix 2.02890
16:01:36 2007.07.07.16 20:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1 : open #3 sell 0.01 GBPUSD à 2.03640 tp : 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1 : close #3 vendre 0.01 GBPUSD à 2.03640 tp : 2.03550 au prix 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1 : open #4 sell 0.01 GBPUSD à 2.04880 tp : 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1 : close #4 vendre 0.01 GBPUSD à 2.04880 tp : 2.04790 au prix de 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1 : open #5 sell 0.01 GBPUSD à 2.05140 tp : 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1 : close #5 vendre 0.01 GBPUSD à 2.05140 tp : 2.05050 au prix 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1 : open #6 sell 0.01 GBPUSD at 2.04840 tp : 2.04750 ok
16:01:36 2007.07.19 17:33 Tester : take profit #6 à 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1 : open #7 sell 0.01 GBPUSD at 2.04810 tp : 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1 : close #7 sell 0.01 GBPUSD at 2.04810 tp : 2.04720 at price 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1 : start=1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1 : open #8 sell 0.01 GBPUSD at 2.06160 tp : 2.06070 ok
16:01:36 2007.07.25 02:12 Tester : prise de profit #8 à 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1 : start= 0
Voici la fonction .
//+------------------------------------------------------------------+
double Balans()
{
int i=0, k=OrdersHistoryTotal() ;
for (i=k-1 ; i<=k ; i++) {
//------------------------------------------------------------
si (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)!=false) {
if(OrderType()==OP_SELL) {
si(OrderProfit()<0) {start=true;}
}
}
//-----------------------------------------------------------
}
Print(" start= ",start) ;
si(lots<0.01) lots=0.01 ;
lots=NormaliserDouble(lots,2) ;
retour(lots) ;
}
//+------------------------------------------------------------------+
Voici le journal.
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.12 00:01 Bars_Trader GBPUSD,M1 : open #1 sell 0.01 GBPUSD at 2.03190 tp : 2.03100 ok
16:01:36 2007.07.12 04:01 Bars_Trader GBPUSD,M1 : close #1 vendre 0.01 GBPUSD à 2.03190 tp : 2.03100 au prix 2.03210
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.13 04:04 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.13 16:04 Bars_Trader GBPUSD,M1 : open #2 sell 0.01 GBPUSD at 2.02860 tp : 2.02770 ok
16:01:36 2007.07.13 08:00 Bars_Trader GBPUSD,M1 : close #2 vendre 0.01 GBPUSD à 2.02860 tp : 2.02770 au prix de 2.02890
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.16 20:00 Bars_Trader GBPUSD,M1 : open #3 sell 0.01 GBPUSD at 2.03640 tp : 2.03550 ok
16:01:36 2007.07.17 00:05 Bars_Trader GBPUSD,M1 : close #3 vendre 0.01 GBPUSD à 2.03640 tp : 2.03550 au prix 2.03630
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.18 16:00 Bars_Trader GBPUSD,M1 : open #4 sell 0.01 GBPUSD at 2.04880 tp : 2.04790 ok
16:01:36 2007.07.18 20:00 Bars_Trader GBPUSD,M1 : close #4 vendre 0.01 GBPUSD à 2.04880 tp : 2.04790 au prix 2.05430
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 04:00 Bars_Trader GBPUSD,M1 : ouvrir #5 vendre 0.01 GBPUSD à 2.05140 tp : 2.05050 ok
16:01:36 2007.07.19 08:00 Bars_Trader GBPUSD,M1 : close #5 vendre 0.01 GBPUSD à 2.05140 tp : 2.05050 au prix de 2.05200
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.19 16:00 Bars_Trader GBPUSD,M1 : open #6 sell 0.01 GBPUSD at 2.04840 tp : 2.04750 ok
16:01:36 2007.07.19 17:33 Testeur : prise de profit n°6 à 2.04750 (2.04760 / 2.04790)
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.20 04:00 Bars_Trader GBPUSD,M1 : open #7 sell 0.01 GBPUSD at 2.04810 tp : 2.04720 ok
16:01:36 2007.07.20 08:00 Bars_Trader GBPUSD,M1 : close #7 vendre 0.01 GBPUSD à 2.04810 tp : 2.04720 au prix de 2.04900
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1 : start= 1
16:01:36 2007.07.25 00:00 Bars_Trader GBPUSD,M1 : open #8 sell 0.01 GBPUSD at 2.06160 tp : 2.06070 ok
16:01:36 2007.07.25 02:12 Testeur : prise de profit n°8 à 2.06070 (2.06040 / 2.06070)
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1 : start= 0
16:01:36 2007.07.26 08:00 Bars_Trader GBPUSD,M1 : start= 0
Montrer le code de façon plus complète. Par exemple, pour l'instant, vous ne pouvez pas voir où cette variable est déclarée.
montrent le code de façon plus complète. Par exemple, pour l'instant, vous ne pouvez pas voir où cette variable est déclarée.
extern int TF ;
extern int TP ;
extern int BARS ;
int externe BarrierMinute ;
extern int Step=0 ;
//--------
extern double ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ;
extern double Decrease=2 ;
extern inttern Wait=2 ;
extern inttern Répéter ;
int externe int MA_Sell ;
externe int Applied_Price_Sell ;
//extern int MAPeriod_1 ;
//extern int Calc=8 ;
extern double Lots=5 ;
//----
statique int PrevTime=0 ;
lots doubles ;
int wait,start,step,repeat ;
datetime openTime=0 ;
double lot=0.1 ;
Bonjour, pouvez-vous me dire comment changer les ordres OP_ BUYSTOP et OP_SELLSTOP dans mon EA pour OP_SELLLIMIT et OP_BUYLIMIT ? J'ai essayé et mes ordres BUYLIMIT sont placés, mais ceux de SELLLIMIT ne le sont même pas, peut-être que je fais quelque chose de mal ?
Expertd10.mq4 (5.82 KB) supprimer
Bonjour mes amis, pouvez-vous m'aider à résoudre ce problème ?
J'écris un Expert Advisor avec un logiciel stoploss, le schéma de base de l'algorithme est le suivant :
int start()
{double x, PreProfit, TekProfit ;
for (x=0 ; x<1 ; x++) //L'opérateur de boucle For (en théorie) devrait être exécuté 1 fois
{PreviousProfit=(-20);}// Assigner une valeur à 1 temps (en théorie) !
TextProfit=OrderProfit();//trouve le profit de l'ordre sélectionné
if (PredPreviousProfit<TekProfit)//si le profit actuel est supérieur au précédent, alors...
{WeakProfit=TekProfit;}// Attribuer une nouvelle valeur à la variable PredCompetitive !
//alors la variable PredCompanyProfit devrait contenir la valeur de profit la plus élevée de tous les temps !
}
Le problème est que la valeur de la variable "x" est remise à zéro à chaque nouveau tic-tac et que la valeur (-20) est attribuée à la variable "PredPreCompetition" à chaque nouveau tic-tac ! Ainsi, tout le sens de l'algorithme est perdu ! La variable "PreProfit" a été conçue pour conserver en permanence la valeur maximale du profit de l'ordre jusqu'à ce que cette valeur soit "réinitialisée" à la clôture de l'ordre.
Quelle est l'erreur ? Peut-être existe-t-il d'autres solutions pour ce problème ? Je vous en suis très reconnaissant à l'avance !
Le problème est que la valeur de la variable "x" est remise à zéro à chaque nouveau tick et que l'affectation de la valeur (-20) à la variable "PredPreprofit" est effectuée à chaque nouveau tick ! Ainsi, tout le sens de l'algorithme est perdu ! La variable "PrevProfit" a été conçue pour conserver en permanence la valeur maximale de profit de l'ordre jusqu'à la "réinitialisation" forcée de cette valeur lors de la clôture de l'ordre.
Quelle est l'erreur ? Peut-être existe-t-il d'autres solutions pour ce problème ? Merci d'avance !
Bonjour, pouvez-vous me dire comment changer les ordres OP_ BUYSTOP et OP_SELLSTOP dans mon EA pour OP_SELLLIMIT et OP_BUYLIMIT ? J'ai essayé de changer les ordres BUYLIMIT mais SELLLIMIT ne le pense même pas, peut-être que je fais quelque chose de mal ?
N'avez-vous pas oublié les offres et les demandes lorsque vous les avez modifiées ?
Qui sait comment rendre un indicateur standard visible dans le testeur de stratégie?