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

 

다음과 같은 재계산 알고리즘이 있습니다.

   int ic= IndicatorCounted ();
   if ( Bars -ic- 1 > 1 ) {ic=reinit();}
   int limit= Bars -ic-1; //BarsPrev=Bars; // кол-во пересчетов
   if (History!= 0 && limit>History) limit=History- 1 ; // кол-во пересчетов по истории

   for ( int i=limit; i>= 1 ; i--) // цикл по непосчитанным и предпоследнему барам
     {
       int n;
       int iShift=i+Shift;
      
       if (i== 0 )
      Input[i]= iClose (Symb, Period (), iShift);
       else
      Input[i]=( iHigh (Symb, Period (), iShift)+ iLow (Symb, Period (), iShift))/ 2 ;
       }

내가 이해하는 한 마지막 막대를 제외한 모든 막대를 계산합니다.

i=0일 때 마지막 막대가 다시 계산되도록 만드는 방법을 알려주십시오(루프에 이미 이에 대한 조건이 있음)?

 
답변 주셔서 대단히 감사합니다)))) iClose 를 닫기 [0]으로 대체했고 모든 것이 밝혀졌습니다. .... 이상하지만 ...))))) 다시 한번 감사합니다)))
 
Lisi4ka330 :
답변 주셔서 대단히 감사합니다)))) iClose를 닫기 [0]으로 대체했고 모든 것이 밝혀졌습니다. 비록 이상하지만 ...))))) 다시 한번 감사합니다)))
프로토콜의 경우 iClose (NULL, 0, 1)는 Close[0]이 아니라 Close[1]입니다.
 
Cmu4 :

다음과 같은 재계산 알고리즘이 있습니다.

내가 이해하는 한 마지막 막대를 제외한 모든 막대를 계산합니다.

i=0일 때 마지막 막대가 다시 계산되도록 만드는 방법을 알려주십시오(루프에 이미 이에 대한 조건이 있음)?

아니오, 당신은 씁니다 >= 1 (첫 번째 막대보다 크거나 같음, 즉, 0번째 막대에 도달하지 못합니다... 조건을 >=0으로 변경

추신


그리고 이것은 무엇을 위한 것입니까?

 int iShift=i+Shift;
 
Aleksander :

아니오, 당신은 씁니다 >= 1 (첫 번째 막대보다 크거나 같음, 즉, 0번째 막대에 도달하지 못합니다... 조건을 >=0으로 변경

추신


그리고 이것은 무엇을 위한 것입니까?

정확히, 나는 내 "실험"에 대해 완전히 잊어 버렸습니다. 최근에 0에서 1로 수정되어 남아있습니다. 고맙습니다!

iShift는 외부로 설정된 시프트입니다.

 
Cmu4 :

정확히, 나는 내 "실험"에 대해 완전히 잊어 버렸습니다. 최근에 0에서 1로 수정되어 남아있습니다. 고맙습니다!

iShift는 외부로 설정된 시프트입니다.

누다... 하지만 당신은 0번째 마디를 봐야 한다고 씁니다...

그럼 가져가

 f (i== 0 )
      Input[i]= iClose (Symb, Period (), iShift);

거기에서 이동하십시오 :) - 0을 넣으십시오 (0 chtoli)

 f (i== 0 )
      Input[i]= iClose (Symb, Period (), 0);
 
질문이 있습니다. 터미널의 트랜잭션 시퀀스 번호는 영구적으로 할당됩니까, 아니면 변경됩니까? 예를 들어, 숫자 0 - 1 - 2로 3개의 거래를 열었고 거래 번호 1을 마감했는데 이 경우 거래 0과 2는 그대로 유지됩니까, 아니면 0과 1이 될까요?
 
예, 대기열에서 이동하며 트랜잭션, 그래픽 개체 및 전역 변수 뿐만 아니라 동일한 방식으로 작동합니다.
 

도와주세요, 제발. 다음 조건을 충족할 수 있습니까?

현재 가격 이 MA를 넘으면 알고리즘이 { }에서 시작되는지 확인해야 합니다.

 if (Bid== iMA ( 0 , 0 ,ma_period,ma_shift,ma_method, PRICE_MEDIAN , 0 )
{
 ...
}

if (Ask== iMA ( 0 , 0 ,ma_period,ma_shift,ma_method, PRICE_MEDIAN , 0 )
{
 ...
}
 
orb :

도와주세요, 제발. 다음 조건을 충족할 수 있습니까?

현재 가격이 MA를 넘으면 알고리즘이 { }에서 시작되는지 확인해야 합니다.


그리고 무엇, 그것이 교차하는 방향이 중요합니까 ??? 천재 전술...

코드 베이스에 검사기 및 기타 지표가 교차하는 Expert Advisor가 많이 있으므로 휠을 다시 만들 필요가 없습니다. ;)