[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 328

 

Frage: Warum werden die Textbeschriftungen nicht im Indikatorfenster angezeigt?

// -- Процедура
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:


Und was ich auch dachte, nach Ihrer Logik sollte das Tool den RSI vom Limit und bis zum 0-Bar berechnen, aber macht es einen Unterschied, welche Seite den RSI vom Ende oder vom Anfang berechnen sollte? Es sollte den RSI für jeden Bar in einem bestimmten Bereich berechnen und den Wert in einen Puffer (ich meine in ein Array) legen, und dann einfach drei aufeinanderfolgende Werte in einem Array miteinander vergleichen. Oder ist das nicht der Fall?

Ja, in meiner Eile habe ich mich geirrt.

Ich hatte nicht bemerkt, dass Sie 2 Schleifen hintereinander haben.

In der Regel wird in einem Indikator ein Zyklus verwendet, der folglich zur Berechnung und zum Vergleich herangezogen wird. Und wenn alles in einem Zyklus realisiert wird, ist es natürlich egal, ob das Array-Element[i+1] schon berechnet ist oder nicht :)

 
amurik61:


Erläutern Sie die Bedeutung von "im Zyklus beziehen Sie sich auf die nicht berechneten Werte des Indikators".

Ich habe den Rat übereilt, siehe vorherigen Beitrag.

 
Leute, sagt mir bitte, was an dem Verfahren falsch ist! Erster Beitrag auf dieser Seite.
 
Fox_RM:
Leute, sagt mir bitte, was an dem Verfahren falsch ist! Erster Beitrag auf dieser Seite.

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

 
Und schauen Sie in der Liste der Objekte, vielleicht sind sie da, aber mit einem krummen Preis, und , oder Zeit
 
Wie kann ich den Compiler wieder zum Leben erwecken? MetaEditor 4 schreibt, dass der Compiler nicht gestartet werden kann.
 

Können Sie mir sagen, warum der Indikator im Testgerät nicht funktioniert?


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

Können Sie mir sagen, warum der Indikator im Testgerät nicht funktioniert?




Warum sollte es im Testgerät funktionieren?
 
valeryk:

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


Die Zitate waren nicht hilfreich.