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

 

구매 양초 의 최대 꼬리를 어떻게 찾을 수 있습니까?

저것들. 현재 사상, 이전 매수를 구성하고 매수 양초의 꼬리를 결정한 다음 차트를 계속 작성하면 매수 양초가 다시 나타나고 꼬리를 다시 계산합니다.

이제 이러한 꼬리의 최대값을 찾아 변수에 쓰는 방법???? 여기에 코드가 있습니다

 int Sum_xb;
int Sum_xs;
datetime last_time;   // глобальная переменная
int Kol_vo_b;
int Kol_vo_s;
int Sr_zn_b;
int Sr_zn_s;
extern int Num_kolvo_b= 10 ;
extern int Num_kolvo_s= 10 ;
int Zn_b;
int Max_b;

int start()
  {
   
   int xBost_b;
   int xBost_s;
double hi=High[ 1 ];
double op=Open[ 1 ];
double cl=Close[ 1 ];
double lo=Low[ 1 ];


   if (last_time != Time[ 0 ])
   {
       // Ура, новый бар!
      last_time = Time[ 0 ];       // запоминаем новый бар
       if (Close[ 1 ]>Open[ 1 ])
      { 
xBost_b=(hi-cl)* 10000 ;
Kol_vo_b++;
}
       if (Close[ 1 ]<Open[ 1 ])
      {
 xBost_s=(cl-lo)* 10000 ; 
 Kol_vo_s++;
 
   }
   
if (Kol_vo_b==Num_kolvo_b)
{
Kol_vo_b= 0 ;
Sum_xb= 0 ;
}
if (Kol_vo_s==Num_kolvo_s)
{
Kol_vo_s= 0 ;
Sum_xs= 0 ;
}  
 
Sum_xb=Sum_xb+xBost_b;
Sr_zn_b=Sum_xb/Kol_vo_b;

Sum_xs=Sum_xs+xBost_s;
Sr_zn_s=Sum_xs/Kol_vo_s;

Zn_b=xBost_b;
if (xBost_b>Zn_b)
Max_b=xBost_b;
}




Comment ( "\n xBost_b=" ,xBost_b, "\n Sum_xb=" ,Sum_xb, "\n Kol_vo_b=" ,Kol_vo_b, "\n Sr_zn_b=" ,Sr_zn_b,
"\n\n\n\n kolvo_s=" ,xBost_s, "\n Sum_xs=" ,Sum_xs, "\n Kol_vo_s=" ,Kol_vo_s, "\n Sr_zn_s=" ,Sr_zn_s, "\n\n\n\n Max_b=" ,Max_b);

return ( 0 );
  }

최대값을 찾기 위해 코드의 이 부분을 작성하는 방법은 다음과 같습니다.

Zn_b=xBost_b;
if (xBost_b>Zn_b)
Max_b=xBost_b;

 
사람들, 최대값을 찾는 방법을 알려주세요!
 
//Функция поиска максимума/минимума за заданное количество баров
// type-максимум или минимум, barsearch -количество баров

double yMaxDayPrice(int type,int barsearch)
{
    int    timeframe=1440;
    double minmax;

    if(type==2)
       {
           minmax=Low[iLowest(timeframe,0,MODE_LOW,barsearch,0)];
       }
    if(type==1)
       {
           minmax=High[iHighest(timeframe,0,MODE_HIGH,barsearch,0)];
       }
return(minmax);          
}
 
BeerGod :

그리고 타임프레임은 예를 들어 null(현재)로 대체될 수 있습니다?!
 

https://docs.mql4.com/en/series/ilowest 디버깅 시 주석에 높은 값과 낮은 값을 인쇄할 수 있습니다.

https://docs.mql4.com/en/constants/timeframes

 

근데 내가 보고싶은건 그게 아닌데...

바이 바의 경우 테일을 포인트로 결정하십시오 xBost_b=(hi-cl)*10000;

술집 마을 근처 ... xBost_s=(cl-lo)*10000;

B-매수, S-매도, ()-현재 막대

예를 들어 막대 수:

1) B (S) - B 의 꼬리를 결정

2) B S (B) - 이제 S 의 꼬리를 결정합니다.

3) B S B (S) - 이제 다시 한 번 막대 B 에서 꼬리를 결정하고 이제 어느 꼬리가 이것 보다 더 큰지 또는 이 꼬리보다 큰지 결정해야 합니다 . 판매 막대의 경우에도 동일합니다.

그러나 (예를 들어) 10바를 다시 계산하면 최대값이 0으로 재설정되고 모든 것이 새로워집니다.

예를 들어:

 int Sum_xb;
int Sum_xs;
datetime last_time;   // глобальная переменная
int Kol_vo_b;
int Kol_vo_s;
int Sr_zn_b;
int Sr_zn_s;
extern int Num_kolvo_b= 10 ;
extern int Num_kolvo_s= 10 ;
int Zn_b;
int Max_b;

int start()
  {
   
   int xBost_b;
   int xBost_s;
double hi=High[ 1 ];
double op=Open[ 1 ];
double cl=Close[ 1 ];
double lo=Low[ 1 ];


   if (last_time != Time[ 0 ])
   {
       // Ура, новый бар!
      last_time = Time[ 0 ];       // запоминаем новый бар
       if (Close[ 1 ]>Open[ 1 ])
      { 
xBost_b=(hi-cl)* 10000 ;
Kol_vo_b++;
}
       if (Close[ 1 ]<Open[ 1 ])
      {
 xBost_s=(cl-lo)* 10000 ; 
 Kol_vo_s++;
 
   }
   
if (Kol_vo_b==Num_kolvo_b)
{
Kol_vo_b= 0 ;
Sum_xb= 0 ;
}
if (Kol_vo_s==Num_kolvo_s)
{
Kol_vo_s= 0 ;
Sum_xs= 0 ;
}
 
내 머리로는 최대값을 추출하는 방법을 알고 있지만 코드로 변환할 수 없습니다) 도움을 바랍니다!
 
DanLett :
내 머리로는 최대값을 추출하는 방법을 알고 있지만 코드로 변환할 수 없습니다) 도움을 바랍니다!


나는 진실을 가장하지 않습니다. 아마추어지만 그의 조언자 중 한 사람에게서 그는 당신이 이미 들었던 것과 같은 방식으로 최고점과 최저점을 찾았습니다.

외부 정수 수 = 10;

...........................................

highprice = High[ iHighest (NULL,0,MODE_HIGH,count,0)];

...........................................

저가 = 저가[iLowest(NULL,0,MODE_LOW,count,0)];

 
BeerGod :


오류가 있는 코드를 게시하지 마십시오.
 

친애하는 프로그래머!!!!

'(' - 세미콜론이 필요함 또는 '{' - 전역 범위에 대한 표현이 허용되지 않음 등과 같은 모든 오류 목록을 어디에서 찾을 수 있는지 알려주십시오. 그렇지 않으면 포럼에서 인터넷을 검색하고 검색해야 할 때마다 이러한 오류의 번역.

감사합니다!!!!

사유: