Erreurs, bugs, questions - page 1011

 
Silent:

datetime est déjà là

ArraySize - nombre de barres, ArraySize-1 - dernière barre, ArraySetAsSeries définit la direction d'indexation, et le numéro de cellule = barre, gauche ou droite.

Il y a un script de testici .

Merci ! Je vais essayer.
 

Bonjour !

Pour TimeCurrent, il est précisé qu'il renvoie l'heure du dernier tick de MarketWatch. En essayant de l'utiliser, il renvoie 20:30, bien que le dernier tic soit 22:59:57.

Pourquoi en est-il ainsi ?

Merci !

 
ns_k:

Bonjour !

Pour TimeCurrent, il est précisé qu'il renvoie l'heure du dernier tick de MarketWatch. En essayant de l'utiliser, il renvoie 20:30, bien que le dernier tic soit 22:59:57.

Pourquoi en est-il ainsi ?

Merci !

De l'aide :

Dans le gestionnaire OnTick(), cette fonction renvoie l'heure à laquelle le tick entrant est traité . Dans d'autres cas (par exemple, appel dans leshandlers OnInit(), OnDeinit(), OnTimer() etc.), il s'agit de l'heure d'arrivée de la dernière cotation pour tout symbole disponible dans la fenêtre "Market Watch", la même heure qui est indiquée dans le titre de cette fenêtre.

 
Lizar:

De la référence :

Merci !

Alors comment puis-je obtenir l'heure d' arrivée du dernier devis dans onCalculate ?

 
ns_k:

Merci !

Alors comment obtenir l'heure d'arrivée du dernier devis dans onCalculate ?

J'ai écouté Time Pink Floyd et j'ai trouvé :)

if(SymbolInfoTick(Symbol(),last_tick))

     {

      Print(last_tick.time,": Bid = ",last_tick.bid,

            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);

     }

   else Print("SymbolInfoTick() failed, error = ",GetLastError());

   lEnd=last_tick.time; 
 

Bonjour !

ArrayResize ne semble pas fonctionner dans la phase d'initialisation globale pour les membres statiques des classes/structures.

struct Test{
chaîne statique arr[] ;
Test() {
ArrayResize(arr,5) ;
si (ArraySize(arr)!=5) Alert("Nous avons un bug") ;
}
} ;
Test ;

 

Est-ce que quelqu'un a le problème suivant :

Version du terminal et bit

Windows 8, MetaTrader 5 - Alpari UK, Build 821, 64 bit.

Description du problème

L'indicateur sur H1 appelle l'indicateur sur M1. La commande CopyBuffer copie des données erronées. Ce problème ne se pose que dans le testeur de stratégie. Dans le terminal, toutes les données sont copiées sans erreur. L'indicateur M1 copie les données dans le premier tampon.

La séquence d'actions

Dans le testeur de stratégie, je choisis de tester l'indicateur SampleCopyBuffer sur H1. J'ai fixé la période du 2013-05-01 au 2013-07-07. Cliquez sur Démarrer, et lisez les messages d'erreur dans les journaux.

J'obtiens le résultat.

Et j'ai lu les messages d'erreur dans les journaux. La valeur du tampon indicateur de M1 ne correspond pas à la valeur de CopyHigh.

Résultat attendu

Les valeurs de CopyBuffer et CopyHigh doivent être égales.

Plus d'informations

Il n'y a pas d'erreur dans le terminal au démarrage. Seulement dans le testeur de stratégie. Veuillez consulter mes indicateurs en annexe. SampleHighs fonctionne sur M1 et est appelé à partir de l'indicateur SampleCopyBuffer qui fonctionne sur H1.
Dossiers :
 
denmax:

Bonjour !

ArrayResize ne semble pas fonctionner dans la phase d'initialisation globale pour les membres statiques des classes/structures.

struct Test{
chaîne statique arr[] ;
Test() {
ArrayResize(arr,5) ;
si (ArraySize(arr)!=5) Alert("Nous avons un bug") ;
}
} ;
Test ;

Merci pour le message, nous allons corriger l'erreur. Votre code va générer une erreur concernant l'absence de la chaîne statique arr[] ; pour que votre code fonctionne correctement, vous devez "placer" la variable statique avant l'instance de test de la classe Test.

struct Test{
   static string arr[];
   Test() {
       ArrayResize(arr,5) ;
       if (ArraySize(arr)!=5) Alert("We have a bug"); 
    } 
};

string Test::arr[];

Test test; 
 

Bonjour !

J'écris un script qui doit analyser certaines caractéristiques d'un indicateur personnalisé de ma propre production :)

Dans l'aide il est spécifié d'utiliserIndicatorCreate

pour recevoir la poignée de l'indicateur. Je comprends presque tout, mais il semble très étrange, lorsque l'indicateur est dans le graphique que le script utilise, il doit créer l'indicateur à nouveau. Peut-être y a-t-il un moyen d'obtenir les valeurs des indicateurs déjà calculés dans le script ?

Merci !

 

ns_k:

...En fait, presque tout est clair, sauf qu'il semble un peu étrange que si vous trouvez un indicateur sur le graphique sur lequel le script est exécuté, vous devez créer l'indicateur à nouveau...

voir... Tableau dans la section "Exécution du programme