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

 
dzhini :
OBJ_LABEL 유형의 그래픽 개체의 가격 좌표를 결정하는 방법을 알려주실 수 있습니까?

OBJPROP_XDISTANCE, OBJPROP_YDISTANCE 매개변수와 함께 ObjectGet 사용
 

질문 1개. 숫자 10이 배열 이름에 대괄호로 표시되면 해당 배열에 11개의 요소가 있는 것입니다.

2 질문입니다. 배열 의 end_set 뒤에 0이 없어야 하며 Allow_set 에서 end_set 까지의 모든 종가가 있을 것입니다 . ArrayResize를 올바르게 수행하고 있습니까?

//전역
가격[ 10 ];
정수 나는 = - 1 ;
//-------------------
정수 시작()
{
if (!TF_F_NewBar()) return ( 0 );
if (Allow_set == true )
{
나는 ++;
ArrayResize (가격, i); // 배열 price[10]이 price[0]으로 유지된다는 것을 이해합니다(허용되나요?),
//저것들. 0이 쓰여지는 배열의 한 위치
. 따라서 각 단계(막대)로 우리는

// 배열 크기 증가
가격[i] = 종가[ 1 ]; // 이 단일 배열에 0 대신 Close[1]을 씁니다. 그것이 허용된다면,
// 전역 변수에서 최소 배열을 지정할 수 있습니다. price[0];

}
if(end_set== true )
{
배열 데이터 처리 ;

나는 = -1; // 처리 후 원래 위치로 복귀
}
}

코드를 제대로 입력하지 못한 점 죄송합니다.

 
gince :

질문 1개. 숫자 10이 배열 이름에 대괄호로 표시되면 해당 배열에 11개의 요소가 있는 것입니다.


이러한 배열에는 0에서 9 사이의 요소 인덱스가 있는 10개의 셀이 포함됩니다. 첫 번째 요소는 인덱스가 0인 셀 1에 있으므로 for 문 에서 배열 요소 에 대한 반복은 0부터 시작합니다.

2 질문입니다. end_set 후에 배열에 0이 없어야 하며 Allow_set 에서 end_set 까지의 모든 종가 있어야 합니다. ArrayResize를 올바르게 수행하고 있습니까?

배열에 마지막 10개 막대의 10개 종가를 추가하시겠습니까?

코드를 제대로 입력하지 못한 점 죄송합니다.

작성한 내용은 언제든지 수정할 수 있습니다. "편집"을 클릭하기만 하면 됩니다.
 
paladin80 :

배열에 마지막 10개 막대의 10개 종가를 추가하시겠습니까?

작성한 내용은 언제든지 수정할 수 있습니다. "편집"을 클릭하기만 하면 됩니다.


아니요, 10은 아니지만 Allow_setend_of_set으로 설정합니다. 40과 65가 될 수 있습니다. 배열에서 end_set 뒤에 0이 없어야 합니다.
 
gince :
아니요, 10은 아니지만 Allow_setend_of_set으로 설정합니다. 40과 65가 될 수 있습니다. 배열에서 end_set 뒤에 0이 없어야 합니다.


모든 것이 정상입니다. 처음에는 배열을 한 번에 동적으로 설정하십시오.

 double цена[];

...

int init ()

{

…

ArrayResize (цена, 0 );

…

}

int start ()

{

…

}

 
gince :
아니요, 10은 아니지만 Allow_setend_of_set으로 설정합니다. 40과 65가 될 수 있습니다. 배열에서 end_set 뒤에 0이 없어야 합니다.

 double цена[]; // динамический массив
int     начало= 2 ; // 0 (ноль) это текущий, ещё не закрытый бар
int     конец= 45 ;
int     количество;
//---
int init()
  {
   количество=конец-начало; // =43
   ArrayResize (цена, количество); // устанавливается размер массива - 43 ячейки
   return ( 0 );
  }

//---
int start()
  {
     if (!TF_F_NewBar()) return ( 0 );    
     if (Разрешить_набор == true )
    {
       for ( int i= 0 ; i<=количество- 1 ; i++) // заполнить 43 ячейки с индексом от 0 до 42.
                                           // в ячейке 0 будет цена close для бара 2 и т.д.
      цена[i]=Close[i+начало];   
    }
   return ( 0 );
  }
//---
 
paladin80 :

배열에 몇 개의 요소가 있어야 하는지 모르겠습니다. 40과 65가 될 수 있습니다. 한마디로 동적 배열 이 필요합니다.

 double цена[]; // динамический массив

int i = -1;
//---
int init()
  {
   ArrayResize (цена, 0); // устанавливается размер массива минимальным - 1 ячейка
   return ( 0 );
  }

//---
int start()
  {
     if (!TF_F_NewBar()) return ( 0 );    
     if (Разрешить_набор == true )                // это сигнал по индюку
    {
      //Пришел новый бар и резрешение есть 
      i++ .                                     //увеличиваем индех            
      A rrayResize (цена, i)
      цена[i]=Close[i];   
   }
   if(конец_набора== t rue)   // это сигнал по индюку
   {
      //----
      //работа с массивом
      //----
      Pазрешить_набор == false; 
      i= -1;
//А тут
надо что нибуть делать с бывшим массивом (уменшить, очистить или еще что то)      
   }
   return ( 0 );
 }
//---
 
gince :

배열에 몇 개의 요소가 있어야 하는지 모르겠습니다. 40과 65가 될 수 있습니다. 한마디로 동적 배열이 필요합니다.

옆에서 물어볼게요. 어레이 종가를 기입해야 하는 이유는 무엇입니까? double close[] 자체는 이미 종가의 배열입니다.
 
paladin80 :
옆에서 물어볼게요. 어레이 종가를 기입해야 하는 이유는 무엇입니까? double close[] 자체는 이미 종가의 배열입니다.
나는 그것이 닫혀 있든 열려 있든 상관하지 않습니다. 가장 중요한 것은 그들이 지금부터 지금까지라는 것입니다. 그런 다음 필터링합니다. 여과는 지금부터 지금까지 이 기간에 정확히 수행되어야 합니다. 배열이 필터링된 후 결과에 따라 다른 데이터로 다른 배열을 다시 만듭니다. 그리고 저는 이미 마지막 배열에 그림을 그리고 있습니다. 따라서 그들이 요청한 이 배열은 중간 배열일 뿐입니다.
 
이제 각 막대에서 배열에 가까운 막대 하나를 입력합니다. 그런 식으로 수집하지 않으면 데이터를 수집할 막대를 파악하고 주기를 회전하고 필터링해야 합니다. 그래서 마지막만 남았습니다.