커뮤니티

피보나치 지그재그선

프로필 이미지
고성
2024-03-05 09:14:37
1077
글번호 177166
답변완료
input : 전환포인트(1); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),trend1(0),ZigZagTL(0),TX(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0); Plot1 (c); HPrice = H; LPrice = L; if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; trend1 = 0; } Else { UpTrend = HPrice >= LV[0]+전환포인트; DownTrend = LPrice <= HV[0]-전환포인트; if trend <= 0 and UpTrend == true Then { trend = 1; trend1 = trend[1]; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); TL_SetColor(ZigZagTL,Red); TL_SetSize(ZigZagTL,1); TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,1); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100)); TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL6 = TL_New(LD[0],LT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(LD[0],LT[0],var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(LD[0],LT[0],var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(LD[0],LT[0],var9,NextBarSdate,NextBarStime,var9); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); TL_SetColor(TL6,Blue); TL_SetColor(TL7,Blue); TL_SetColor(TL8,Gold); TL_SetColor(TL9,Magenta); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; trend1 = trend[1]; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); TL_SetColor(ZigZagTL,Blue); TL_SetSize(ZigZagTL,1); TX = text_new(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,0); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100)); var9= 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100)); TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL6 = TL_New(HD[0],HT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(HD[0],HT[0],var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(HD[0],HT[0],var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(HD[0],HT[0],var9,NextBarSdate,NextBarStime,var9); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); TL_SetColor(TL6,Blue); TL_SetColor(TL7,Blue); TL_SetColor(TL8,Gold); TL_SetColor(TL9,Magenta); } Else { if trend == 1 Then { if trend1 == 0 Then { LV[0] = DayLow; } if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100)); TL_SetBegin(TL1,LD[0],LT[0],HV[0]); TL_SetBegin(TL2,LD[0],LT[0],Var2); TL_SetBegin(TL3,LD[0],LT[0],Var3); TL_SetBegin(TL4,LD[0],LT[0],Var4); TL_SetBegin(TL5,LD[0],LT[0],LV[0]); TL_SetBegin(TL6,LD[0],LT[0],Var6); TL_SetBegin(TL7,LD[0],LT[0],Var7); TL_SetBegin(TL8,LD[0],LT[0],Var8); TL_SetBegin(TL9,LD[0],LT[0],Var9); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,Var7); TL_SetEnd(TL8,Sdate,Stime,Var8); TL_SetEnd(TL9,Sdate,Stime,Var9); } } if trend == -1 Then { if trend1 == 0 Then { HV[0] = DayHigh; } if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100)); TL_SetBegin(TL1,HD[0],HT[0],HV[0]); TL_SetBegin(TL2,HD[0],HT[0],Var2); TL_SetBegin(TL3,HD[0],HT[0],Var3); TL_SetBegin(TL4,HD[0],HT[0],Var4); TL_SetBegin(TL5,HD[0],HT[0],LV[0]); TL_SetBegin(TL6,HD[0],HT[0],Var6); TL_SetBegin(TL7,HD[0],HT[0],Var7); TL_SetBegin(TL8,HD[0],HT[0],Var8); TL_SetBegin(TL9,HD[0],HT[0],Var9); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,Var7); TL_SetEnd(TL8,Sdate,Stime,Var8); TL_SetEnd(TL9,Sdate,Stime,Var9); } } } } 시초에 지그재그선의 시발점이 안맞아, 지그재그선으로부터 1p가 되어야 표시가 됩니다. 피보나치선도 덩달아 나중에 표시되지만 정상입니다. 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-03-05 11:20:42

안녕하세요 예스스탁입니다. 1 현재 수식에서 첫 지그재그선은 첫봉의 고가와 저가를 기준으로 합니다. 첫봉의 시가기준이면 아래 내용에서 Hprice,Lprice를 모두 Open으로 변경하시면 됩니다. if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice;//open LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice;//open trend = 0; trend1 = 0; } 2 만약 첫 지그재그선이 당일최저가와 당일최고가 대비로 1포인트 상승/하락이면 아래 내용을 사용하시면 됩니다. input : 전환포인트(1); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),trend1(0),ZigZagTL(0),TX(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0); Plot1 (c); HPrice = H; LPrice = L; if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; trend1 = 0; } Else { if Trend == 0 Then { if L < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; } if H > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; } } UpTrend = HPrice >= LV[0]+전환포인트; DownTrend = LPrice <= HV[0]-전환포인트; if trend <= 0 and UpTrend == true Then { trend = 1; trend1 = trend[1]; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); TL_SetColor(ZigZagTL,Red); TL_SetSize(ZigZagTL,1); TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,1); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100)); TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL6 = TL_New(LD[0],LT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(LD[0],LT[0],var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(LD[0],LT[0],var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(LD[0],LT[0],var9,NextBarSdate,NextBarStime,var9); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); TL_SetColor(TL6,Blue); TL_SetColor(TL7,Blue); TL_SetColor(TL8,Gold); TL_SetColor(TL9,Magenta); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; trend1 = trend[1]; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); TL_SetColor(ZigZagTL,Blue); TL_SetSize(ZigZagTL,1); TX = text_new(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,0); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100)); var9= 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100)); TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL6 = TL_New(HD[0],HT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(HD[0],HT[0],var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(HD[0],HT[0],var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(HD[0],HT[0],var9,NextBarSdate,NextBarStime,var9); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); TL_SetColor(TL6,Blue); TL_SetColor(TL7,Blue); TL_SetColor(TL8,Gold); TL_SetColor(TL9,Magenta); } Else { if trend == 1 Then { if trend1 == 0 Then { LV[0] = DayLow; } if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100)); TL_SetBegin(TL1,LD[0],LT[0],HV[0]); TL_SetBegin(TL2,LD[0],LT[0],Var2); TL_SetBegin(TL3,LD[0],LT[0],Var3); TL_SetBegin(TL4,LD[0],LT[0],Var4); TL_SetBegin(TL5,LD[0],LT[0],LV[0]); TL_SetBegin(TL6,LD[0],LT[0],Var6); TL_SetBegin(TL7,LD[0],LT[0],Var7); TL_SetBegin(TL8,LD[0],LT[0],Var8); TL_SetBegin(TL9,LD[0],LT[0],Var9); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,Var7); TL_SetEnd(TL8,Sdate,Stime,Var8); TL_SetEnd(TL9,Sdate,Stime,Var9); } } if trend == -1 Then { if trend1 == 0 Then { HV[0] = DayHigh; } if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100)); TL_SetBegin(TL1,HD[0],HT[0],HV[0]); TL_SetBegin(TL2,HD[0],HT[0],Var2); TL_SetBegin(TL3,HD[0],HT[0],Var3); TL_SetBegin(TL4,HD[0],HT[0],Var4); TL_SetBegin(TL5,HD[0],HT[0],LV[0]); TL_SetBegin(TL6,HD[0],HT[0],Var6); TL_SetBegin(TL7,HD[0],HT[0],Var7); TL_SetBegin(TL8,HD[0],HT[0],Var8); TL_SetBegin(TL9,HD[0],HT[0],Var9); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,Var7); TL_SetEnd(TL8,Sdate,Stime,Var8); TL_SetEnd(TL9,Sdate,Stime,Var9); } } } } 즐거운 하루되세요 > 고성 님이 쓴 글입니다. > 제목 : 피보나치 지그재그선 > input : 전환포인트(1); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),trend1(0),ZigZagTL(0),TX(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0); Plot1 (c); HPrice = H; LPrice = L; if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; trend1 = 0; } Else { UpTrend = HPrice >= LV[0]+전환포인트; DownTrend = LPrice <= HV[0]-전환포인트; if trend <= 0 and UpTrend == true Then { trend = 1; trend1 = trend[1]; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; ZigZagTL = TL_New(LD[0],LT[0],LV[0],HD[0],HT[0],HV[0]); TL_SetColor(ZigZagTL,Red); TL_SetSize(ZigZagTL,1); TX = text_new(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,1); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100)); TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(LD[0],LT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL6 = TL_New(LD[0],LT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(LD[0],LT[0],var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(LD[0],LT[0],var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(LD[0],LT[0],var9,NextBarSdate,NextBarStime,var9); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); TL_SetColor(TL6,Blue); TL_SetColor(TL7,Blue); TL_SetColor(TL8,Gold); TL_SetColor(TL9,Magenta); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; trend1 = trend[1]; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; ZigZagTL = TL_New(HD[0],HT[0],HV[0],LD[0],LT[0],LV[0]); TL_SetColor(ZigZagTL,Blue); TL_SetSize(ZigZagTL,1); TX = text_new(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,0); Text_SetColor(TX,Black); Text_SetSize(tx,25); Text_SetBold(tx,1); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100)); var9= 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100)); TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL2 = TL_New(HD[0],HT[0],var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL6 = TL_New(HD[0],HT[0],var6,NextBarSdate,NextBarStime,var6); TL7 = TL_New(HD[0],HT[0],var7,NextBarSdate,NextBarStime,var7); TL8 = TL_New(HD[0],HT[0],var8,NextBarSdate,NextBarStime,var8); TL9 = TL_New(HD[0],HT[0],var9,NextBarSdate,NextBarStime,var9); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Orange); TL_SetColor(TL3,Green); TL_SetColor(TL4,Orange); TL_SetColor(TL5,Green); TL_SetColor(TL6,Blue); TL_SetColor(TL7,Blue); TL_SetColor(TL8,Gold); TL_SetColor(TL9,Magenta); } Else { if trend == 1 Then { if trend1 == 0 Then { LV[0] = DayLow; } if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TL_SetEnd(ZigZagTL,HD[0],HT[0],HV[0]); Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(25.3/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(66.6/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(23.6/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(55/100)); TL_SetBegin(TL1,LD[0],LT[0],HV[0]); TL_SetBegin(TL2,LD[0],LT[0],Var2); TL_SetBegin(TL3,LD[0],LT[0],Var3); TL_SetBegin(TL4,LD[0],LT[0],Var4); TL_SetBegin(TL5,LD[0],LT[0],LV[0]); TL_SetBegin(TL6,LD[0],LT[0],Var6); TL_SetBegin(TL7,LD[0],LT[0],Var7); TL_SetBegin(TL8,LD[0],LT[0],Var8); TL_SetBegin(TL9,LD[0],LT[0],Var9); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,Var7); TL_SetEnd(TL8,Sdate,Stime,Var8); TL_SetEnd(TL9,Sdate,Stime,Var9); } } if trend == -1 Then { if trend1 == 0 Then { HV[0] = DayHigh; } if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TL_SetEnd(ZigZagTL,LD[0],LT[0],LV[0]); Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var2 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); var6 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(33.4/100)); var7 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(74.8/100)); var8 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(76.4/100)); var9 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(45/100)); TL_SetBegin(TL1,HD[0],HT[0],HV[0]); TL_SetBegin(TL2,HD[0],HT[0],Var2); TL_SetBegin(TL3,HD[0],HT[0],Var3); TL_SetBegin(TL4,HD[0],HT[0],Var4); TL_SetBegin(TL5,HD[0],HT[0],LV[0]); TL_SetBegin(TL6,HD[0],HT[0],Var6); TL_SetBegin(TL7,HD[0],HT[0],Var7); TL_SetBegin(TL8,HD[0],HT[0],Var8); TL_SetBegin(TL9,HD[0],HT[0],Var9); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL2,Sdate,Stime,Var2); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,LV[0]); TL_SetEnd(TL6,Sdate,Stime,Var6); TL_SetEnd(TL7,Sdate,Stime,Var7); TL_SetEnd(TL8,Sdate,Stime,Var8); TL_SetEnd(TL9,Sdate,Stime,Var9); } } } } 시초에 지그재그선의 시발점이 안맞아, 지그재그선으로부터 1p가 되어야 표시가 됩니다. 피보나치선도 덩달아 나중에 표시되지만 정상입니다. 감사합니다