[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 285
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
ArrayInitialize() fonctionne probablement !
ArrayInitialize(ask, EMPTY_VALUE) ; vous voulez dire ? Je ne l'ai pas fait. Pourquoi l'ai-je coupé exactement, j'avais peur d'un tel cas :
(a, b, c)//valeurs en demande après trois ticks par seconde (fantastique, mais supposons).
ArrayInitialize(ask, 0);//être (0, 0, 0)
FileWriteDouble(hand1e, ask[ArraySize(ask)-1], DOUBLE_VALUE) ;//Close[]
- La cellule Close recevra 0. C'est pourquoi je redéfinis la taille pour éviter que cela ne se produise. Vérifier ArrayInitialize(ask, EMPTY_VALUE) ;.
TarasBY:
Vous devez arrêter d'utiliser les tableaux d'indicateurs.Ils sont dynamiques, c'est pour ça que j'ai craqué. Moins de commandes, moins de cycles du processeur. Vous devez faire 500 millisecondes de traitement à n'importe quel moment théoriquement possible... ...pour y arriver.
ArrayInitialize(ask, EMPTY_VALUE) ; vous voulez dire ? Je ne l'ai pas fait. J'avais peur d'un tel cas, c'est pourquoi j'ai commencé à le réduire :
(a, b, c)//valeurs en demande après trois ticks par seconde (fantastique, mais supposons).
ArrayInitialize(ask, 0);//être (0, 0, 0)
FileWriteDouble(hand1e, ask[ArraySize(ask)-1], DOUBLE_VALUE) ;//Close[]
- La cellule Close recevra 0. C'est pourquoi je redéfinis la taille pour éviter que cela ne se produise. ArrayInitialize(ask, EMPTY_VALUE);; ; les vérifier.
Ils sont dynamiques, c'est pour ça que j'ai craqué. Moins de commandes, moins de cycles du processeur. Vous devez gérer 500 millisecondes de traitement à chaque goulot d'étranglement théoriquement possible... ...pour y arriver.
Ce n'est pas ce que je veux dire : quelque chose me dit que vous ne parviendrez pas à réduire le tableau des indicateurs. En outre, s'il y a des cellules non remplies dans un tel tableau, il y a TOUJOURS une valeur à cet endroit : 0 ou EMPTY_VALUE, et qu'obtenez-vous dans ces calculs :
Et selon la logique générale : j'exécuterais toute la collection de tics dans une boucle et contrôlerais séparément le temps et, dès que le temps de la "nouvelle barre" est passé, je l'écrirais dans le fichier, en mettant à zéro et en coupant les tableaux de travail dans le processus.Si je le sais, est-il possible de changer les ordres d'envoi et de fermeture dans le conseiller pour appeler la fenêtre de négociation manuellement et entrer sur le marché par cette fenêtre, c'est nécessaire pour les courtiers qui ne permettent pas l'utilisation des conseillers.
Et selon la logique générale : j'exécuterais toute la collection de tics dans une boucle et contrôlerais séparément le temps et, une fois que le temps de la "nouvelle barre" est passé, je l'écrirais dans le fichier, en mettant à zéro et en coupant les tableaux de travail dans le processus.
C'est étrange... Je l'ai comme ça... La seule différence est que le temps est contrôlé dans le cycle de collecte des tics lui-même, et le tableau de travail n'est pas coupé tant qu'une copie du tic n'a pas été dessinée autant de fois qu'il n'y a pas eu de tic moins une seconde. Une seconde passée - un nouveau tick est dessiné, deux - une copie du tick précédent et un nouveau tick, trois - deux copies du tick précédent et un nouveau tick, etc. Au lieu des copies du tick précédent il est possible de dessiner un tiret par le niveau Close, cette variante est commentée dans le code.
C'est étrange... Je l'ai comme ça... La seule différence est que le temps est contrôlé dans la boucle elle-même, et que le tableau de travail n'est pas coupé tant qu'une copie du tick n'est pas dessinée autant de fois qu'il n'y a pas eu de ticks moins un. Une seconde passée - un nouveau tick est dessiné, deux - une copie du tick précédent et un nouveau tick, trois - deux copies du tick précédent et un nouveau tick, etc. Au lieu des copies du tick précédent il est possible de dessiner un tiret par le niveau Close, cette variante est commentée dans le code.
Vous et moi parlons de cycles différents. Je parle de ça :
Quelqu'un peut-il me dire comment supprimer les zéros après la virgule ? J'ai 4 décimales dans mon code pour une raison quelconque. Voici le code. chaîne l_dbl2str_12 = DoubleToStr(g_ibuf_140[0] - g_ibuf_144[0],3) ;
Pouvez-vous me dire ce que je fais mal...
J'ai besoin d'une variable de type double pour contenir la date 0,20130429164459 (c'est-à-dire 2013.04.29 16:44:59).
Fait partie du code de l'EA :
Le journal des événements pour Precision 12, 13 et 14 donne un résultat erroné, voir l'image.
Je voudrais profiter de cette occasion pour répéter ma première question.
Pouvez-vous me dire comment résoudre un problème "simple" ?
Par exemple, je dois supprimer la deuxième ligne d'un fichier CSV. Je n'ai pas trouvé d'information dans la documentation sur la façon de le faire.
Exemple :
12:30;1;1.34818;12:32;3;3;100;1.34939;18:45\r\n
14:00;1;1.32219;14:26;6;6;100;0.0000;00:00\r\n
19:00;0;1.35828;19:12;12;6;600;1.37939;19:59\r\n