[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 328

 

Pregunta: ¿por qué no se muestran las etiquetas de texto en la ventana del indicador?

// -- Процедура
void SetText(string name, string Vl, datetime t1, double p1, color c)
 {
 // if (ObjectFind(name)!=-1) ObjectDelete(name);
  ObjectCreate(name,OBJ_TEXT,WindowFind("Awesome_super_volumes"),0,0,0,0);
  ObjectSetText(name, Vl, 10, "Times New Roman", c);
  ObjectSet(name, OBJPROP_TIME1 , t1);
  ObjectSet(name, OBJPROP_PRICE1, p1);
  ObjectSet(name, OBJPROP_COLOR, c); 
  }
// -- Обращение
SetText("Awesome_super_volumes", DoubleToStr(VLUP,0), tmhgh, dist, Black);

https://www.mql5.com/ru/forum/142582/page325 06.05.2013 17:01.

 
Merincool:


Y lo que también pensé, según tu lógica la herramienta debería calcular el RSI desde el límite y hasta la barra 0, pero ¿hay alguna diferencia en qué lado debería calcular el RSI desde el final o desde el principio? Debería calcular el RSI para cada barra en un rango determinado y poner el valor en un buffer (me refiero a un array), y luego sólo comparar tres valores consecutivos en un array entre sí. ¿O no es así?

Sí, con las prisas, me equivoqué.

No me había dado cuenta de que tienes dos bucles seguidos.

Normalmente se utiliza un ciclo en un indicador, por lo que se utiliza para el cálculo y la comparación. Y si todo se realiza en un ciclo, es por supuesto, que no importa si el elemento de la matriz[i+1] se calcula o no todavía :)

 
amurik61:


Explique: el significado de "en el bucle se refiere a los valores no calculados del indicador"

Me apresuré a dar el consejo, ver el post anterior.

 
Chicos, ¡díganme qué hay de malo en el procedimiento, por favor! Primer puesto en esta página.
 
Fox_RM:
Chicos, ¡díganme qué hay de malo en el procedimiento, por favor! Primer puesto en esta página.

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

 
Y mira en la lista de objetos, tal vez están ahí, pero con un precio torcido , y , o tiempo
 
¿Cómo puedo resucitar el compilador? MetaEditor 4 escribe que el compilador no puede iniciarse.
 

¿Pueden decirme por qué el indicador no funciona en el probador?


//+------------------------------------------------------------------+
//|                                                   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:

¿Pueden decirme por qué el indicador no funciona en el probador?




¿Por qué debería funcionar en el probador?
 
valeryk:

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


Las comillas no ayudaron.