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
Vous pouvez toujours écrire int crossTime = Time[0] lorsque vous avez eu un cross, puis utiliser la fonction iBarShift en utilisant la variable crossTime pour vérifier le nombre de barres écoulées.
Salut Kalenzo,
Vous pouvez toujours écrire int crossTime = Time[0] lorsque vous avez eu un cross, puis utiliser la fonction iBarShift en utilisant la variable crossTime pour vérifier combien de barres se sont écoulées.
Comment écrivez-vous ce code pour inclure uniquement les "Bear Bars" dans le compte ?
Je comprends l'ibarshift mais cela inclurait toutes les barres depuis la croix. Vous auriez encore besoin d'utiliser un système de comptage comme je l'ai fait pour compter les "Bear Bars" et je crois que c'est là que réside mon problème.
J'ai initialement testé mon code avec ce code .... Ce qui a bien fonctionné.... mais ne s'est pas traduit par le code ci-dessus qui serait réellement listé dans mon EA.
{
//----
double f=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,0);
double s=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,0);
double fp=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,1);
double sp=iMA(NULL,0,7,0,MODE_SMA,PRICE_CLOSE,1);
static bool CrossedUP,CrossedDn;
static int Count=0;
if(f>s && fp<=sp)
{
CrossedUP=true;
CrossedDn=false;
Alert(Symbol()," Crossed UP");
Count=0;
}
else
if(f=sp){
CrossedUP=false;
CrossedDn=true;
Alert(Symbol()," Crossed Down");
Count=0;
}
if(NewBar()==true && f>s || f<s) Count++;
Comment("Crossed UP: ",CrossedUP," Crossed Down: ",CrossedDn," Bars since Cross: ",Count);
//----
return(0);
}Toute autre réflexion serait appréciée.
Merci,
SaxMan
Désolé Omelette,
Cela ne fonctionne pas non plus.
Merci,
SaxMan
Bonjour, essayez ceci.
{
if(MAFastC=MASlowP){
CrossedUp=false;
CrossedDn=true;
BarCount=0;
}
else
if(MAFastC>MASlowC && MAFastP<=MASlowP)
{
CrossedUp=true;
CrossedDn=false;
BarCount=0;
Alert("Crossed Down");
}
if(CrossedDn==true && NewBar()==true && Candle3mP=="Bear")
BarCount++;
if(BarCount>=2 && Candle3mC=="Bear")
{
Alert("Close Long Position");
return(true);
}
else return(false);limite de temps avec le code EA
Je ne parviens pas à placer une limite de temps sur mon EA.
La ligne de code est la suivante
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)
J'ai essayé de changer ce ZERO en 1 ou en 12 et je n'arrive pas à arrêter la transaction... Je voudrais que la transaction expire dans 12 heures, comment puis-je faire ?
J'utilise un backtesting pour m'assurer que cela fonctionne. La fonction d'expiration fonctionne bien avec cela, n'est-ce pas ?
Essayez ceci....
{
string expire_date = "2007.10.22" ;
datetime expirevar = StrToTime(expire_date) ;
si ( CurTime() >= expirevar )
{
Alert ("Version expirée") ;
retour(0) ;
}
// code
return(0) ;
}
Dave
Je ne parviens pas à placer une limite de temps sur mon EA.
La ligne de code est la suivante :
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)
J'ai essayé de changer le ZERO en 1 ou en 12 et je n'arrive pas à arrêter la transaction... Je voudrais que la transaction expire dans 12 heures, comment puis-je faire ?
J'utilise un backtesting pour m'assurer qu'il fonctionne. La fonction expire fonctionne bien avec cela, n'est-ce pas ?Vérifiez le canal d'erreur ;
L'application du délai d'expiration des ordres en attente peut être désactivée dans certains serveurs commerciaux. Dans ce cas, lorsqu'une valeur non nulle est spécifiée dans le paramètre d'expiration, l'erreur 147 (ERR_TRADE_EXPIRATION_DENIED) sera générée.
Le paramètre est une variable 'datetime'. Je ne pense pas que la valeur 12 soit comprise dans la déclaration de cette variable.
Je ne parviens pas à placer une limite de temps sur mon EA.
La ligne de code est la suivante :
OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point, "timetest",16384,0,Green)
J'ai essayé de changer ce ZERO en 1 ou en 12 et je n'arrive pas à arrêter la transaction... Je voudrais que la transaction expire dans 12 heures, comment faire ?
Je suis en train d'utiliser un backtesting pour m'assurer qu'il fonctionne. la fonction expire fonctionne avec cela, n'est-ce pas ?Les délais d'expiration fonctionnent bien avec MT, le seul problème étant que certains courtiers ne les autorisent pas - FXDD en est un. L'heure d'expiration doit être au format date pour que cela fonctionne.
J'ai essayé ceci.
extern int TradeLifeHour=12 ;
extern int TradeLifeMin=00 ;
datetime expirationtime ; (je ne sais pas ce qui va ici)
alors dans start()
expirationtime = CurTime()+TradeLifeHour*60*60+TradeLifeMin*60 ;
et utiliser expirationtime dans la zone 0.
J'ai le dernier code mais je ne sais pas comment le configurer pour que la transaction expire dans 12 heures.
Essayez ceci....
{
string expire_date = "2007.10.22" ;
datetime expirevar = StrToTime(expire_date) ;
si ( CurTime() >= expirevar )
{
Alert ("Version expirée") ;
retour(0) ;
}
// code
return(0) ;
}
DaveJ'ai juste utilisé le code que je t'ai donné. J'ai changé la date en 2006 et l'ai placé à un endroit aléatoire dans Bipoler sur un compte FXDD en argent réel, et ça a marché comme sur des roulettes.
Ou peut-être que c'est trop simple ? Je ne sais pas.
Dave
? ?
ce code ne fait pas expirer chaque transaction ouverte par mon EA 12 heures après son ouverture....