Erreurs, bugs, questions - page 1803
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
Cela s'applique également aux indicateurs. Créez une minuterie d'une minute et demandez le nombre de barres de toutes les séries temporelles qui vous intéressent.
En vérifiant le fait que le timing n'est pas retenu.
Chers développeurs ! Encore une fois je demande d'ajouter le temps en ms pour les valeurs de sentiment(SYMBOL_SESSION_...) et tumbler( OnBookEvent()) dès que possible. Donnez une chance de faire la synchronisation de toutes les données disponibles !
Metaquotes-Demo, symbole DIG-20170330
SymbolInfoDouble(Symb,SYMBOL_SESSION_PRICE_LIMIT_MIN) = 29528.0
(ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb,SYMBOL_TRADE_MODE) = SYMBOL_TRADE_MODE_FULL (4)
Erreur dans SYMBOL_SESSION_PRICE_LIMIT_MIN : above Asc - no BuyLimit can be set.
Veuillez partager votre vélo : une fonction bool qui vous indique si un symbole est prêt à être négocié ou non.
{
MqlDateTime sTime = {0};
TimeToStruct(time, sTime);
return((ENUM_DAY_OF_WEEK)sTime.day_of_week);
}
// true - находимся в торговой сессии
bool SessionTrade( string Symb = NULL )
{
datetime TimeNow = TimeTradeServer();
const ENUM_DAY_OF_WEEK DayOfWeek = GetDayOfWeek(TimeNow);
TimeNow %= 24 * 60 * 60;
if ((Symb == NULL) || (Symb == ""))
Symb = Symbol();
bool Res = false;
datetime From, To;
for (int i = 0; SymbolInfoSessionTrade(Symb, DayOfWeek, i, From, To) && (!Res); i++)
Res = ((From <= TimeNow) && (TimeNow < To));
return(Res);
}
// Возвращает true, если символ торгуемый. Иначе - false.
bool SymbolTrade( string Symb = NULL, const int Pause = -1 )
{
MqlTick Tick;
if ((Symb == NULL) || (Symb == ""))
Symb = Symbol();
if (Pause >= 0)
Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
return(SymbolInfoTick(Symb, Tick) ? ((Tick.bid != 0) && (Tick.ask != 0) && SessionTrade(Symb) &&
((ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(Symb, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL)) : false);
}
if (Pause >= 0)
Sleep(Pause); // Если только что произошло добавление символа в Обзор рынка, нужно дождаться поступления данных в Marketwatch.
Et si c'est dans un indicateur ?
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading
Bugs, bugs, questions
fxsaber, 2017.02.14 12:31
Immédiatement après SymbolSelect(true) je demande les prix et ils sont zéro. Avec _LastError == 0, SymbolInfoTick == true.
Comment puis-je savoir que les prix des nouveaux symboles pour Marketwatch ont été livrés à Marketwatch ?
D'où les jambes.
Si l'indicateur trace certaines données statistiques sur des symboles qui ne sont pas connus à l'avance, lorsque vous sélectionnez le symbole suivant dans le panel, il arrive souvent que vous ne puissiez pas obtenir les données le concernant immédiatement, et le tableau contiendra de fausses informations... Comment puis-je être sûr que les données reçues du symbole sont correctes et en quantité suffisante pour obtenir d'autres calculs corrects ?
Honnêtement, je ne comprends pas. Je me demandais : comment savoir si un symbole est prêt dans un indicateur ? Sleep() ne fonctionne pas dans les indicateurs.
Si l'indicateur affiche dans le tableau certaines données statistiques sur des symboles qui ne sont pas connus à l'avance, alors lorsque vous sélectionnez le symbole suivant dans le panneau, il arrive souvent que vous ne puissiez pas obtenir immédiatement les données le concernant, et le tableau affiche de fausses informations... Comment puis-je être sûr, pour d'autres calculs, que les données obtenues à partir du symbole sont correctes, et en quantité suffisante pour obtenir d'autres calculs corrects ?