[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 - 2. - page 102

 
Vinin:


A peu près comme ceci

Dans le tableau, nous obtenons les chiffres, les uns, les dizaines, les centaines, etc.

Non, votre code est encore difficile à utiliser pour moi. Je le laisserai dans les archives jusqu'à des temps meilleurs, pour ainsi dire, "pour grandir".

Cependant, dans votre version, j'ai été attiré par la boucle while, dans laquelle vous avez mis N (tmpl).

Puis-je faire la même chose, c'est-à-dire utiliser while dans mon code ci-dessus (p.100) et le placer au-dessus de la boucle for ?

 

robot:


Je crois que je ne comprends pas, un programme qui fonctionne sur le testeur devrait logiquement aussi passer des commandes sur le réel.

Non, il ne doit rien à personne. Il y a une différence entre le réel de la démo et le testeur. Par exemple, le testeur ne montrera jamais d'erreur lors de l'ouverture des commandes si tous les paramètres OrderSend() sont corrects. Mais un serveur commercial, au contraire, le fera.

C'est pourquoi nous devons modifier les programmes après le testeur et les exécuter ensuite sur la démo, afin qu'ils puissent gérer de manière adéquate les situations exceptionnelles, qui ne se produisent pas dans le testeur.

 
Sergey_Rogozin:

Non, il m'est difficile de l'utiliser pour l'instant. Je le laisserai dans les archives jusqu'à des temps meilleurs, pour ainsi dire, "pour grandir".

Cependant, dans votre version, j'ai été attiré par la boucle while dans laquelle vous avez mis N (tmpl).

Puis-je faire la même chose, c'est-à-dire appliquer while dans mon code ci-dessus (p.100), en le mettant au-dessus des boucles for ?


En gros, j'ai fait ce que tu voulais. Pas plus que ça.

Et l'utilisation des boucles for() dans votre version prendrait relativement longtemps à exécuter

Il est préférable de se passer des boucles for(). Il ne devrait y avoir qu'une seule boucle

 
Pouvez-vous me dire comment faire pour que le conseiller s'éteigne à une certaine heure ?
 
Vinin:


En gros, j'ai fait ce que tu voulais. Pas plus que ça.

Et l'utilisation de boucles for() dans votre version prendra un temps relativement long.

Il est préférable de se passer des boucles for(). Il ne doit y avoir qu'une seule boucle.

Merci, j'ai compris pour les boucles.

Je vais maîtriser de nouveaux horizons - votre code.

 
render:
Pouvez-vous me dire comment faire pour que le conseiller s'éteigne à une certaine heure ?
Si vous voulez qu'il se décharge complètement, vous ne pouvez pas le faire avec MQL. Si vous voulez qu'il cesse de réagir au marché, alors if(Time[0]>=set_time) return(0) ;
 

J'ai un courtier qui a de tels trous dans les cotations, j'ai contacté leur équipe de soutien et ils disent que les cotations sont téléchargées à partir des méta-cotes pour eux et nous n'avons rien à voir avec cela.

Je ne sais pas quoi faire d'eux.


 

Dans le testeur sleep() ne fonctionne pas, dans ce cas comment contourner ce point... J'utilise pour l'initiation de deux figures (avec le même principe de construction), c'est-à-dire pour la différence de l'une par rapport à l'autre, pour la possibilité de leur comparaison ultérieure, je me souviens du temps de formation de la première et si le temps de formation de la seconde est supérieur, alors j'effectue des actions... C'est-à-dire, juste après la formation de la première figure, j'utilise sleep(2000) pour empêcher au même moment (dans la ligne de code suivante) - d'identifier cette première formée comme la deuxième, aussi. Veuillez me conseiller sur ce qui peut être utilisé à cet effet... En d'autres termes, faire en sorte que l'EA se repose une seconde après la formation de la première figure, parce que dans la ligne suivante il y a un contrôle de la formation de la seconde figure et sans un "repos" la première figure formée est initialisée comme la seconde aussi, et ce n'est pas acceptable....

La question (entière) elle-même est ici - page 99.

 
alsu:
Remarque - dans votre code, "If(Ticket>0)" signifie "la commande OrderSend a fonctionné sans erreur" et "else" est "une erreur s'est produite lors de l'exécution de OrderSend et la commande n'a pas été passée". Est-ce la logique que vous voulez dire ?
Oui, vous avez raison de noter que mon code ne correspond pas du tout à ce que je veux obtenir !
Voici l'idée:
1. Je place un ordre en attente ( si le critère de transaction est rempli)
2. Si l'ordre n'a pas été exécuté sur la barre actuelle, nous attendons de voir ce qui se passe sur la prochaine barre
3. Si l'ordre en attente n'a pas été exécuté sur la prochaine barre, nous le supprimons

alternative (bonne chance) :
2. Si l'ordre a été exécuté sur la barre actuelle (le 1er Stop Loss est déjà là), alors les 3 prochaines barres sont trailing (trailing en ombre des N dernières barres)
3. Trailing (par une flèche)
alternativement (malchance)
2. Si l'ordre est exécuté et que le marché ne va pas comme il le devrait, alors nous faisons un U-turn

PLANS NAPOLEONIENS Bien sûr ! !!, mais je suis un débutant - et j'ai du mal avec le "langage"
. Si vous voulez écrire un joli modèle, parce que mon esprit est encore en train de s'embrouiller)

Merci pour votre feedback
 
Roman.:

Dans le testeur sleep() ne fonctionne pas, dans ce cas comment contourner ce point... Je l'utilise pour initier deux figures (avec le même principe de construction), c'est-à-dire pour les distinguer l'une de l'autre pour la possibilité de leur comparaison ultérieure ; je mémorise le temps de formation de la première et si le temps de formation de la seconde est supérieur, j'effectue des actions... C'est-à-dire que j'utilise sleep(2000) lors de la formation de la première figure pour distinguer la formation ultérieure possible de la deuxième figure et l'identifier comme la deuxième. Veuillez me conseiller sur ce qui peut être utilisé à cet effet...

La question (entière) elle-même est ici - page 99.

Utilisez la barre de temps Time[x].
Raison: