[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 55

 
Lians:

J'ai déjà contacté le forum au sujet de l'écriture et de la lecture de tableaux dans un fichier, et je me heurte à nouveau à un problème : après avoir écrit un tableau dans un fichier, je ne parviens pas à trouver l'élément du tableau par sa valeur. Voici donc le script :

Le résultat de l'exécution de ce script sur moi est l'entrée de journal "Le mot xyz n'est pas dans le fichier écrit, mais le mot xyz est".

Pourriez-vous me dire ce qui ne va pas et comment le réparer ?

Vous utilisez une chaîne de caractères y[][] dans un tableau bidimensionnel alors que vous effectuez une vérification (recherche) dans un tableau unidimensionnel. Essayez cette fonction :

bool ArraySearchString (string m[][], string e1)
{
    for (int i1 = 0; i1 < ArrayRange (m, 0); i1++)
    {
        for (int i2 = 0; i2 < ArrayRange (m, 1); i2++)
        if (m[i1][i2] == e1) return (true);
    }
    return (false);
}

et changez la condition de vérification en

if (ArraySearchString (y,"xyz"))
 

TarasBY, merci beaucoup ! Ça marche !

Et une autre question, quelqu'un a-t-il rencontré un phénomène où le même script qui calcule mathématiquement un nombre entier dans différentes constructions du terminal donne des valeurs différentes. Par exemple, dans la version 399, il produit 488143839, mais dans la version 416, il produit 348186686.

Je l'ai déjà vérifié plusieurs fois - le script s'exécute de la même façon avec les mêmes paramètres dans les différentes versions.

 
Lians:

TarasBY, merci beaucoup ! Ça marche !

Et une autre question, quelqu'un a-t-il rencontré un phénomène où le même script qui calcule mathématiquement un nombre entier dans différentes constructions du terminal donne des valeurs différentes. Par exemple, dans la version 399, il produit 488143839, mais dans la version 416, il produit 348186686.

Je l'ai déjà vérifié plusieurs fois - le script s'exécute de la même façon avec les mêmes paramètres dans les différentes versions.



Vos chiffres sont élevés, peut-être la cause est-elle un débordement de variable entière.
 
Bonjour, pouvez-vous m'aider à ajouter un stop loss? Je l'ai essayé moi-même, le stop loss n'apparaît pas.
Dossiers :
q163hud4n85.mq4  33 kb
 
moskitman:
Non, Vadim, le bureau ! Une carte graphique GForce 9600 de 512mb elle-même.
Les systèmes d'exploitation clients 32 bits ne peuvent pas utiliser plus de 3,5 Go de mémoire (certains 3,25, cela dépend de la nature du bios de la carte mère).
Cela est dû à l'architecture 32 bits et au fait que 3,5 à 4 Go d'espace sont consacrés à l'adressage des périphériques PCI. En particulier, si vous avez installé beaucoup de périphériques PCI, vous "verrez" moins de RAM que vous n'en avez.
.
 
Zhunko:
Oui, mais merci quand même, Vadim.
 
sand:

Vos chiffres sont grands, peut-être que la raison est un débordement de variable entière.
Savez-vous comment éviter cela ? Ne pas utiliser des fonctions comme MathFloor(), MathSqrt() ... ? Ou bien il n'y a rien à faire ? J'ai besoin que ça compte de la même façon partout.
 
yosuf:
Il arrive souvent que l'internet tombe en panne, est-il possible d'automatiser son redémarrage avec un logiciel ? Ou ce que l'on sait à son sujet ? Existe-t-il un moyen d'alimenter deux ou plusieurs FAI en même temps, dans le sens d'une mise en parallèle ? Merci d'avance.

XmaksasX:

faire un document en texte brut et mettre ce texte

:LOOP
ping 8.8.8.8 | find "100%" && (rasdial /disconnect & rasdial "NAME OF YOUR CONNECTION" login pass)
ping -w 1000 -n 30 127.0.0.1

goto LOOP

sauvegardez-le et changez l'extension de *.txt en *.bat, enroulez-le et profitez-en))

XmaksasX, merci beaucoup pour vos conseils très avisés, la connexion internet n'est pas tombée en panne depuis deux jours, ou peut-être que je ne l'ai pas remarqué, puisque le principe ci-dessus fonctionne. J'avais des pannes toutes les 10 minutes, toutes les heures ou la nuit, encore plus triste au travail, c'est-à-dire sans aucun système. Maintenant c'est une bénédiction, tu peux aussi avoir une bonne nuit de sommeil.

Autre question, est-il possible de gérer un compte réel simultanément depuis deux ordinateurs, l'un à la maison et l'autre au travail ?

 

Voici un morceau de code de l'EA. Je voulais mettre en œuvre l'idée que s'il y a une déviation du prix d'ouverture de sigma, alors il faut fermer. En théorie, si vous mettez sigma = 1*Point. Ensuite, le conseiller expert devrait toujours clôturer avec un bénéfice, car l'écart est toujours présent à 1*Point. Une autre chose est que dans le trading réel, il y a un spread, donc il perdra du bénéfice, et dans le testeur de stratégie, il n'y a pas de spread, donc il devrait faire du bénéfice tout le temps.

Je pense qu'il y a une erreur ici.

if (OrdersTotal()!=0)
    {
     OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     
     if (OrderType()==OP_BUY)
     {
      if ((Bid-Open[0])>=SigmaHigh*Point) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Red);
     }
      
     if (OrderType()==OP_SELL) 
     {
       if ((Open[0]-Ask)>=SigmaLow*Point) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green);
     }
    }
 
orb:

et il n'y a pas d'écart dans le testeur


Il y a un écart dans le testeur. Exactement la même chose que sur le graphique lorsque le test a été effectué.
Raison: