저는 초보자이고 새 창에서 HA를 얻고 싶습니다. - 페이지 2

 
ObjectCreate () 함수에서 창 번호를 지정하여 별도의 창에 그립니다.
 

안녕하세요 피

오늘 아침부터 시도했는데 화면에 아무것도 나타나지 않습니다. 귀하의 코드는 다른 사람들에게 집중할 수 있도록 정말 도움이 될 것입니다.

나는 객체 생성을 사용했다

유형이 직사각형이고 크고 작으면 화면에 아무 것도 나타나지 않습니다. 나는 시간과 가격 수준을 지정하고 촛대 패턴을 얻는 방법을 모릅니다

객체 생성 기능을 사용하여 촛대를 얻는 코드 또는 예제를 제공해 주시면 감사하겠습니다.

 
다음은 샘플입니다.

간단한 막대를 그립니다.

 #property indicator_separate_window
 
#property indicator_buffers 2
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
 
 
double high [] ;
double low [] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ()
  {
    SetIndexBuffer ( 0 , high ) ;
    SetIndexBuffer ( 1 , low ) ;
    SetIndexStyle ( 0 , DRAW_LINE ) ;
    SetIndexStyle ( 1 , DRAW_LINE ) ;
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit ()
  {
 
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start (){
  
   string basename = " test " ;
   IndicatorShortName ( basename ) ;
   int window = WindowFind ( basename ) ;
  
   for ( int i = Bars - 100 ; i >= 0 ; i -- ){
  
       // these two indexes are used to control the size of the subwindow
       // they are not visible
       high [ i ] = High [ i ] ;
       low [ i ] = Low [ i ] ;
 
       string name = basename + i ;
  
       if ( ObjectFind ( name ) != - 1 ) ObjectDelete ( name ) ;
       ObjectCreate ( name , OBJ_TREND , window , Time [ i ] , High [ i ] , Time [ i ] , Low [ i ]) ;
       ObjectSet ( name , OBJPROP_RAY , 0 ) ;
   }
   return ( 0 ) ;
  }
 

안녕하세요 Phy님, 코드 감사합니다. 하지만 코드는 촛대 막대를 생성하지 않고 라인 막대를 생성합니다. 캔들 stcik bar plzz..zzz,>

기능 을 사용하여 촛대를 만드는 것이 왜 그렇게 어려운지 의아해합니다.

도와주세요

당신의 지원에 감사드립니다

 
따라서 본문을 추가하십시오.


 ...
...
string name = basename + i ;
  
   if ( ObjectFind ( name ) != - 1 ) ObjectDelete ( name ) ;
       ObjectCreate ( name , OBJ_TREND , window , Time [ i ] , High [ i ] , Time [ i ] , Low [ i ]) ;
       ObjectSet ( name , OBJPROP_RAY , 0 ) ;
   }
   name = basename + "Body"+i ;
  
   if ( ObjectFind ( name ) != - 1 ) ObjectDelete ( name ) ;
       ObjectCreate ( name , OBJ_TREND , window , Time [ i ] , Open [ i ] , Time [ i ] , Close [ i ]) ;
       ObjectSet ( name , OBJPROP_WIDTH , 3 ) ;
       ObjectSet ( name , OBJPROP_RAY , 0 ) ;

   }
...
...
 

마지막으로 정말 감사합니다 작동 잘되는데 캔들 본체 위아래 다 뭉개져있어요 왜죠? 어떤 생각? 그리고 지난 20개의 촛불 주변에서 더 나빠졌습니다...


#속성 표시기_분리_창

#속성 표시기_버퍼 5
#속성 표시기_색상1 CLR_NONE
#속성 표시기_색상2 CLR_NONE


더블 하이[];
더블 로우[];
이중 열기[];
이중 닫기[];
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(0, 높음);

SetIndexBuffer(1, 낮음);
SetIndexBuffer(2, 열기);
SetIndexBuffer(3, 닫기);


리턴(0);
}
//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 해제 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{

리턴(0);
}
//+----------------------------------------------- -------------------+
//| 사용자 지정 표시기 반복 기능 |
//+----------------------------------------------- -------------------+
정수 시작(){

string basename = "Heikin-Ashi";
IndicatorShortName(기본 이름);
int 창 = WindowFind(기본 이름);

for (int i = Bars-100, i >= 0, i--){

// 이 두 인덱스는 하위 창의 크기를 제어하는 데 사용됩니다.
// 그들은 보이지 않는다
높음[i] = 높음[i];
낮음[i] = 낮음[i];
이중 haOpen, haHigh, haLow, haClose, haDiffCo;
haOpen=(열기[i+1]+닫기[i+1])/2;
열기[i] = haOpen;
haClose=(시가[i]+고가[i]+저가[i]+종가[i])/4;
닫기[i] = haClose;
haHigh=MathMax(haOpen,High[i]);
haLow=MathMax(haOpen,Low[i]);
string name1 = "Heikin-Ashi-HL-"+i;

if(ObjectFind(이름1) != -1) ObjectDelete(이름1);
ObjectCreate(이름1, OBJ_TREND, 창, 시간[i], haHigh, 시간[i], haLow);
ObjectSet(이름1, OBJPROP_STYLE, STYLE_SOLID);
개체 집합(이름1, OBJPROP_RAY, 0);
ObjectSet(이름1, OBJPROP_WIDTH, 1);

string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(이름2) != -1) ObjectDelete(이름2);
ObjectCreate(이름2, OBJ_TREND, 창, 시간[i], haOpen, 시간[i], haClose);
ObjectSet(이름2, OBJPROP_WIDTH, 3);
//ObjectSet(이름2, OBJPROP_STYLE, STYLE_SOLID);
개체 집합(이름2, OBJPROP_RAY, 0);

if (haOpen < haClose) {
ObjectSet(이름1, OBJPROP_COLOR, 샤르트뢰즈);
ObjectSet(이름2, OBJPROP_COLOR, 샤르트뢰즈);
}또 다른{
ObjectSet(이름1, OBJPROP_COLOR, 빨강);
ObjectSet(이름2, OBJPROP_COLOR, 빨강);
}

}

리턴(0);
}

 
"밀수"란 무엇입니까?

또한 귀하의 코드를 사용하여 더 낮은 꼬리가 없다는 것을 알았습니다.
나는 당신의 HA 계산이 완전히 정확하다고 생각하지 않습니다.
 

고마워 파이

귀하의 친절한 답변에 대해 smugged는 신체가 적절한 직사각형이 아님을 의미합니다. 모서리가 구부러져 있습니다. 당신의 권리도 아래쪽 꼬리가 없습니다 ... 나는 왜이 모든 것이 궁금합니다.


가격 차트와 같이 몸체를 완벽한 직사각형으로 만들려면 어떻게 해야 합니까?


문제:

1. 상단에 인디케이터와 버퍼를 선언하고 인덱스 스타일을 DRAW_LINE이라고 합니다. 그런 다음 지표를 나타내기 위해 이 너비와 색상으로 추세선 을 삽입합니다. 그래서 우리는 단지 객체(추세선)를 페인팅하기 위해 버퍼를 사용합니다. 맨 위에 표시기를 선언하고 인덱스 스타일을 draw_line으로 만들어야 합니까?

드로우라인과 인서트 오브젝트 트렌드라인이 모두 있는 것이 약간 혼란스럽습니까?


전문가의 의견을 듣고 내 생각을 수정할 수 있다면 감사하겠습니다.

 

그것이 꼬리의 문제였습니다.

haLow= MathMax (haOpen,Low[i]);

해야한다

haLow=MathMin(haOpen,Low[i]);

내 이전 질문이 여전히 남아 있습니다. 도와주세요?

귀하의 친절한 답변에 대해 smugged는 신체가 적절한 직사각형이 아님을 의미합니다. 모서리가 구부러져 있습니다. 가격 차트와 같이 몸체를 완벽한 직사각형으로 만들려면 어떻게 해야 합니까?

문제:

1. 상단에 인디케이터와 버퍼를 선언하고 인덱스 스타일을 DRAW_LINE이라고 합니다. 그런 다음 지표를 나타내기 위해 이 너비와 색상으로 추세선을 삽입합니다. 그래서 우리는 단지 객체(추세선)를 페인팅하기 위해 버퍼를 사용합니다. 맨 위에 표시기를 선언하고 인덱스 스타일을 draw_line으로 만들어야 합니까?

드로우라인과 인서트 오브젝트 트렌드라인이 모두 있는 것이 약간 혼란스럽습니까?

전문가의 의견을 듣고 내 생각을 수정할 수 있다면 감사하겠습니다.

 
표시기 창은 #property indicator_maximum 및 #property indicator_minumum을 사용하여 지정된 크기가 될 수 있습니다.

이것이 지정되지 않은 경우(내 샘플에 없음) 표시기 창은 표시된 기준에 따라 자체적으로 크기가 조정됩니다.
지표 인덱스 중 하나의 최고 및 최저 값.

우리는 "추세선 삽입"이라고 말하지 않습니다... 개체는 특정 시간 및 가격 속성으로 그려집니다.

인덱스 버퍼는 시간이 지남에 따라 가격이 변할 때 하위 창의 크기를 적절하게 조정하기 위해 존재합니다(그러나 보이지 않음).