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

 

감사합니다

Objects를 사용하여 선을 그렸을 때 이 선은 위 코드에서 SetIndexStyle (0, DRAW_LINE)의 역할을 합니까? 우리는 그것들을 전혀 언급할 필요가 없습니다. 버퍼의 역할을 이해합니다. 왜 버퍼가 인덱스에 연결되어야 하는지, 왜 인덱스가 가격 속성이 있는 createObject 호출에서 나온 것처럼 스타일이 있어야 하는지 모르겠습니다.


위의 코드를 사용하여 양초에 가격 차트로 순수한 직사각형이 아닌 곡선 모서리가 있는 것을 보았습니까?

 

이미 설명했습니다.

직사각형을 원하면 추세선 개체 대신 직사각형을 그립니다.

 

안녕하세요 피

고통스럽게 해서 죄송합니다. RECTANGLE 옵션이 작동하지 않습니다. 그래서 제가 당신을 귀찮게 하고 있습니다. 양해해 주셔서 감사합니다. 이것을 시도하고 알려주십시오. HA 계산을 수정했습니다.

마지막으로 한 번만 시도해 주세요. 이 사각형이 제대로 작동할 수 있기를 바랍니다.


#속성 표시기_분리_창

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


더블 하이[];
더블 로우[];
이중 열기[];
이중 닫기[];
이중 haOpen1[];
이중 haClose1[];

//+----------------------------------------------- -------------------+
//| 커스텀 인디케이터 초기화 기능 |
//+----------------------------------------------- -------------------+
정수 초기화()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);
SetIndexBuffer(0, 높음);
SetIndexBuffer(1, 낮음);
SetIndexBuffer(2, 열기);
SetIndexBuffer(3, 닫기);
SetIndexBuffer(4, haOpen1);
SetIndexBuffer(5, haClose1);
리턴(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=(haOpen1[i+1]+haClose1[i+1])/2;
haOpen1[i] = haOpen;
haClose=(시가[i]+고가[i]+저가[i]+종가[i])/4;
haClose1[i] = haClose;
haHigh=MathMax(haOpen,High[i]);
haLow=MathMin(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, 2);

string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(이름2) != -1) ObjectDelete(이름2);
ObjectCreate(이름2, OBJ_RECTANGLE, 창, 시간[i], haOpen, 시간[i], haClose);
ObjectSet(이름2, OBJPROP_WIDTH, 5);
//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);
}

 

양초는 추세선이어야 합니다.

몸 너비 2 이상, 3

나는 당신이 라인의 "반올림"에 대해 말하는 것을 모르겠습니다.


사진 보여주기

 
사진 참조 plz..
 

때때로 왼쪽으로 스크롤하면 이것을 얻습니다(녹색과 빨간색 혼합).

 

네, 알겠습니다.

삭제해야 할 오래된 막대가 있는 것 같습니다.

 
답변 감사합니다. 어떻게 해야 하나요?
 

무엇이 잘못되었는지 파악한 다음 어떻게 고칠 수 있는지 생각해 보십시오. 중복 막대가 있습니다. 무슨 일입니까?

 

안녕하세요 피

내가 옳다면 문제는 내가 이것을한다는 사실 때문일 수 있습니다.

SetIndexStyle (0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);

나는 위의 작업을 수행하고 버퍼를 그려서 동시에 수행합니다.


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, 2);

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

그래서 버퍼의 데이터와 객체가 서로 위에 그려집니다. 맞습니까?

데이터 저장용으로 버퍼를 사용하고 있고 그리기를 원하지 않기 때문에 인덱스 스타일 코드 설정을 제거해야 합니까?

내가 맞아?