커뮤니티

추세선 함수에서..

프로필 이미지
ullala
2013-01-06 15:37:13
513
글번호 57849
답변완료

첨부 이미지

아래와 같이 지표식을 작성하였는데, 그림처럼 원하는 위치에서 두번째 빨간선이 시작되지 않고, 뒤로 한참 밀려서 시작하는 결과가 나왔습니다. 원하는 위치에서 시작하게 하려면 어찌해야 하는지요.. inputs: left(10),right(5); vars: hv(0),ht(0),hd(0),prehv(0),prehd(0),preht(0),lv(0),lt(0),ld(0),prelv(0),prelt(0),preld(0); if SwingHigh(1,H,left,Right,Left+right+1) != -1 Then{ HV = H[right]; HT = stime[right]; HD = sdate[right]; PreHV = HV[1]; preHT = HT[1]; preHD = HD[1]; if Hv < PreHv and preHV > 0 Then Begin TL_Delete(value1); value1 = TL_New(preHD,preHT,preHV,HD,HT,HV); TL_Delete(Value3); Value3 = TL_New(ld,lt,lv,HD,HT,HV-(TL_GetValue(Value1,ld,lt)-lv)); End TL_SetExtRight(value1,true); TL_SetColor(value1,RED); TL_SetExtRight(Value3,true); TL_SetColor(Value3,RED); } if SwingLow(1,L,left,Right,Left+right+1) != -1 Then{ LV = L[right]; LT = stime[right]; LD = sdate[right]; PreLV = LV[1]; preLT = LT[1]; preLD = LD[1]; if Lv > PreLv and preLV > 0 Then{ TL_Delete(Value2); value2 = TL_New(preLD,preLT,preLV,LD,LT,LV); } TL_SetExtRight(value2,true); TL_SetColor(value2,blue); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-01-07 17:32:59

안녕하세요 예스스탁입니다. LV,LT,LD는 swinglow만 만족하면 값이 할당이 되므로 swinglow도 만족하고 if Lv > PreLv and preLV > 0 Then{도 만족하는 시점에 따로 값을 저장해서 사용하셔야 합니다. inputs: left(10),right(5); vars: hv(0),ht(0),hd(0),prehv(0),prehd(0),preht(0),lv(0),lt(0),ld(0),prelv(0),prelt(0),preld(0); vars : X(0),Y(0),Z(0); if SwingHigh(1,H,left,Right,Left+right+1) != -1 Then{ HV = H[right]; HT = stime[right]; HD = sdate[right]; PreHV = HV[1]; preHT = HT[1]; preHD = HD[1]; if Hv < PreHv and preHV > 0 Then Begin TL_Delete(value1); value1 = TL_New(preHD,preHT,preHV,HD,HT,HV); TL_Delete(Value3); Value3 = TL_New(X,Y,Z,HD,HT,HV-(TL_GetValue(Value1,X,Y)-Z)); End TL_SetExtRight(value1,true); TL_SetColor(value1,RED); TL_SetExtRight(Value3,true); TL_SetColor(Value3,MAGENTA); } if SwingLow(1,L,left,Right,Left+right+1) != -1 Then{ LV = L[right]; LT = stime[right]; LD = sdate[right]; PreLV = LV[1]; preLT = LT[1]; preLD = LD[1]; if Lv > PreLv and preLV > 0 Then{ TL_Delete(Value2); value2 = TL_New(preLD,preLT,preLV,LD,LT,LV); X = LD; Y = LT; Z = LV; } TL_SetExtRight(value2,true); TL_SetColor(value2,blue); } 즐거운 하루되세요 > ullala 님이 쓴 글입니다. > 제목 : 추세선 함수에서.. > 아래와 같이 지표식을 작성하였는데, 그림처럼 원하는 위치에서 두번째 빨간선이 시작되지 않고, 뒤로 한참 밀려서 시작하는 결과가 나왔습니다. 원하는 위치에서 시작하게 하려면 어찌해야 하는지요.. inputs: left(10),right(5); vars: hv(0),ht(0),hd(0),prehv(0),prehd(0),preht(0),lv(0),lt(0),ld(0),prelv(0),prelt(0),preld(0); if SwingHigh(1,H,left,Right,Left+right+1) != -1 Then{ HV = H[right]; HT = stime[right]; HD = sdate[right]; PreHV = HV[1]; preHT = HT[1]; preHD = HD[1]; if Hv < PreHv and preHV > 0 Then Begin TL_Delete(value1); value1 = TL_New(preHD,preHT,preHV,HD,HT,HV); TL_Delete(Value3); Value3 = TL_New(ld,lt,lv,HD,HT,HV-(TL_GetValue(Value1,ld,lt)-lv)); End TL_SetExtRight(value1,true); TL_SetColor(value1,RED); TL_SetExtRight(Value3,true); TL_SetColor(Value3,RED); } if SwingLow(1,L,left,Right,Left+right+1) != -1 Then{ LV = L[right]; LT = stime[right]; LD = sdate[right]; PreLV = LV[1]; preLT = LT[1]; preLD = LD[1]; if Lv > PreLv and preLV > 0 Then{ TL_Delete(Value2); value2 = TL_New(preLD,preLT,preLV,LD,LT,LV); } TL_SetExtRight(value2,true); TL_SetColor(value2,blue); }