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
Cette erreur n'apparaît pas lors de la compilation, mais lorsque j'attache l'indicateur au graphique, ou lorsque je change de cadre temporel.
Ce message d'erreur apparaît-il tout le temps, ou disparaît-il avec le temps ?
Les gars ! MT5 peut-il être connecté à n'importe quelle société de courtage ?
Non. Le trading via MT5 est possible via le courtier qui offre la possibilité de trader via cette plateforme, comme VTB24 et Alfa forex.
Ce message d'erreur apparaît-il constamment, ou disparaît-il avec le temps ?
Ce message d'erreur apparaît-il tout le temps, ou disparaît-il avec le temps ?
Ce message d'erreur apparaît-il constamment, ou disparaît-il avec le temps ?
FinEngineer:
Une fois, quand j'attache l'indicateur au graphique...
Alors vous vous en sortez bien. Lorsque vous attachez le programme à un graphique ou changez de période, il n'y a pas de nouvelles données calculées pour l'indicateur RSI ou tout autre indicateur dans le terminal. Et le terminal a besoin d'un certain temps pour calculer les tampons d'indicateurs nécessaires. Regardez attentivement votre code (je comprends qu'il est écrit selon l'exemple de quelqu'un d'autre, mais néanmoins) : Lorsque les données calculées pour le RSI ne sont pas suffisantes, la fonction OnCalculate() arrête de fonctionner ('return(0);') et attend un nouveau tick. Dès qu'au prochain tick, les tampons de l'indicateur pour le RSI sont calculés, votre indicateur commence à fonctionner en mode normal. Ce qui est le cas, à en juger par ce que vous dites.
Vous pouvez également insérer la vérification avec BarsCalculated() dans la fonction OnInit() - alors l'erreur se produira très rarement (voire pas du tout). Un exemple est donné dans la description de la fonction BarsCalculated().
Je vous ai déjà écrit hier à propos de cette erreur. (N'oubliez pas d'insérer le code correctement :) )
Suppression du morceau de code responsable de l'insuffisance des données (ci-dessous)
int calculated=BarsCalculated(RSI1_Handle) ;
if(calculated<rates_total)
{
Print("Toutes les données de RSI1_Handle ne sont pas calculées (",calculated, "bars ). Erreur",GetLastError()) ;
retour(0) ;
}
calculated=BarsCalculated(RSI2_Handle) ;
if(calculated<rates_total)
{
Print("Toutes les données de RSI2_Handle ne sont pas calculées (",calculated, "bars ). Erreur",GetLastError() ;
retour(0) ;
Pouvez-vous me dire comment marquer les fragments de code dans le message ?
Maintenant, une erreur s'affiche :
2012.12.22 15:14:00 Pair_delta_RSI (EURGBP,M1) La récupération de RSI1 a échoué ! Erreur4806Insérez le code correctement.
Il fonctionnait bien là, ce "morceau de code qui est responsable de l'insuffisance des données". Et il a été correctement signalé qu'au premier tick les données pour le RSI ne sont pas encore calculées par le terminal. Si vous n'aimez pas recevoir des messages d'erreur, essayez de faire comme ci-dessus, à savoir vérifier les données calculées non seulement dans OnCalculate(), mais aussi dans OnInit(). En d'autres termes, essayez d'attendre le calcul des données pour les indicateurs techniques sélectionnés dans OnInit(), puis passez au traitement des ticks dans OnCalculate() lorsque le calcul des données des indicateurs est garanti.
En ajoutant. En définitive, la suppression d'une partie du code de contrôle n'augmente pas le nombre de données calculées de l'indicateur :)