[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 328

 

문제는 표시기 창에 텍스트 레이블이 표시되지 않는 이유입니다.

 // -- Процедура
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 05/06/2013 17:01.

 
Merincool :


그리고 여기에 내가 생각한 것이 있습니다. 귀하의 논리에 따르면 칠면조는 한계에서 0 bar까지 RSI를 계산해야하지만 끝에서 또는 처음부터 RSI를 계산할 쪽이 실제로 중요합니까? 그는 또한 지정된 범위의 각 막대에 대한 RSI를 계산하고 값을 버퍼(즉, 배열)에 넣은 다음 단순히 배열에 있는 세 개의 연속 값을 서로 비교해야 합니다. 아님?

네, 제가 급했습니다. 제가 틀렸습니다.

나는 당신이 차례로 2 사이클을 가지고 있다는 사실에주의를 기울이지 않았습니다.

일반적으로 표시기에서 각각 한 주기로 계산하고 비교합니다. 그리고 모든 것이 한 주기로 구현된다면 물론 배열 요소 [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);


따옴표가 도움이되지 않았습니다.