[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 319

 

Rappelez-moi la situation

Veuillez nous conseiller dans les domaines suivants :

1.Il existe une fonction "if (timecur == "08:00:00") OrderSend (Symbol(), OP_BUY, Loot, Ask, 50, SL, TP,NULL,0,0,L) ;".

2. le tester du 23.08.2010 au 23.10.2010.

3. jusqu'au 12.10.2010, les transactions ont été ouvertes normalement par 1 pc.

Mais maintenant la fonction 12.10.2010 ouvre autant de transactions que le dépôt le permet (environ 7 pc).

Je ne peux pas comprendre la raison, peut être que pour une seconde a le temps de passer au moins 5 ticks et a donc le temps d'ouvrir autant ? ou il ya une autre question ? si tout le même la première option, s'il vous plaît conseiller comment prescrire la transaction ouverte une seule fois ?

Je vous en serais très reconnaissant, merci.

 
La façon la plus simple de procéder est de vérifier qu'un nombre donné d'ordres sont sur le marché avant d'en ouvrir un nouveau.
 
Boneshapper:

Rappelez-moi la situation

Veuillez nous conseiller dans les domaines suivants :

1.Il existe une fonction "if (timecur == "08:00:00") OrderSend (Symbol(), OP_BUY, Loot, Ask, 50, SL, TP,NULL,0,0,L) ;".

2. le tester du 23.08.2010 au 23.10.2010.

3. jusqu'au 12.10.2010, les transactions ont été ouvertes normalement par 1 pc.

Mais maintenant la fonction 12.10.2010 ouvre autant de transactions que le dépôt le permet (environ 7 pc).

Je ne peux pas comprendre la raison, peut être que pour une seconde a le temps de passer au moins 5 ticks et a donc le temps d'ouvrir autant ? ou il ya une autre question ? si tout le même la première option, s'il vous plaît conseiller comment prescrire la transaction ouverte une seule fois ?

Je vous en serais très reconnaissant, merci.

Voici une fonction simple qui vérifie le nombre d'ordres ouverts :

 int Opened(){
     int Orders=0;
     for (int cnt=OrdersTotal()-1; cnt>=0; cnt--){
       if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol()){
           if(OrderMagicNumber()==Magic){
               if(OrderType()<2)Orders++;
      } } } }       
  return(Orders);
} 

La fonction Opened() doit être placée en dehors de la fonction start(). Il peut se trouver à la toute fin du code.

Insérez-le dans votre condition :

if (timecur == "08:00:00" && Opened()==0) OrderSend (Symbol(), OP_BUY, Loot, Ask, 50, SL, TP,NULL,0,0,L);
 
DhP:

Voici une fonction simple pour vérifier le nombre d'ordres ouverts :

Insérez dans votre état :


Oui, cela m'a vraiment aidé, mais c'est juste que je vais ouvrir plusieurs commandes, et elles ne doivent pas être liées les unes aux autres. Je voudrais limiter l'ouverture d'une affaire avec un certain drapeau, et c'est tout.

Je l'ai écrit comme ceci

int Control ;

si ((timecur == "08:00:00") && (Control == 0)) OrderSend (Symbol(), OP_BUY, Loot,Ask, 50, SL, TP,NULL,0,0,L) ;
Alert(GetLastError()) ;
Control = 1 ;

Et le zéro n'a été renvoyé que lorsque j'ai fermé la commande.

OrderClose(Ticket,Loot,Bid,50,R) ;
Alert (GetLastError()) ;
Control = 0 ;

Mais pourquoi cette entrée n'a pas aidé. Peut-être ai-je fait une erreur quelque part ? s'il vous plaît, aidez-moi.

 
Boneshapper:


Oui, ça m'a vraiment aidé, mais c'est juste que je vais ouvrir plusieurs ordres, et ils ne doivent pas être liés les uns aux autres. Je voudrais limiter l'ouverture d'un ordre avec un certain drapeau et c'est tout.

Je l'ai écrit comme ceci

int Control ;

si ((timecur == "08:00:00") && (Control == 0)) OrderSend (Symbol(), OP_BUY, Loot,Ask, 50, SL, TP,NULL,0,0,L) ;
Alert (GetLastError()) ;
Control = 1 ;

Et le zéro n'a été renvoyé que lorsque j'ai fermé la commande.

OrderClose(Ticket,Loot,Bid,50,R) ;
Alert (GetLastError()) ;
Control = 0 ;

Mais pourquoi cette entrée ne m'a pas aidé. Est-ce que je me trompe quelque part ?

Vous pouvez "déchiqueter" la fonction comme bon vous semble. Il peut répondre à tous vos souhaits.

Par exemple, vous pouvez spécifier quel type d'opérations vous intéresse, ou quelles magies, ou entrer une condition de temps d'ouverture de poste et bien d'autres encore.

Voici un exemple de séparation en Achat et Vente :

 int Opened(int OP){
     int Orders=0;
     for (int cnt=OrdersTotal()-1; cnt>=0; cnt--){
       if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol()){
           if(OrderMagicNumber()==Magic){
               if(OP==OP_BUY)Orders++;
               if(OP==OP_SELL)Orders++;
      } } } }       
  return(Orders);
 } 

Nos possibilités ne sont limitées que par notre imagination. Vous réussirez sûrement.

 
DhP:

Vous pouvez "déchiqueter" la fonction comme vous le souhaitez. Il peut répondre à tous vos souhaits.

Par exemple, vous pouvez spécifier le type d'opérations qui vous intéresse, ou quels MAGICs, ou entrer une condition d'ouverture de poste et plus encore.

Voici un exemple de séparation en Achat et Vente :

Nos possibilités ne sont limitées que par notre imagination. Soyez audacieux et ça marchera.


Je vais l'essayer, merci beaucoup !
 

Au fait, à propos des drapeaux.

Vous pouvez utiliser les différents drapeaux comme un système de relais pour basculer les actions de différentes opérations. Ils sont tout à fait capables de répondre à tous vos désirs.

Mais il est important d'avoir une idée claire de ce que vous voulez et de la façon dont vous voulez que cela fonctionne.

Tout comme dans un embranchement ferroviaire, vous devez avoir une idée précise du fonctionnement des aiguillages.

 

Chers pros, dites-moi... J'ai un script pour tracer mes calculs sur un graphique. Pour commencer à dessiner, je dois faire un glisser-déposer sur la carte depuis le navigateur. Ma question est la suivante : est-il possible de faire en sorte que le script soit appelé à partir du panneau "Graphic Tools" en appuyant sur une touche (la mienne ou celle qui est assignée à l'une des touches existantes) ?

 
kon12:

Chers pros, dites-moi... J'ai un script pour tracer mes calculs sur le graphique. Pour commencer à dessiner, je dois faire un glisser-déposer sur la carte depuis le navigateur. Question - est-il possible de faire en sorte que le script soit appelé à partir du panneau "Études de lignes" en appuyant sur une touche (la mienne ou celle qui est assignée) ?


Touches de raccourci

Les hot keys (touches d'accélération) sont des touches et des combinaisons de touches qui vous permettent d'exécuter rapidement diverses commandes sans avoir à utiliser les menus ou les panneaux de commande.

  • "ï " - défilement du graphique vers la gauche ;

  • " ð " - défilement du graphique vers la droite ;

  • " ñ " - défilement rapide du graphique vers la gauche ; en cas d'échelle fixe - défilement du graphique vers le haut ;

  • ð " " - défilement rapide du graphique vers la droite, et en cas d'échelle fixe - défilement du graphique vers le bas ;

  • Numpad 5 - rétablir l'échelle verticale automatique du graphique après qu'elle ait été modifiée. Et en cas d'échelle fixe - ramener le graphique dans les limites de l'affichage ;

  • Page précédente - fait défiler rapidement le graphique vers la gauche ;

  • Page suivante - défilement rapide du graphique vers la droite ;

  • Accueil - déplacer le graphique au début ;

  • Fin - déplace le graphique vers la fin ;

  • "-" - zoom arrière sur le graphique ;

  • "+" - zoom avant sur le graphique ;

  • Supprimer - supprime tous les objets graphiques sélectionnés ;

  • Backspace - supprime les derniers objets dans la fenêtre du graphique ;

  • Entrée - ouvrir/fermer la fenêtre de navigation rapide ;

  • Esc - fermer les fenêtres de dialogue ;

  • F1 - ouvre cette fenêtre "Guide de l'utilisateur" ;

  • F2 - ouvre la fenêtre "Archives de citations" ;

  • F3 - ouvre la fenêtre "Variables globales" ;

  • F4 - charger MetaEditor;

  • F6 - appelle la fenêtre "Tester" pour tester le conseiller expert attaché à une fenêtre graphique ;

  • F7 - fenêtre d'appel avec les propriétés du conseiller expert attaché à la fenêtre du graphique pour modifier les paramètres.

  • F8 - appelle la fenêtre "Chart Settings" ;

  • F9 - appelle la fenêtre "Nouvelle commande".

  • F10 - ouvre la "fenêtre des citations" ;

  • F11 - activer/désactiver le mode plein écran ;

  • F12 - déplace le graphique d'une barre vers la gauche ;

  • Shift+F12 - déplace le graphique d'une barre vers la droite ;

  • Shift+F5 - passer au profil précédent ;

  • Alt+1 - affiche le graphique comme une séquence de barres (le convertit en un graphique à barres) ;

  • Alt+2 - affiche le graphique comme une séquence de chandeliers japonais (le transforme en un graphique en chandelier) ;

  • Alt+3 - affiche le graphique en ligne brisée (le convertit en graphique linéaire) ;

  • Alt+A - copier tous les résultats de test ou d'optimisation du conseiller expert dans le presse-papiers ;

  • Alt+W - appelle la fenêtre de gestion du graphique ;

  • Alt+F4 - fermer le terminal du client ;

  • Alt+Backspace ou Ctrl+Z - annule la suppression de l'objet ;

  • Ctrl+A - définir la hauteur par défaut pour toutes les fenêtres de l'indicateur ;

  • Ctrl+B - appelle la fenêtre "Liste des objets" ;

  • Ctrl+C ou Ctrl+Insert - copie dans le tampon ;

  • Ctrl+E - activer/désactiver l'utilisation de l'Expert Advisor ;

  • Ctrl+F - activer/désactiver "Crosshair" ;

  • Ctrl+G - afficher/masquer la grille ;

  • Ctrl+H - afficher/masquer la ligne OHLC ;

  • Ctrl+I - appelle la fenêtre "Liste des indicateurs" ;

  • Ctrl+L - afficher/masquer les volumes ;

  • Ctrl+P - imprimer le graphique ;

  • Ctrl+S - enregistrer le graphique dans un fichier avec les extensions "CSV", "PRN", "HTM" ;

  • Ctrl+W ou Ctrl+F4 - fermer la fenêtre du graphique ;

  • Ctrl+Y - afficher/masquer les séparateurs de période ;

  • Ctrl+Z ou Alt+Backspace - annule la suppression d'un objet ;

  • Ctrl+D - ouvrir/fermer la "fenêtre de données";

  • Ctrl+M - ouvrir/fermer la fenêtre "Market Watch" ;

  • Ctrl+N - ouvrir/fermer la fenêtre" Navigateur" ;

  • Ctrl+O - ouvrir/fermer la fenêtre" Paramètres" ;

  • Ctrl+R - ouvrir/fermer la fenêtre" Testeur" ;

  • Ctrl+T - ouvrir/fermer la fenêtre" Terminal" ;

  • Ctrl+F5 - passer au profil suivant ;

  • Ctrl+F6 - active la fenêtre du graphique suivant ;

  • Ctrl+F9 - ouvre la fenêtre "Terminal - Commerce" et y place le focus du contrôle. Ensuite, vous pouvez gérer l'activité de trading à l'aide du clavier.

Il est possible d'attribuer des touches de raccourci pour appeler n'importe quel élément de la fenêtre "Navigator", à l'exception des éléments du groupe "Comptes". Pour attribuer un raccourci à un élément, il faut exécuter la commande "Attribuer un raccourci clavier" de son menu contextuel. Les touches de raccourci attribuées ont une priorité plus élevée que les touches prédéfinies. Par exemple, initialement Ctrl+O correspond à l'appel de la fenêtre des paramètres du terminal. Si l'indicateur de volume On Balance peut également être attribué à cette combinaison, l'appui sur Ctrl+O n'ouvrira pas la fenêtre des paramètres du terminal.

 
Vinin:

Touches de raccourci

Les hot keys (touches d'accélération) sont des touches et des combinaisons de touches qui vous permettent d'exécuter rapidement diverses commandes sans avoir à utiliser les menus ou les panneaux de commande.


Je ne me suis pas exprimé précisément. Question - est-il possible de faire un script à appeler à partir du panneau "Outils graphiques" en cliquant sur une icône (par exemple l'icône Fibo) ?