포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 868

 
내가 필요로 하는 것 - 한 명의 전문가가 여러 악기에서 동시에 작업합니다. 데이터가 변경되면 정보가 전역 변수를 통해 Expert Advisor의 다른 복사본으로 전송됩니다. 그들은 각 창을 다시 그립니다. 언로드하고 현재 활성화되어 표시되는 창에서만 다시 그리도록 하는 것이 좋을 것이라고 생각했습니다. 나머지는 사용자가 전환할 때까지 다시 그려지지 않습니다.
 
pycha :
내가 필요로 하는 것 - 한 명의 전문가가 여러 악기에서 동시에 작업합니다. 데이터가 변경되면 정보가 전역 변수를 통해 Expert Advisor의 다른 복사본으로 전송됩니다. 그들은 각 창을 다시 그립니다. 언로드하고 현재 활성화되어 표시되는 창에서만 다시 그리도록 하는 것이 좋을 것이라고 생각했습니다. 나머지는 사용자가 전환할 때까지 다시 그려지지 않습니다.

이를 위해 API가 필요하지 않으며 모든 것이 단순하지 않지만 매우 간단합니다.

 
tara :

이를 위해 API가 필요하지 않으며 모든 것이 단순하지 않지만 매우 간단합니다.

그래서 초보자를 위한 해결책을 알려주세요
 
초보자가 아닌 초보자를 위해 Expert Advisor를 시작할 때 동일한 GV에 통화 쌍의 이름을 저장하는 것이 좋습니다.
 
클라이언트 시작 중에 모두 동시에 실행됩니다. 내가 당신을 다시 이해하지 못했거나
Expert Advisor를 시작하는 순간 동일한 GV에 통화 쌍의 이름을 저장하십시오.
아무 소용이 없을거야
 
pycha :
클라이언트 시작 중에 모두 동시에 실행됩니다. 내가 너를 다시 이해하지 못하거나 아무 소용이 없다.

당신은 당신이 고양이를 좋아하지 않는다고 생각합니다.

당신은 그들을 요리하는 방법을 모릅니다.

Expert Advisor는 활성 차트의 기호가 시작 기호와 일치하는 경우에만 다시 그리기를 시작합니다.

 
나는 문제의 절반이 이미 제거되었다는 것을 깨달았습니다))). 그러나 EA 자체에서 다시 그리기, 배열 지우기, 새 데이터를 배열로 가져오기를 준비하는 기능이 수행됩니다. 이는 수행할 수 없습니다. 이제 Expert Advisor는 20개의 기기에서 작동하며 백분율은 지속적으로 5 - 10%로 로드됩니다. 촉진하고 최적화할 수 있는 방법을 찾고 있습니다)))))
 
나한테는 아니야.
 
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//--- check for bars count
   if (rates_total<InpMAPeriod- 1 || InpMAPeriod< 2 )
       return ( 0 );
//--- counting from 0 to rates_total
   ArraySetAsSeries (ExtLineBuffer, false );
 //  ArraySetAsSeries(ExtLineBufferFid,false);
   ArraySetAsSeries (close, false );
//--- first calculation or number of bars was changed
   if (prev_calculated== 0 )
   {
       ArrayInitialize (ExtLineBuffer, 0 );
       ArrayInitialize (ExtLineBufferFid, 0 );  
   }       
//--- calculation
  
    CalculateSimpleMA(rates_total,prev_calculated,close);
    
     ExtLineBufferFid[rates_total- 3 ]=(ExtLineBuffer[rates_total- 2 ]*InpMAPeriod+close[InpMAPeriod+ 1 ])/(InpMAPeriod+ 1 );
  //sma99[i]=(sma100[i]*100-d[i-100])/99;
//(firstValue*InpMAPeriod+price[i+1])/InpMAPeriod;
///(firstValue*InpMAPeriod+price[InpMAPeriod+1])/(InpMAPeriod+1);
// Y[i]=Y[i+1]+(X[0]-X[N])/N    
     Print ( "  " ,ExtLineBufferFid[rates_total- 3 ]
         , "  " ,ExtLineBufferFid[rates_total- 2 ]
         , "  " ,ExtLineBuffer[rates_total- 2 ]
             );      
//--- return value of prev_calculated for next call
   return (rates_total);
  }

실례합니다, 같은 것에 백 번을 적용하는 것은 부끄러운 일입니다.

글쎄, 거의 한 달 동안 나는 문 앞에서 숫양처럼 보였다. 나는 그것을 얻지 못한다.

작업은 이동 평균이 13인 더 작은 주문 의 이동 평균을 계산하는 것입니다.

즉, 13을 기반으로 기간 12를 계산합니다.

 
Top2n :

실례합니다, 같은 것에 백 번을 적용하는 것은 부끄러운 일입니다.

글쎄, 거의 한 달 동안 나는 문 앞에서 숫양처럼 보였다. 나는 그것을 얻지 못한다.

작업은 이동 평균이 13인 더 작은 주문의 이동 평균을 계산하는 것입니다.

즉, 13을 기반으로 기간 12를 계산합니다.

필요한 동일한 기간에 직접 계산하지 않는 요점이 무엇입니까?!