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

 

세르게예프 에 :

네, 제가 좀 무뚝뚝했습니다. 감사합니다. 그러나 여전히 이익실현 주문은 선택되지 않습니다.


Roger 에게, abolk :

아, 내가 눈치 채지 못한 문제를 잊어 버렸습니다. 고맙습니다!

 
Solree :

네, 제가 좀 무뚝뚝했습니다. 감사합니다. 그러나 여전히 이익실현 주문은 선택되지 않습니다.

수정된 루프 코드는 어디에 있습니까?
 

세르게예프 에 :

굳이 쓸 필요가 없는 수정은 하나뿐이라고 생각했다. 그러나 필요한 경우 여기에 있습니다.

 for ( int a = 0 ; a < OrdersTotal (); a++)
     if ( OrderSelect (a, SELECT_BY_POS, MODE_TRADES))
         if ( OrderComment () == "Aelit" && OrderType () == OP_SELL)
             OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble (Ask, Digits ), 0 );
 
Solree :

굳이 쓸 필요가 없는 수정은 하나뿐이라고 생각했다. 그러나 필요한 경우 여기에 있습니다.

당신은 결코 이해하지 못했습니다. 손가락으로 설명하겠습니다.

루프 시작 부분에 a=0 및 OrdersTotal ()=2가 있습니다.

첫 번째 제거 후 a= 1OrdersTotal ()= 1

모두. 두 번째 반복은 없을 것입니다. 그리고 단 하나의 주문만 남았습니다 . 그래서 더 명확?

어떤 결론을 내릴 수 있습니까? 그렇다면 문제에 대한 두 가지 가능한 해결책은 무엇입니까?
 

안녕하세요! 도와주세요. 표시기가 볼륨의 합계를 계산할 필요가 있습니다. 뭔가 효과가 없습니다.

 #property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Blue  
 
double Buf_0[];           
//--------------------------------------------------------------------
int init()                        
  {
//--------------------------------------------------------------------
   SetIndexBuffer ( 0 ,Buf_0);       
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 );
//--------------------------------------------------------------------
   return ;                     
  }
//--------------------------------------------------------------------
int start()                        
  {
   int i,                         
       n,                         
       Counted_bars;              
       double
       Sum;                      

//--------------------------------------------------------------------
   Counted_bars= IndicatorCounted (); 
   i= Bars -Counted_bars- 1 ;           
   while (i>= 0 )                     
     {
      Sum= 0 ;                 
       for (n=i;n<=i+ 1 ;n++) 
        {
         Sum=Sum + Volume[n];    
        }
      Buf_0[i]=Sum;   
      i--;                         
     }
//--------------------------------------------------------------------
   return ;                         
  }
//--------------------------------------------------------------------
 

세르게예프 에 :

OrderSelect 에서 0은 위치이기도 합니다. 즉, 2개의 주문이 있는 경우 해당 위치는 0과 1입니다.

 
Solree :

OrderSelect에서 0은 위치이기도 합니다. 즉, 2개의 주문이 있는 경우 해당 위치는 0과 1입니다.

네. 두 가지 주문. 그리고 OrdersTotal 은 2를 반환합니다.

다시 읽어보세요.

내 말을 믿지 않는다면 Print to Journal을 사용하십시오.

 
prom18 :

안녕하세요! 도와주세요. 표시기가 볼륨의 합계를 계산할 필요가 있습니다. 뭔가 효과가 없습니다.


예 작동하는 것 같습니다

 
prom18 :

안녕하세요! 도와주세요. 표시기가 볼륨의 합계를 계산할 필요가 있습니다. 뭔가 효과가 없습니다.


예 작동하는 것 같습니다

 
Vinin :


예 작동하는 것 같습니다

볼륨[100]+볼륨[99]+...+볼륨[1]을 의미했습니다. 그래프는 오름차순 곡선처럼 보여야 합니다.