Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1058

 
m8akca:

Cet algorithme peut être programmé. Ma tête est en ébullition pour la troisième semaine !

Bonjour, j'essaie de programmer l'algorithme, il fonctionne, mais il n'ouvre pas d'ordre de vente lors de la comparaison des prix. Je travaille avec cet algorithme depuis une troisième semaine ! Je ne vous enverrai pas mon code car j'ai essayé de l'écrire mais il ne fonctionne pas. Veuillez me dire s'il est possible de mettre en œuvre ce programme ? Et si vous n'avez pas l'esprit, s'il vous plaît envoyez-moi le code sera très reconnaissant !

Le programme : Nous ouvrons un ordre d'achat, prenons le prix d'ouverture de l'ordre d'achat et le comparons au prix d'offre et lorsque le prix d' ouverture de l'ordre d'achat est égal au prix d'offre, nous ouvrons un ordre de vente au prix d'ouverture de l'ordre d'achat.

On peut programmer presque tout, et cet algorithme d'autant plus.

Il n'y a qu'un seul problème dans l'algorithme (en gras), il se peut qu'il ne soit pas égal pendant très longtemps (peut-être plusieurs années). C'est pourquoi, dans ce cas, nous ne devons pas définir la condition de contrôle égale ==, mais égale ou supérieure à =>. En même temps, après avoir ouvert un ordre, nous devrions interdire l'ouverture d'autres ordres, ce qui fait bouillir la tête.

 
AlexeyVik:

Presque tout peut être programmé, et cet algorithme encore plus.

Un seul problème dans l'algorithme (souligné en gras), il se peut qu'il ne soit pas égal pendant très longtemps (peut-être plusieurs années). C'est pourquoi, dans ce cas, nous ne devons pas définir la condition de contrôle égale ==, mais égale ou supérieure à =>. En même temps, après avoir ouvert un ordre, nous devrions interdire l'ouverture d'autres ordres, ce qui fait bouillir la tête.

Le problème est que j'ai besoin d'une comparaison exacte ==, pas de savoir combien d'années il faut attendre, pourquoi si j'affiche par exemple dans mon commentaire le prix de l'ordre d'achat et le prix de l'offre et que ces variables coïncident à certains moments mais que la condition de comparaison == n'est pas remplie : Est-il POSSIBLE de programmer cet algorithme ? Ma tête est en ébullition pour la troisième semaine !
 

les archives ont été traitées. Pouvez-vous me dire, s'il vous plaît :

1. Est-il possible d'inclure plus d'une EA sur le même graphique ?

2. ou conseiller+script ?

3. est-il nécessaire de mettre sur le graphique de l'instrument exactement le TF qui est utilisé par le Conseiller Expert ? si oui, que se passera-t-il sinon ?

4. est-il nécessaire de mettre dans la fenêtre de l'instrument l'indicateur utilisé par l'Expert Advisor ? si oui, que se passera-t-il sinon ?

5. si l'EA utilise des devises multiples, est-il nécessaire d'ouvrir toutes les fenêtres avec ces paires de devises ?

 
m8akca:
Le fait est que j'ai besoin d'une comparaison exacte ==, pas de savoir combien d'années il faut attendre pourquoi si, par exemple, dans le commentaire, j'affiche le prix de l'ordre d'achat et le prix de l'offre et que ces variables coïncident à certains moments, mais que la condition de comparaison == n'est pas remplie : Est-il POSSIBLE de programmer cet algorithme ? Ma tête est en ébullition pour la troisième semaine !
Parce que le prix peut être _Point en plus ou en moins et ce n'est plus égal.
 

Veuillez m'indiquer la fonction qui compte le montant de la dernière série de trades perdants d'affilée. Si le TakeProfit est déclenché, il remet le compteur à zéro.

 

Bonjour à tous ! Dites-moi s'il existe un réseau, ou si quelqu'un a le temps d'écrire un conseiller, pour les paramètres suivants. 1) préciser le sens de l'achat (de la vente), et le prix de cet achat (de cette vente). 2) Je spécifie la taille de l'arrêt. 3) Je mets par exemple trois niveaux de prix, auxquels une partie de la taille du lot doit être fermée. Par exemple, j'expose l'ordre de vente à 1 $, dans les paramètres du conseiller précise combien de % (ou combien de volume) de fermeture à 1,2, combien de % (ou combien de volume) à 1,3 et le solde à 1,4.

 
ara66676:
Disons qu'il était important pour moi de déterminer le moment, 10 secondes avant la clôture de chaque cinq minutes, et puisque l'analyse comprend 28 paires de devises, cette barre sera pour n'importe quelle paire, et le nombre de ticks dans mon cas n'a pas d'importance.

Alors c'est plus simple comme ça :

datetime TSec ; // Heure actuelle en secondes à partir du début des cinq dernières minutes

TSec = TimeCurrentl() % 300 ; // Reste de la division. Il peut être comparé à 290 = 5 minutes - 10 secondes.

En cas de déconnexion du serveur, le dernier temps connu TimeCurrent ne changera pas et restera en retard sur le temps réel. Si l'on a confiance dans le minuteur système de l'ordinateur terminal, par exemple lorsqu'il est automatiquement synchronisé avec l'heure astronomique du système d'exploitation (erreur de 1 à 2 secondes) ou autrement, il est préférable de ne pas utiliser la dernière heure connue du serveur (heure de la dernière arrivée des guillemets), mais l'heure propre de l'ordinateur datetimeTimeLocal(). Ce temps est également compté à partir de 1970.01.01 0:00:00 en secondes et convient pour mesurer 5 minutes et 10 secondes, la différence entre les fuseaux horaires de l'ordinateur et du serveur n'est pas importante. Puis

TSec = TimeLocal() % 300 ;

 
Vlad143:

Alors c'est plus simple comme ça :

datetime TSec ; // Heure actuelle en secondes à partir du début des cinq dernières minutes

TSec = TimeCurrentl() % 300 ; // Reste de la division. Elle peut être comparée à 290 = 5 minutes - 10 secondes.

En cas de déconnexion du serveur, le dernier temps connu TimeCurrent ne changera pas et restera en retard sur le temps réel. Si l'on a confiance dans l'horloge système de l'ordinateur terminal, par exemple lorsque l'heure de l'ordinateur est automatiquement synchronisée avec l'heure astronomique du système d'exploitation (erreur de 1 à 2 secondes) ou autrement, il est préférable de ne pas utiliser la dernière heure connue du serveur (l'heure de la dernière arrivée des devis), mais l'heure de l'ordinateur datetimeTimeLocal(). Ce temps est également compté à partir de 1970.01.01 0:00:00 en secondes et convient pour mesurer 5 minutes et 10 secondes, la différence entre les fuseaux horaires de l'ordinateur et du serveur n'est pas importante. Puis

TSec = TimeLocal() % 300 ;

Merci, également utile.
 
Veuillez indiquer comment interrompre la sommation des positions non rentables.
    Подскажите, пожалуйста, как прервать суммирование убыточных позиций при срабатывании Тейкпрофита. После заново считать.
    
    Использую функцию Кimа 
    
     double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1,  datetime dt=0)
{
  p=0;
  int    i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (dt<OrderCloseTime()) {
             
             if(OrderProfit()<0){
              p+=OrderProfit();
            }
          }
        }
      }
    }
  }
 }
  
  return(p);
 
Neron_plus34:
Veuillez indiquer comment interrompre la sommation des positions non rentables.
if(dt<OrderCloseTime()) {
   if(OrderProfit()<0) p+=OrderProfit(); 
   else break;
   }