[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 328

 

Question インジケーターウィンドウにテキストラベルが表示されないのはなぜですか?

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


そして、私が思ったのは、あなたのロジックによると、ツールはリミットと0バーからRSIを計算するはずですが、RSIを端から計算するか、最初から計算するかの違いはありますか? それは、与えられた範囲内の各バーのRSIを計算して、その値をバッファ(つまり配列)に入れ、そして配列の3つの連続する値を互いに比較するだけでいいのです。それとも、そうではないのでしょうか?

そう、焦っていた私は間違っていたのだ。

ループが2つ続いているのは気がつきませんでした。

通常、1つの指標には1つの周期が使用され、その結果、計算や比較に使用される。そして、すべてを1サイクルで実現すれば、もちろん配列要素[i+1]がまだ計算されているかどうかは関係ありません :).

 
amurik61:


解説:"ループの中で、指標の未計算の値を参照する " の意味

アドバイスを急ぎました、前の記事を参照してください。

 
みんな、この手順のどこが悪いのか、教えてくれこのページの最初の投稿です。
 
Fox_RM:
みんな、この手順のどこが悪いのか、教えてくれこのページの最初の投稿です。

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

 
そして、オブジェクトのリストを見てください、多分それらはそこにありますが、曲がった価格、そして、時間
 
コンパイラを復活させるには? MetaEditor 4は、コンパイラが起動できないと書いています。
 

テスターでインジケーターが動作しない理由を教えてください。


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

テスターでインジケーターが動作しない理由を教えてください。




なぜテスターで動作する必要があるのか?
 
valeryk:

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


見積もりは役に立たなかった。