커뮤니티

수식보완부탁드립니다

프로필 이미지
당일선물
2023-03-06 12:46:27
1867
글번호 166945
답변완료

첨부 이미지

수고하십니다. 아래 수식(그림)에서 파동의 꼭지점에 HH, HL, LL, LH 문자를 표시하는 식을 첨가부탁드립니다. HH, HL 은 빨강색문자 LL, LH 는 라임색문자 ============ //수식 Input:length(20),굵기(1),중간선굵기(2); input : Per1(0),Per2(23.6),Per3(38.2),Per4(50.0),Per5(61.8),Per6(76.4),Per7(100),Per8(123.6),Per9(161.8); Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0); var : HV(0),LV(0); var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0); var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0),Tx19(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } HV = highest(h,length); LV = lowest(l,length); Condition1 = HV > HV[1] ; Condition2 = LV < LV[1] ; If Condition1 Then { lastHiVal = H; lastLoVal = 0; } If Condition2 Then { lastLoVal = L; lastHiVal = 0; } turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then { TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); value1 = valArr[2]-valArr[3]; TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL_Delete(TL14); TL_Delete(TL15); TL_Delete(TL16); TL_Delete(TL17); TL_Delete(TL18); TL_Delete(TL19); TL_SetExtRight(TL11,False); TL_SetExtRight(TL12,False); TL_SetExtRight(TL13,False); TL_SetExtRight(TL14,False); TL_SetExtRight(TL15,False); TL_SetExtRight(TL16,False); TL_SetExtRight(TL17,False); TL_SetExtRight(TL18,False); TL_SetExtRight(TL19,False); TL11 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per1/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per1/100)); TL12 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per2/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per2/100)); TL13 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per3/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per3/100)); TL14 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per4/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per4/100)); TL15 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per5/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per5/100)); TL16 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per6/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per6/100)); TL17 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per7/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per7/100)); TL18 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per8/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per8/100)); TL19 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per9/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per9/100)); TL_SetExtRight(TL11,true); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); TL_SetExtRight(TL14,true); TL_SetExtRight(TL15,true); TL_SetExtRight(TL16,true); TL_SetExtRight(TL17,true); TL_SetExtRight(TL18,true); TL_SetExtRight(TL19,true); TL_SetColor(TL11,RED); TL_SetColor(TL12,GRAY); TL_SetColor(TL13,GRAY); TL_SetColor(TL14,GRAY); TL_SetColor(TL15,YELLOW); TL_SetColor(TL16,GRAY); TL_SetColor(TL17,BLUE); TL_SetColor(TL18,GRAY); TL_SetColor(TL19,YELLOW); TL_SetSize(TL11,굵기); TL_SetSize(TL12,굵기); TL_SetSize(TL13,굵기); TL_SetSize(TL14,굵기); TL_SetSize(TL15,중간선굵기); TL_SetSize(TL16,굵기); TL_SetSize(TL17,굵기); TL_SetSize(TL18,굵기); TL_SetSize(TL19,굵기); Text_Delete(Tx11); Text_Delete(Tx12); Text_Delete(Tx13); Text_Delete(Tx14); Text_Delete(Tx15); Text_Delete(Tx16); Text_Delete(Tx17); Text_Delete(Tx18); Text_Delete(Tx19); tx11 = Text_New(sdate,stime,TL_GetValue(TL11,sdate,stime),NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")"); tx12 = Text_New(sdate,stime,TL_GetValue(TL12,sdate,stime),NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")"); tx13 = Text_New(sdate,stime,TL_GetValue(TL13,sdate,stime),NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")"); tx14 = Text_New(sdate,stime,TL_GetValue(TL14,sdate,stime),NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")"); tx15 = Text_New(sdate,stime,TL_GetValue(TL15,sdate,stime),NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")"); tx16 = Text_New(sdate,stime,TL_GetValue(TL16,sdate,stime),NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")"); tx17 = Text_New(sdate,stime,TL_GetValue(TL17,sdate,stime),NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")"); tx18 = Text_New(sdate,stime,TL_GetValue(TL18,sdate,stime),NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")"); tx19 = Text_New(sdate,stime,TL_GetValue(TL19,sdate,stime),NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")"); Text_SetStyle(tx11,2,1); Text_SetStyle(tx12,2,1); Text_SetStyle(tx13,2,1); Text_SetStyle(tx14,2,1); Text_SetStyle(tx15,2,1); Text_SetStyle(tx16,2,1); Text_SetStyle(tx17,2,1); Text_SetStyle(tx18,2,1); Text_SetStyle(tx19,2,1); } } value1 = valArr[2]-valArr[3]; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); //TL_SetBegin(TL11,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per1/100)); TL_SetEnd(TL11,sDate,sTime,valArr[2]-value1*(per1/100)); //TL_SetBegin(TL12,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per2/100)); TL_SetEnd(TL12,sDate,sTime,valArr[2]-value1*(per2/100)); //TL_SetBegin(TL13,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per3/100)); TL_SetEnd(TL13,sDate,sTime,valArr[2]-value1*(per3/100)); //TL_SetBegin(TL14,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per4/100)); TL_SetEnd(TL14,sDate,sTime,valArr[2]-value1*(per4/100)); //TL_SetBegin(TL15,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per5/100)); TL_SetEnd(TL15,sDate,sTime,valArr[2]-value1*(per5/100)); //TL_SetBegin(TL16,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per6/100)); TL_SetEnd(TL16,sDate,sTime,valArr[2]-value1*(per6/100)); //TL_SetBegin(TL17,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per7/100)); TL_SetEnd(TL17,sDate,sTime,valArr[2]-value1*(per7/100)); //TL_SetBegin(TL18,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per8/100)); TL_SetEnd(TL18,sDate,sTime,valArr[2]-value1*(per8/100)); //TL_SetBegin(TL19,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per9/100)); TL_SetEnd(TL19,sDate,sTime,valArr[2]-value1*(per9/100)); Text_SetLocation(Tx11,sdate,stime,TL_GetValue(TL11,sdate,stime)); Text_SetLocation(Tx12,sdate,stime,TL_GetValue(TL12,sdate,stime)); Text_SetLocation(Tx13,sdate,stime,TL_GetValue(TL13,sdate,stime)); Text_SetLocation(Tx14,sdate,stime,TL_GetValue(TL14,sdate,stime)); Text_SetLocation(Tx15,sdate,stime,TL_GetValue(TL15,sdate,stime)); Text_SetLocation(Tx16,sdate,stime,TL_GetValue(TL16,sdate,stime)); Text_SetLocation(Tx17,sdate,stime,TL_GetValue(TL17,sdate,stime)); Text_SetLocation(Tx18,sdate,stime,TL_GetValue(TL18,sdate,stime)); Text_SetLocation(Tx19,sdate,stime,TL_GetValue(TL19,sdate,stime)); Text_SetString(Tx11,NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")"); Text_SetString(Tx12,NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")"); Text_SetString(Tx13,NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")"); Text_SetString(Tx14,NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")"); Text_SetString(Tx15,NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")"); Text_SetString(Tx16,NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")"); Text_SetString(Tx17,NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")"); Text_SetString(Tx18,NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")"); Text_SetString(Tx19,NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")"); } TL_SetSize(TL1,굵기); TL_SetColor(TL1,black);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-07 10:10:35

안녕하세요 예스스탁입니다. Input:length(20),굵기(1),중간선굵기(2); input : Per1(0),Per2(23.6),Per3(38.2),Per4(50.0),Per5(61.8),Per6(76.4),Per7(100),Per8(123.6),Per9(161.8); Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0); var : HV(0),LV(0); var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0); var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0),Tx19(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); var : tx(0),str(""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } HV = highest(h,length); LV = lowest(l,length); Condition1 = HV > HV[1] ; Condition2 = LV < LV[1] ; If Condition1 Then { lastHiVal = H; lastLoVal = 0; } If Condition2 Then { lastLoVal = L; lastHiVal = 0; } turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then { TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); if turnPntArr[1][0] == "Hi" Then { if valArr[1] == DayHigh(0) Then str = "HH"; Else str = "LH"; } Else { if valArr[1] == DayLow Then str = "LL"; Else str = "HL"; } tx = text_new(sDate[barArr[1]],sTime[barArr[1]],valArr[1],str); if turnPntArr[1][0] == "Hi" Then Text_SetStyle(tx,2,1); Else Text_SetStyle(tx,2,0); value1 = valArr[2]-valArr[3]; TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL_Delete(TL14); TL_Delete(TL15); TL_Delete(TL16); TL_Delete(TL17); TL_Delete(TL18); TL_Delete(TL19); TL_SetExtRight(TL11,False); TL_SetExtRight(TL12,False); TL_SetExtRight(TL13,False); TL_SetExtRight(TL14,False); TL_SetExtRight(TL15,False); TL_SetExtRight(TL16,False); TL_SetExtRight(TL17,False); TL_SetExtRight(TL18,False); TL_SetExtRight(TL19,False); TL11 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per1/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per1/100)); TL12 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per2/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per2/100)); TL13 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per3/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per3/100)); TL14 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per4/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per4/100)); TL15 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per5/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per5/100)); TL16 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per6/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per6/100)); TL17 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per7/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per7/100)); TL18 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per8/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per8/100)); TL19 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per9/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per9/100)); TL_SetExtRight(TL11,true); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); TL_SetExtRight(TL14,true); TL_SetExtRight(TL15,true); TL_SetExtRight(TL16,true); TL_SetExtRight(TL17,true); TL_SetExtRight(TL18,true); TL_SetExtRight(TL19,true); TL_SetColor(TL11,RED); TL_SetColor(TL12,GRAY); TL_SetColor(TL13,GRAY); TL_SetColor(TL14,GRAY); TL_SetColor(TL15,YELLOW); TL_SetColor(TL16,GRAY); TL_SetColor(TL17,BLUE); TL_SetColor(TL18,GRAY); TL_SetColor(TL19,YELLOW); TL_SetSize(TL11,굵기); TL_SetSize(TL12,굵기); TL_SetSize(TL13,굵기); TL_SetSize(TL14,굵기); TL_SetSize(TL15,중간선굵기); TL_SetSize(TL16,굵기); TL_SetSize(TL17,굵기); TL_SetSize(TL18,굵기); TL_SetSize(TL19,굵기); Text_Delete(Tx11); Text_Delete(Tx12); Text_Delete(Tx13); Text_Delete(Tx14); Text_Delete(Tx15); Text_Delete(Tx16); Text_Delete(Tx17); Text_Delete(Tx18); Text_Delete(Tx19); tx11 = Text_New(sdate,stime,TL_GetValue(TL11,sdate,stime),NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")"); tx12 = Text_New(sdate,stime,TL_GetValue(TL12,sdate,stime),NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")"); tx13 = Text_New(sdate,stime,TL_GetValue(TL13,sdate,stime),NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")"); tx14 = Text_New(sdate,stime,TL_GetValue(TL14,sdate,stime),NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")"); tx15 = Text_New(sdate,stime,TL_GetValue(TL15,sdate,stime),NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")"); tx16 = Text_New(sdate,stime,TL_GetValue(TL16,sdate,stime),NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")"); tx17 = Text_New(sdate,stime,TL_GetValue(TL17,sdate,stime),NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")"); tx18 = Text_New(sdate,stime,TL_GetValue(TL18,sdate,stime),NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")"); tx19 = Text_New(sdate,stime,TL_GetValue(TL19,sdate,stime),NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")"); Text_SetStyle(tx11,2,1); Text_SetStyle(tx12,2,1); Text_SetStyle(tx13,2,1); Text_SetStyle(tx14,2,1); Text_SetStyle(tx15,2,1); Text_SetStyle(tx16,2,1); Text_SetStyle(tx17,2,1); Text_SetStyle(tx18,2,1); Text_SetStyle(tx19,2,1); } } value1 = valArr[2]-valArr[3]; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); if turnPntArr[1][0] == "Hi" Then { if valArr[1] == DayHigh(0) Then str = "HH"; Else str = "LH"; } Else { if valArr[1] == DayLow Then str = "LL"; Else str = "HL"; } Text_SetString(tx,str); Text_SetLocation(Tx,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); //TL_SetBegin(TL11,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per1/100)); TL_SetEnd(TL11,sDate,sTime,valArr[2]-value1*(per1/100)); //TL_SetBegin(TL12,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per2/100)); TL_SetEnd(TL12,sDate,sTime,valArr[2]-value1*(per2/100)); //TL_SetBegin(TL13,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per3/100)); TL_SetEnd(TL13,sDate,sTime,valArr[2]-value1*(per3/100)); //TL_SetBegin(TL14,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per4/100)); TL_SetEnd(TL14,sDate,sTime,valArr[2]-value1*(per4/100)); //TL_SetBegin(TL15,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per5/100)); TL_SetEnd(TL15,sDate,sTime,valArr[2]-value1*(per5/100)); //TL_SetBegin(TL16,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per6/100)); TL_SetEnd(TL16,sDate,sTime,valArr[2]-value1*(per6/100)); //TL_SetBegin(TL17,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per7/100)); TL_SetEnd(TL17,sDate,sTime,valArr[2]-value1*(per7/100)); //TL_SetBegin(TL18,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per8/100)); TL_SetEnd(TL18,sDate,sTime,valArr[2]-value1*(per8/100)); //TL_SetBegin(TL19,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per9/100)); TL_SetEnd(TL19,sDate,sTime,valArr[2]-value1*(per9/100)); Text_SetLocation(Tx11,sdate,stime,TL_GetValue(TL11,sdate,stime)); Text_SetLocation(Tx12,sdate,stime,TL_GetValue(TL12,sdate,stime)); Text_SetLocation(Tx13,sdate,stime,TL_GetValue(TL13,sdate,stime)); Text_SetLocation(Tx14,sdate,stime,TL_GetValue(TL14,sdate,stime)); Text_SetLocation(Tx15,sdate,stime,TL_GetValue(TL15,sdate,stime)); Text_SetLocation(Tx16,sdate,stime,TL_GetValue(TL16,sdate,stime)); Text_SetLocation(Tx17,sdate,stime,TL_GetValue(TL17,sdate,stime)); Text_SetLocation(Tx18,sdate,stime,TL_GetValue(TL18,sdate,stime)); Text_SetLocation(Tx19,sdate,stime,TL_GetValue(TL19,sdate,stime)); Text_SetString(Tx11,NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")"); Text_SetString(Tx12,NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")"); Text_SetString(Tx13,NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")"); Text_SetString(Tx14,NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")"); Text_SetString(Tx15,NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")"); Text_SetString(Tx16,NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")"); Text_SetString(Tx17,NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")"); Text_SetString(Tx18,NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")"); Text_SetString(Tx19,NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")"); } TL_SetSize(TL1,굵기); TL_SetColor(TL1,black); 즐거운 하루되세요 > 당일선물 님이 쓴 글입니다. > 제목 : 수식보완부탁드립니다 > 수고하십니다. 아래 수식(그림)에서 파동의 꼭지점에 HH, HL, LL, LH 문자를 표시하는 식을 첨가부탁드립니다. HH, HL 은 빨강색문자 LL, LH 는 라임색문자 ============ //수식 Input:length(20),굵기(1),중간선굵기(2); input : Per1(0),Per2(23.6),Per3(38.2),Per4(50.0),Per5(61.8),Per6(76.4),Per7(100),Per8(123.6),Per9(161.8); Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0); var : HV(0),LV(0); var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0); var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0),Tx19(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } HV = highest(h,length); LV = lowest(l,length); Condition1 = HV > HV[1] ; Condition2 = LV < LV[1] ; If Condition1 Then { lastHiVal = H; lastLoVal = 0; } If Condition2 Then { lastLoVal = L; lastHiVal = 0; } turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then { TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); value1 = valArr[2]-valArr[3]; TL_Delete(TL11); TL_Delete(TL12); TL_Delete(TL13); TL_Delete(TL14); TL_Delete(TL15); TL_Delete(TL16); TL_Delete(TL17); TL_Delete(TL18); TL_Delete(TL19); TL_SetExtRight(TL11,False); TL_SetExtRight(TL12,False); TL_SetExtRight(TL13,False); TL_SetExtRight(TL14,False); TL_SetExtRight(TL15,False); TL_SetExtRight(TL16,False); TL_SetExtRight(TL17,False); TL_SetExtRight(TL18,False); TL_SetExtRight(TL19,False); TL11 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per1/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per1/100)); TL12 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per2/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per2/100)); TL13 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per3/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per3/100)); TL14 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per4/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per4/100)); TL15 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per5/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per5/100)); TL16 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per6/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per6/100)); TL17 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per7/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per7/100)); TL18 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per8/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per8/100)); TL19 = TL_New(sDate[barArr[3]],sTime[barArr[3]],valArr[2]-value1*(per9/100),sDate[barArr[2]],sTime[barArr[2]],valArr[2]-value1*(per9/100)); TL_SetExtRight(TL11,true); TL_SetExtRight(TL12,true); TL_SetExtRight(TL13,true); TL_SetExtRight(TL14,true); TL_SetExtRight(TL15,true); TL_SetExtRight(TL16,true); TL_SetExtRight(TL17,true); TL_SetExtRight(TL18,true); TL_SetExtRight(TL19,true); TL_SetColor(TL11,RED); TL_SetColor(TL12,GRAY); TL_SetColor(TL13,GRAY); TL_SetColor(TL14,GRAY); TL_SetColor(TL15,YELLOW); TL_SetColor(TL16,GRAY); TL_SetColor(TL17,BLUE); TL_SetColor(TL18,GRAY); TL_SetColor(TL19,YELLOW); TL_SetSize(TL11,굵기); TL_SetSize(TL12,굵기); TL_SetSize(TL13,굵기); TL_SetSize(TL14,굵기); TL_SetSize(TL15,중간선굵기); TL_SetSize(TL16,굵기); TL_SetSize(TL17,굵기); TL_SetSize(TL18,굵기); TL_SetSize(TL19,굵기); Text_Delete(Tx11); Text_Delete(Tx12); Text_Delete(Tx13); Text_Delete(Tx14); Text_Delete(Tx15); Text_Delete(Tx16); Text_Delete(Tx17); Text_Delete(Tx18); Text_Delete(Tx19); tx11 = Text_New(sdate,stime,TL_GetValue(TL11,sdate,stime),NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")"); tx12 = Text_New(sdate,stime,TL_GetValue(TL12,sdate,stime),NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")"); tx13 = Text_New(sdate,stime,TL_GetValue(TL13,sdate,stime),NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")"); tx14 = Text_New(sdate,stime,TL_GetValue(TL14,sdate,stime),NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")"); tx15 = Text_New(sdate,stime,TL_GetValue(TL15,sdate,stime),NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")"); tx16 = Text_New(sdate,stime,TL_GetValue(TL16,sdate,stime),NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")"); tx17 = Text_New(sdate,stime,TL_GetValue(TL17,sdate,stime),NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")"); tx18 = Text_New(sdate,stime,TL_GetValue(TL18,sdate,stime),NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")"); tx19 = Text_New(sdate,stime,TL_GetValue(TL19,sdate,stime),NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")"); Text_SetStyle(tx11,2,1); Text_SetStyle(tx12,2,1); Text_SetStyle(tx13,2,1); Text_SetStyle(tx14,2,1); Text_SetStyle(tx15,2,1); Text_SetStyle(tx16,2,1); Text_SetStyle(tx17,2,1); Text_SetStyle(tx18,2,1); Text_SetStyle(tx19,2,1); } } value1 = valArr[2]-valArr[3]; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); //TL_SetBegin(TL11,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per1/100)); TL_SetEnd(TL11,sDate,sTime,valArr[2]-value1*(per1/100)); //TL_SetBegin(TL12,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per2/100)); TL_SetEnd(TL12,sDate,sTime,valArr[2]-value1*(per2/100)); //TL_SetBegin(TL13,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per3/100)); TL_SetEnd(TL13,sDate,sTime,valArr[2]-value1*(per3/100)); //TL_SetBegin(TL14,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per4/100)); TL_SetEnd(TL14,sDate,sTime,valArr[2]-value1*(per4/100)); //TL_SetBegin(TL15,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per5/100)); TL_SetEnd(TL15,sDate,sTime,valArr[2]-value1*(per5/100)); //TL_SetBegin(TL16,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per6/100)); TL_SetEnd(TL16,sDate,sTime,valArr[2]-value1*(per6/100)); //TL_SetBegin(TL17,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per7/100)); TL_SetEnd(TL17,sDate,sTime,valArr[2]-value1*(per7/100)); //TL_SetBegin(TL18,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per8/100)); TL_SetEnd(TL18,sDate,sTime,valArr[2]-value1*(per8/100)); //TL_SetBegin(TL19,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per9/100)); TL_SetEnd(TL19,sDate,sTime,valArr[2]-value1*(per9/100)); Text_SetLocation(Tx11,sdate,stime,TL_GetValue(TL11,sdate,stime)); Text_SetLocation(Tx12,sdate,stime,TL_GetValue(TL12,sdate,stime)); Text_SetLocation(Tx13,sdate,stime,TL_GetValue(TL13,sdate,stime)); Text_SetLocation(Tx14,sdate,stime,TL_GetValue(TL14,sdate,stime)); Text_SetLocation(Tx15,sdate,stime,TL_GetValue(TL15,sdate,stime)); Text_SetLocation(Tx16,sdate,stime,TL_GetValue(TL16,sdate,stime)); Text_SetLocation(Tx17,sdate,stime,TL_GetValue(TL17,sdate,stime)); Text_SetLocation(Tx18,sdate,stime,TL_GetValue(TL18,sdate,stime)); Text_SetLocation(Tx19,sdate,stime,TL_GetValue(TL19,sdate,stime)); Text_SetString(Tx11,NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")"); Text_SetString(Tx12,NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")"); Text_SetString(Tx13,NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")"); Text_SetString(Tx14,NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")"); Text_SetString(Tx15,NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")"); Text_SetString(Tx16,NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")"); Text_SetString(Tx17,NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")"); Text_SetString(Tx18,NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")"); Text_SetString(Tx19,NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")"); } TL_SetSize(TL1,굵기); TL_SetColor(TL1,black);