Bonjour,
Auriez-vous une idée pour imposer un temp mini entre 2 prises d'ordre ?
J'ai essayé ça, mais ça ne fonctionne pas !
Merci pour vos idées
if(Ordertotal()==0)
CheckForOpen(); //fonction avec conditions d'ouverture de position
else
CheckForClose(); //fonction avec conditions de fermeture de position
if(OrdersTotal()==1)
{if(TimeCurrent()-LastOrderOpenTime<=time)return(0); // time=variable à entrer dans les paramètres
CheckForOpen();
else
CheckForClose();}
Affichage des résultats 1 à 4 sur 4
-
14/07/2010, 17h36 #1Membre lvl 5
- Date d'inscription
- July 2009
- Messages
- 10
- Pouvoir de réputation
- 6
Comment imposer un temp entre 2 ordres ?
-
16/07/2010, 12h50 #2Nouveau membre
- Date d'inscription
- May 2010
- Messages
- 3
- Pouvoir de réputation
- 5
Bonjour,
Je ne suis pas expert en mql4 et je ne voit pas trop ce que tu cherche, cependant, il y a une fonction qui permet d'imposer un moment de pause dans ton programme, il s'agit de la fonction sleep(temps en milisecondes)
void Sleep(int milliseconds)
Moi.
-
16/07/2010, 14h46 #3Membre Star
- Date d'inscription
- November 2008
- Localisation
- quebec
- Messages
- 1 485
- Pouvoir de réputation
- 25
voila ce que j'utilise dans tous mes EA et ca marche très bien
bool EachTickMode = True;
extern int Temporisation = 3; // Délai (compté en nombre de bougies) avant de pouvoir re-passer un ordre
double Delai;
///////////////////////////////////// a mettre avant init ///////////////////////////////
//------------------------------
double Lots,Lotsbuy,Lotssell;
//+------------------------------------------------------------------+
//| Calcul du délai de carence |
//+------------------------------------------------------------------+
void Tempo()
{
if (Delai <= CurTime()) Delai=0;
return;
}
void SetDelai()
{
Delai=CurTime()+(Temporisation*Period()*60);
return(0);
}
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
///////////////////////////// dans start ////////////////////////
Tempo ();
if (EachTickMode && Bars != BarCount) TickCheck = False;
//// contrôle du délais avant le passage d'ordre //////////////////
//Buy---------------------------------------------------------------------
if (Delai!=0) return(0);
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
{
Ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, Slippage, 0, 0, EAName + "-" + nbtrade , MagicNumber, 0, Lime);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
SetDelai();
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
-
17/07/2010, 10h19 #4Membre lvl 5
- Date d'inscription
- July 2009
- Messages
- 10
- Pouvoir de réputation
- 6
Merci Vamm972, c'est exactement ce que je cherche
Je vais tester, on verra bien
@+
Discussions similaires
-
Confirmation manuelle des ordres
Par jl83 dans le forum ProgrammationRéponses: 2Dernier message: 12/07/2010, 14h03 -
identification des ordres en cours
Par TAAD dans le forum ProgrammationRéponses: 3Dernier message: 24/03/2010, 23h08 -
Comment gérer les ordres ouvert
Par dudu22 dans le forum ProgrammationRéponses: 0Dernier message: 02/07/2009, 14h44 -
rapidité d'execution des ordres
Par cris38 dans le forum Broker ForexRéponses: 0Dernier message: 27/08/2008, 18h48
![]() |
|
Mercredi 20 Mars 2013
Trader-Forex.fr en RSS
LinkBack URL
About LinkBacks
Répondre avec citation
