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
Au fait, il est étrange que vous appeliez Sleep() depuis un indicateur, car c'est interdit :
La fonction Sleep() ne peut pas être appelée par des indicateurs personnalisés, car les indicateurs sont exécutés dans le thread de l'interface et ne doivent pas le ralentir. La fonction intègre une vérification de l'état du drapeau d'arrêt de l'expert toutes les 0,1 seconde.
A propos, il est étrange que vous appeliez Sleep() depuis l'indicateur, car c'est interdit :
Alexei !
Un instrument assez liquide :)
Il ne s'agit pas de l'instrument (liquidité), mais du retard, qui peut se produire dans N'IMPORTE QUEL instrument.
Je fais du trading actif avec des EA depuis presque 4 ans maintenant.
Je n'ai aucune pause dans aucun de mes EAs (sauf une pause pour attendre que les données soient téléchargées du serveur dans INDICATORS),
Si vous faites une pause, c'est un signe certain que l'algorithme de votre EA ne fonctionne pas correctement :(
Je ne sais pas du tout ce qu'est Sleep().
Alors c'est étrange que vous et moi discutions de pauses maintenant...
Pas dans le sens de ce que Sleep() fait, mais dans le sens de l'utiliser dans mon code.
Comment mettre en place une pause dans votre indicateur ?
// Custom indicator Check timer function |
//+------------------------------------------------------------------+
bool CheckTimer(const uint start_value, const uint per_value)
{
uint end_value = GetTickCount();
if(end_value < start_value)
{
if((start_value - end_value) >= per_value) return(true);
}
else
{
if((end_value - start_value) >= per_value) return(true);
}
return(false);
}
//+------------------------------------------------------------------+
//| Custom indicator Get server data function |
//+------------------------------------------------------------------+
int LoadServerData(const string a_symbol, ENUM_TIMEFRAMES period)
{
int fail_cnt = 0;
//---
while((fail_cnt < 5) && !IsStopped())
{
long first_date = long(SeriesInfoInteger(a_symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE));
//---
if(first_date > 0)
{
if(SymbolIsSynchronized(a_symbol))
{
// Print( "LoadServerData: Первая дата на сервере есть. Пробуем получить локальные данные..." );
return(GetLocalData(a_symbol, period));
}
}
else
{
uint start_tick = GetTickCount();
//---
while(!CheckTimer(start_tick, 10))
{
fail_cnt--;
fail_cnt++;
}
}
fail_cnt++;
}
// Print( "LoadServerData: Первой даты на сервере нет!" );
return(0);
}
Il s'agit d'un vieil exemple.
Comme l'erreur de GetTickCount est plutôt élevée (jusqu'à 16 ms), j'utilise maintenant GetMicrosecondCount().
En principe je le fais, mais dans Forts l'ordre est souvent accepté avec succès...mais au tick suivant il n'y a pas encore de position....
C'est ici que l'ouverture supplémentaire peut glisser .... résoudre partiellement le problème de cette façon, si la commande est acceptée, j'augmente la variable int, et après l'augmentation les conditions d'ouverture sont légèrement différentes, donc une nouvelle ouverture ne se produit pas, mais.... si la commande n'est pas acceptée la variable n'augmente pas, mais voici l'astuce... J'ai mal évalué l'état et des commandes supplémentaires ont commencé à apparaître.
Alexei !
Un instrument assez liquide :)
Il ne s'agit pas de l'instrument (liquidité), mais du retard, qui peut se produire dans N'IMPORTE QUEL instrument.
Je fais du trading actif avec des EA depuis presque 4 ans maintenant.
Je n'ai aucune pause dans aucun de mes EAs (sauf une pause pour attendre que les données soient téléchargées du serveur dans INDICATORS),
Si vous faites une pause, c'est un signe certain que l'algorithme de votre EA ne fonctionne pas correctement :(
Je fais moi aussi du trading depuis assez longtemps et uniquement avec l'aide d'EAs. Mais surtout sur MT4. J'ai négocié sur MT5 uniquement avec des EAs utilisant Limits et il n'y a eu aucun problème. Si je suis un scalper ou un pipsder, je n'aime pas les pauses dans les Expert Advisors, de plus je manque juste une entrée.