[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 - 5. - page 328

 
Merincool:


Et ce que j'ai aussi pensé, selon votre logique, l'outil devrait calculer le RSI à partir de la limite et jusqu'à la barre 0, mais est-ce que cela importe de calculer le RSI à partir de la fin ou du début ? Il devrait calculer le RSI pour chaque barre dans une plage donnée et mettre la valeur dans un tampon (c'est-à-dire dans un tableau), et ensuite juste comparer trois valeurs consécutives dans un tableau les unes avec les autres. Ou est-ce que ce n'est pas le cas ?

Oui, dans ma hâte, j'ai eu tort.

Je n'avais pas remarqué que vous avez 2 boucles qui se suivent.

En général, un seul cycle est utilisé dans un indicateur, par conséquent, il est utilisé pour le calcul et la comparaison. Et si tout est réalisé en un cycle, c'est bien sûr, que l'élément du tableau[i+1] soit calculé ou pas encore :)

 
amurik61:


Expliquer : la signification de "dans le cycle, vous vous référez aux valeurs non calculées de l'indicateur".

Je me suis empressé de suivre le conseil, voir le post précédent.

 
Les gars, dites-moi ce qui ne va pas avec la procédure, s'il vous plaît ! Premier message sur cette page.
 
Fox_RM:
Les gars, dites-moi ce qui ne va pas avec la procédure, s'il vous plaît ! Premier message sur cette page.

ObjectSetText(name," Vl" , 10, "Times New Roman", c) ;

 
Et regardez dans la liste des objets, peut-être qu'ils sont là, mais avec un prix tordu, et, ou le temps.
 
Comment ressusciter le compilateur ? MetaEditor 4 écrit que le compilateur ne peut pas être démarré.
 

Pouvez-vous me dire pourquoi l'indicateur ne fonctionne pas dans le testeur ?


//+------------------------------------------------------------------+
//|                                                   ProfitLine.mq4 |
//|                               Copyright © 2010, Evgeniy Trofimov |
//|                           https://www.mql5.com/ru/users/evgetrofi |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Evgeniy Trofimov"
#property link      "https://www.mql5.com/ru/users/evgetrofi"
#property indicator_chart_window
extern double Profit=0.0;
extern int MagicNumber = 0;
extern string NameBuy = "LineBuy";
extern string NameSell = "LineSell";
extern color ColorBuy = DarkBlue;
extern color ColorSell = FireBrick;
double LotsBuy, LotsSell;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init() {

   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit() {
   if (ObjectFind(NameBuy)!=-1) ObjectDelete(NameBuy);
   if (ObjectFind(NameSell)!=-1) ObjectDelete(NameSell);
   
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start() {
   int    counted_bars=IndicatorCounted();
   int Window;
   double PB = ProfitPrice(Symbol(), OP_BUY, MagicNumber, Profit);
   double PS = ProfitPrice(Symbol(), OP_SELL, MagicNumber, Profit);
   //double P = (PB*LotsBuy + PS*LotsSell) / (LotsBuy+LotsSell);
   //Window=WindowFind(Shortname);
   Window=0;
   if (ObjectFind(NameBuy)==-1) ObjectCreate(NameBuy,OBJ_HLINE,Window,0,PB);
   ObjectSet(NameBuy,OBJPROP_PRICE1,PB);
   ObjectSet(NameBuy,OBJPROP_COLOR,ColorBuy);
   if (ObjectFind(NameSell)==-1) ObjectCreate(NameSell,OBJ_HLINE,Window,0,PS);
   ObjectSet(NameSell,OBJPROP_PRICE1,PS);
   ObjectSet(NameSell,OBJPROP_COLOR,ColorSell);

} //start()
//+------------------------------------------------------------------+
double ProfitPrice(string fSymbol, int fType, int fMagic=0, double MyProfit=0.0){
   //Функция возвращает цену, на которую необходимо установить уровень TakeProfit, чтобы получить прибыль MyProfit
   double SummPrice=0.0, SummLots=0.0, Formula=0.0;
   int k;
   int total = OrdersTotal();
   for (int i = total-1; i >= 0; i--) {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==fSymbol) {
         if(OrderMagicNumber()==fMagic || fMagic==0) {
            if(OrderType()==fType) {
               k++;
               SummLots=SummLots+OrderLots();
               SummPrice=SummPrice+OrderOpenPrice()*OrderLots();
            }
         }
      }
   }//Next i  
   
   if(k>0){
      if(fType==OP_BUY){
         Formula = SummPrice/SummLots + 
         MyProfit * MarketInfo(fSymbol, MODE_POINT) / 
         (MarketInfo(fSymbol, MODE_TICKVALUE) * SummLots) +
         MarketInfo(fSymbol, MODE_SPREAD) * MarketInfo(fSymbol, MODE_POINT);
         LotsBuy = SummLots;
      } else {
         Formula = SummPrice/SummLots - 
         MyProfit * MarketInfo(fSymbol, MODE_POINT) / 
         (MarketInfo(fSymbol, MODE_TICKVALUE) * SummLots) -
         MarketInfo(fSymbol, MODE_SPREAD) * MarketInfo(fSymbol, MODE_POINT);
         LotsSell = SummLots;         
      }
   }
   
   return(Formula);
}//ProfitPrice()
//+------------------------------------------------------------------+
 
david2:

Pouvez-vous me dire pourquoi l'indicateur ne fonctionne pas dans le testeur ?




Pourquoi cela devrait-il fonctionner dans le testeur ?
 
valeryk:

ObjectSetText(name," Vl" , 10, "Times New Roman", c) ;


Les citations n'ont pas aidé.
 
FAQ:
Regardez dans la liste des objets, peut-être qu'ils sont là, mais avec un prix, et, ou un temps, de travers.

J'ai vérifié. Non, ils ne le sont pas. J'ai tout essayé.
Raison: