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

 
forexnew:

Comment se représenter :

/

dans la chaîne ?

Par exemple :

string path=TerminalPath()+"/logs/"+tekTime+".log" ;

donne une erreur, et si vous enlevez le slash "/"

string path=TerminalPath()+"logs "+tekTime+".log" ;

- pas d'erreur.




Lire ici et ici.

 
ZZZEROXXX:

peut-être voir ce que retourne IsTradeAllowed() ?

Pouvez-vous m'aider ? J'essaie de construire une tendance par deux points, liés aux barres par N barres en avant du dernier point. C'est-à-dire entrant - prix en temps du premier et du deuxième point, et N exprimé en nombre de barres à venir (case à cocher faisceau = faux). Si le deuxième point, par exemple, se trouve sur la barre 1 à partir de la barre 0 actuelle, et que je dois en tirer des informations 10 barres plus loin, comment puis-je calculer le moment et le prix de la barre à partir du futur ?

Cette méthode fonctionne également si vous tombez par hasard sur un fil de discussion occupé pendant la compilation de votre EA. Je cherche un moyen d'afficher dans les commentaires d'EA les messages des journaux concernant les demandes. Il semble que pratiquement peu de personnes aient demandé une telle tâche.
 
PapaYozh:


Lire ici et ici.

Merci !
 

Les estimés gourous ne peuvent-ils pas aider ?

pvm117 20.10.2011 18:26

Bonjour !

Comme première expérience, j'ai décidé de mettre en œuvre l'algorithme suivant : je peux m'attendre à un fort mouvement du marché à la hausse ou à la baisse dans un certain temps après que les lignes de Bollinger convergent dans un couloir étroit. Dans mon Expert Advisor, j'analyse l'état des lignes de Bollinger et lorsqu'elles deviennent très proches(Delta pips), nous plaçons un ordre de vente en attente dans la direction inférieure (à un pasOpen pips en dessous de la ligne inférieure), en espérant que le marché ira soudainement dans cette direction. Si le marché est allé dans une autre direction, nous supprimons simplement cet ordre.

extern double Delta=800.0;              // Ширина канала, которую мы считаем достаточно узкой чтобы ожидать скоро серьезного движения в одну из сторон
extern double StepOpen=150.0;           // Отступ от линии Боллинджера  для открытия отложенного ордера
extern double TP=350.0;                 // Take Profit
extern double SL=400.0;                 // Stop Loss

int start()
  {
   double T1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0);  // верхняя линия Боллинджера
   double T2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); // нижняя линия Боллинджера
   if ((Ask>T1+StepOpen*Point)&&OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) OrderDelete(0); // если рынок пошел вверх – то удаляем отложенный ордер
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true) return(0); // если есть ранее открытый ордер – прекращаем выполнение текущей итерации советника
   if (T1-T2<Delta*Point) {               // если линии Боллинджера сблизились ближе чем на Delta пунктов начинаем операцию открытия ордера
      double PriceOpen=NormalizeDouble(T2-StepOpen*Point,5);  // вычисляем цену открытия
      double StopLoss=NormalizeDouble(T2-StepOpen*Point+SL*Point,5); // вычисляем StopLoss
      double TakeProfit=NormalizeDouble(T2-StepOpen*Point-TP*Point,5); // вычисляем TakeProfit
      OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу
            }
   return(0);
  }
L'algorithme fonctionne de manière instable, ouvre parfois deux ordres dans un court laps de temps, donne constamment des erreurs OrderSend Error 130 et OrderSend Error 138, et la suppression des ordres ouverts en cas de mouvements du marché dans l'autre direction ne fonctionne pas du tout.

S'il vous plaît, conseillez-nous ! Merci !

 
pvm117:

Les estimés gourous ne peuvent-ils pas aider ?

pvm117 20.10.2011 18:26

Bonjour !

Comme première expérience, j'ai décidé de mettre en œuvre l'algorithme suivant : je peux m'attendre à un fort mouvement du marché à la hausse ou à la baisse dans un certain temps après que les lignes de Bollinger convergent dans un couloir étroit. Dans mon Expert Advisor, j'analyse l'état des lignes de Bollinger et lorsqu'elles deviennent très proches(Delta pips) , nous plaçons un ordre de vente en attente dans la direction inférieure (à un pasOpen pips en dessous de la ligne inférieure), en espérant que le marché ira soudainement dans cette direction. Si le marché est allé dans une autre direction, nous supprimons simplement cet ordre.

L'algorithme fonctionne de manière instable, ouvre parfois deux ordres dans de courts intervalles, donne constamment des erreurs OrderSend Error 130 et OrderSend Error 138, et la suppression des ordres ouverts au cas où le marché se déplace dans l'autre direction ne fonctionne pas du tout.

S'il vous plaît, conseillez-nous ! Merci !

OrderSend(Symbol(),OP_SELL,0.1,PriceOpen,5,StopLoss,TakeProfit,0,0,0,Green); //  открываем ордер на продажу

Il nes'agit pas d'un ordre en attente, mais d'un ordre au marché .

Par conséquent, son prix d'ouverture doit être différent et il ne peut pas être supprimé (OrderDelete), mais seulement fermé.

 

Salutations à tous les connaisseurs et aux simples lecteurs expérimentés de ce fil de discussion ! Et toute personne qui peut m'aider=)

Quelle est la manière la plus simple et la plus "correcte" d'obtenir la périodicité ? En d'autres termes, pour simplifier, je veux exécuter automatiquement une action toutes les 15 minutes.

Dans mon cas, il s'agit de sauvegarder un fichier sur le disque avec quelques statistiques. Maintenant, j'ai un script qui fait ce que je veux, et c'est littéralement 20 lignes de code. Alors comment faire pour que ces 20 lignes se répètent à intervalles réguliers ? Si j'ai bien compris, il n'y a pas de timers dans MQL... Dois-je utiliser un EA qui fera une sorte de vérification à chaque tick... ?

J'espère votre aide et vos conseils)

 
Bonjour, pouvez-vous me dire s'il existe un autre moyen de définir l'horizon temporel d'un EA multi-devises autre que dans l'indicateur via M_30 H_1, D_1 et ainsi de suite ?
 
skyjet:
Bonjour, pouvez-vous me dire s'il existe un autre moyen de définir l'horizon temporel d'un EA multi-devises autre que dans l'indicateur via M_30 H_1, D_1 et ainsi de suite ?

Quel est le problème ?
 

Bonjour.

Voici une question : comment utiliser la ligne jaune comme prévision de momentum et la ligne blanche comme prévision OsM sur une longue tendance haussière du cadre supérieur ?

Il est difficile de déterminer l'amplitude entre les pics des vagues, alors conseillez où creuser ensuite ;)


 
Sancho77:

Sélectionnez la première, parmi les positions ouvertes.

Vous avez besoin de tout cela pour vérifier la distance en pips entre la première position ouverte et la dernière position ouverte parmi les positions ouvertes.

Juste une réécriture rapide, peut-être que ça aidera ? Je n'ai pas vérifié...

double PriceOpenFirstPos(string sy="", int op=-1, int mn=-1) {
   datetime t=TimeCurrent();
   double   r=0;
   int      i, k=OrdersTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==sy || sy=="") {
            if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
               if (op<0 || OrderType()==op) {
                  if (mn<0 || OrderMagicNumber()==mn) {
                     if (OrderOpenTime()<t) {
                        t=OrderOpenTime();
                        r=OrderOpenPrice();
                        }
                     }
                  }
               }
            }
         }
      }
   return(r);
}

Essayez comme ça...