커뮤니티

수식 좀 요청 드립니다.

프로필 이미지
요타
2021-07-11 19:55:21
946
글번호 150656
답변완료
* 항상 많은 도움에 고맙 습니다. * 두가지좀 요청 드립니다. <요청1 >아래 수식 점찍기에서 점을 "LOWER-PriceScale*40" 선에 찍고 싶은데 error 가 납니다. 어느부분이 잘못 되었나요? INPUT: MALEN(10),CONST(0.8),ATRs(0); VAR: CENTLINE(0), AVGRANGE(0), UPPER(0), LOWER(0); CENTLINE=KeltnerChannel(Close, MALEN, ATRs); AVGRANGE=Ma(TRUERANGE(),MALEN); UPPER=CENTLINE+(AVGRANGE*CONST); LOWER=CENTLINE-(AVGRANGE*CONST); PLOT1(CENTLINE,"CENTLINE"); PLOT2(UPPER-PriceScale*40,"UPPER"); PLOT3(LOWER-PriceScale*40,"LOWER"); input : 간격(5),갯수(0),색상(BLACk); input: bb(25) ; var : T(0),cnt(0); var : HH1(0),HI1(0),HI2(0),LL1(0),LI1(0),LI2(0); var : LD(0),LT(0),LL(0),HD(0),HT(0),HH(0),TX(0); Array : HTL[100](0),LTL[100](0); if LOWER-PriceScale*40[간격] > Highest(LOWER-PriceScale*40,간격) and LOWER-PriceScale*40[간격] > Highest(LOWER-PriceScale*40,간격)[간격+1] Then { T = 1; HH1 = LOWER-PriceScale*40[간격]; Hi1 = index[간격]; Hi2 = HI1[1]; HTL[0] = TL_New_Self(sdate[간격],stime[간격],HH1,sdate,stime,HH1); TL_SetColor(HTL[0],색상); TL_SetExtRight(HTL[0],true); TX = Text_New_Self(sdate[간격],stime[간격],HH1,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); TL_SetSize(TX,1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { HTL[cnt] = HTL[cnt-1][1]; } TL_Delete(HTL[갯수]); if t == t[1] then { LD = 0; LT = 0; LL = 0; for cnt = index-HI1 to index-HI2 { if LL == 0 or (LL > 0 and LOWER-PriceScale*40[cnt] < LL) Then { LL = LOWER-PriceScale*40[cnt]; LD = sdate[cnt]; LT = stime[cnt]; } } LTL[0] = TL_New_Self(ld,lt,ll,sdate,stime,ll); TL_SetColor(LTL[0],색상); TL_SetExtRight(LTL[0],true); TX = Text_New_Self(LD,LT,LL,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { LTL[cnt] = LTL[cnt-1][1]; } TL_Delete(LTL[갯수]); } } if LOWER-PriceScale*40[간격] < Lowest(LOWER-PriceScale*40,간격) and LOWER-PriceScale*40[간격] < Lowest(LOWER-PriceScale*40,간격)[간격+1] Then { T = -1; LL1 = LOWER-PriceScale*40[간격]; LI1 = index[간격]; LI2 = LI1[1]; LTL[0] = TL_New_Self(sdate[간격],stime[간격],LL1,sdate,stime,LL1); TL_SetColor(LTL[0],색상); TL_SetExtRight(LTL[0],true); TX = Text_New(sdate[간격],stime[간격],LL1,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { LTL[cnt] = LTL[cnt-1][1]; } TL_Delete(LTL[갯수]); if t == t[1] then { HD = 0; HT = 0; HH = 0; for cnt = index-LI1 to index-LI2 { if HH == 0 or (HH > 0 and LOWER-PriceScale*40[cnt] > HH) Then { HH = LOWER-PriceScale*40[cnt]; HD = sdate[cnt]; HT = stime[cnt]; } } HTL[0] = TL_New_Self(HD,HT,HH,sdate,stime,HH); TL_SetColor(HTL[0],색상); TL_SetExtRight(HTL[0],true); TX = Text_New_Self(HD,HT,HH,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { HTL[cnt] = HTL[cnt-1][1]; } TL_Delete(HTL[갯수]); } } <요청2> 아래 수식에서 점찍기 표시좀 부탁 드립니다. 두개 수식을 합처서 점찍기 하려는데 어떻게 해야 하나요? 즉 5이평선이 점으로된선(LRLv5<= LRLv1)을 크로스업 할때 큰점을 찍고 싶습니다. 근데 B수식을 어떻게 처리 해야 A수식이 B수식 점선을 크로스업 할 때 큰점을 찍을수 있나요?? ▶ B수식 을 선으로 표현 하는 방법좀 알려 주십시요. var : TX68(0) ; /*A수식*/ var1 = ma(c,5) ; /*B수식*/ if LRLv5 <= LRLv1 Then {TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,RED); Text_SetSize(TX68,20); } if CrossUp( A수식 , B수식 ) Then {TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,BLACK); Text_SetSize(TX68,40); } * 매번 고맙습니다. 수고하십시요.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-07-12 10:49:59

안녕하세요 예스스탁입니다. 1 PriceScale*40[간격] 와 같이 고정숫자 뒤나 PriceScale와 같은 고정값 뒤에 이전값 참조는 의미가 없습니다. LOWER[간격]-PriceScale*40와 같이 처리하셔야 합니다. INPUT: MALEN(10),CONST(0.8),ATRs(0); VAR: CENTLINE(0), AVGRANGE(0), UPPER(0), LOWER(0); CENTLINE=KeltnerChannel(Close, MALEN, ATRs); AVGRANGE=Ma(TRUERANGE(),MALEN); UPPER=CENTLINE+(AVGRANGE*CONST); LOWER=CENTLINE-(AVGRANGE*CONST); PLOT1(CENTLINE,"CENTLINE"); PLOT2(UPPER-PriceScale*40,"UPPER"); PLOT3(LOWER-PriceScale*40,"LOWER"); input : 간격(5),갯수(0),색상(BLACk); input: bb(25) ; var : T(0),cnt(0); var : HH1(0),HI1(0),HI2(0),LL1(0),LI1(0),LI2(0); var : LD(0),LT(0),LL(0),HD(0),HT(0),HH(0),TX(0); Array : HTL[100](0),LTL[100](0); if LOWER[간격]-PriceScale*40 > Highest(LOWER-PriceScale*40,간격) and LOWER[간격]-PriceScale*40 > Highest(LOWER-PriceScale*40,간격)[간격+1] Then { T = 1; HH1 = LOWER[간격]-PriceScale*40; Hi1 = index[간격]; Hi2 = HI1[1]; HTL[0] = TL_New_Self(sdate[간격],stime[간격],HH1,sdate,stime,HH1); TL_SetColor(HTL[0],색상); TL_SetExtRight(HTL[0],true); TX = Text_New_Self(sdate[간격],stime[간격],HH1,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); TL_SetSize(TX,1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { HTL[cnt] = HTL[cnt-1][1]; } TL_Delete(HTL[갯수]); if t == t[1] then { LD = 0; LT = 0; LL = 0; for cnt = index-HI1 to index-HI2 { if LL == 0 or (LL > 0 and LOWER[cnt]-PriceScale*40 < LL) Then { LL = LOWER[cnt]-PriceScale*40; LD = sdate[cnt]; LT = stime[cnt]; } } LTL[0] = TL_New_Self(ld,lt,ll,sdate,stime,ll); TL_SetColor(LTL[0],색상); TL_SetExtRight(LTL[0],true); TX = Text_New_Self(LD,LT,LL,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { LTL[cnt] = LTL[cnt-1][1]; } TL_Delete(LTL[갯수]); } } if LOWER[간격]-PriceScale*40 < Lowest(LOWER-PriceScale*40,간격) and LOWER[간격] -PriceScale*40< Lowest(LOWER-PriceScale*40,간격)[간격+1] Then { T = -1; LL1 = LOWER[간격]-PriceScale*40; LI1 = index[간격]; LI2 = LI1[1]; LTL[0] = TL_New_Self(sdate[간격],stime[간격],LL1,sdate,stime,LL1); TL_SetColor(LTL[0],색상); TL_SetExtRight(LTL[0],true); TX = Text_New(sdate[간격],stime[간격],LL1,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { LTL[cnt] = LTL[cnt-1][1]; } TL_Delete(LTL[갯수]); if t == t[1] then { HD = 0; HT = 0; HH = 0; for cnt = index-LI1 to index-LI2 { if HH == 0 or (HH > 0 and LOWER[cnt]-PriceScale*40 > HH) Then { HH = LOWER[cnt]-PriceScale*40; HD = sdate[cnt]; HT = stime[cnt]; } } HTL[0] = TL_New_Self(HD,HT,HH,sdate,stime,HH); TL_SetColor(HTL[0],색상); TL_SetExtRight(HTL[0],true); TX = Text_New_Self(HD,HT,HH,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { HTL[cnt] = HTL[cnt-1][1]; } TL_Delete(HTL[갯수]); } } 2 B수식의 출력값은 위치는 LRLv2[15]입니다. 해당값 저장해서 var1이 돌파할때로 조건만드시면 됩니다. var : TX68(0) ; /*A수식*/ var1 = ma(c,5) ; /*B수식*/ if LRLv5 <= LRLv1 Then { Var2 = LRLv2[15]; TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,RED); Text_SetSize(TX68,20); } if CrossUp(var1,Var2 ) Then { TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,BLACK); Text_SetSize(TX68,40); } 즐거운 하루되세요 > 요타 님이 쓴 글입니다. > 제목 : 수식 좀 요청 드립니다. > * 항상 많은 도움에 고맙 습니다. * 두가지좀 요청 드립니다. <요청1 >아래 수식 점찍기에서 점을 "LOWER-PriceScale*40" 선에 찍고 싶은데 error 가 납니다. 어느부분이 잘못 되었나요? INPUT: MALEN(10),CONST(0.8),ATRs(0); VAR: CENTLINE(0), AVGRANGE(0), UPPER(0), LOWER(0); CENTLINE=KeltnerChannel(Close, MALEN, ATRs); AVGRANGE=Ma(TRUERANGE(),MALEN); UPPER=CENTLINE+(AVGRANGE*CONST); LOWER=CENTLINE-(AVGRANGE*CONST); PLOT1(CENTLINE,"CENTLINE"); PLOT2(UPPER-PriceScale*40,"UPPER"); PLOT3(LOWER-PriceScale*40,"LOWER"); input : 간격(5),갯수(0),색상(BLACk); input: bb(25) ; var : T(0),cnt(0); var : HH1(0),HI1(0),HI2(0),LL1(0),LI1(0),LI2(0); var : LD(0),LT(0),LL(0),HD(0),HT(0),HH(0),TX(0); Array : HTL[100](0),LTL[100](0); if LOWER-PriceScale*40[간격] > Highest(LOWER-PriceScale*40,간격) and LOWER-PriceScale*40[간격] > Highest(LOWER-PriceScale*40,간격)[간격+1] Then { T = 1; HH1 = LOWER-PriceScale*40[간격]; Hi1 = index[간격]; Hi2 = HI1[1]; HTL[0] = TL_New_Self(sdate[간격],stime[간격],HH1,sdate,stime,HH1); TL_SetColor(HTL[0],색상); TL_SetExtRight(HTL[0],true); TX = Text_New_Self(sdate[간격],stime[간격],HH1,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); TL_SetSize(TX,1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { HTL[cnt] = HTL[cnt-1][1]; } TL_Delete(HTL[갯수]); if t == t[1] then { LD = 0; LT = 0; LL = 0; for cnt = index-HI1 to index-HI2 { if LL == 0 or (LL > 0 and LOWER-PriceScale*40[cnt] < LL) Then { LL = LOWER-PriceScale*40[cnt]; LD = sdate[cnt]; LT = stime[cnt]; } } LTL[0] = TL_New_Self(ld,lt,ll,sdate,stime,ll); TL_SetColor(LTL[0],색상); TL_SetExtRight(LTL[0],true); TX = Text_New_Self(LD,LT,LL,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { LTL[cnt] = LTL[cnt-1][1]; } TL_Delete(LTL[갯수]); } } if LOWER-PriceScale*40[간격] < Lowest(LOWER-PriceScale*40,간격) and LOWER-PriceScale*40[간격] < Lowest(LOWER-PriceScale*40,간격)[간격+1] Then { T = -1; LL1 = LOWER-PriceScale*40[간격]; LI1 = index[간격]; LI2 = LI1[1]; LTL[0] = TL_New_Self(sdate[간격],stime[간격],LL1,sdate,stime,LL1); TL_SetColor(LTL[0],색상); TL_SetExtRight(LTL[0],true); TX = Text_New(sdate[간격],stime[간격],LL1,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { LTL[cnt] = LTL[cnt-1][1]; } TL_Delete(LTL[갯수]); if t == t[1] then { HD = 0; HT = 0; HH = 0; for cnt = index-LI1 to index-LI2 { if HH == 0 or (HH > 0 and LOWER-PriceScale*40[cnt] > HH) Then { HH = LOWER-PriceScale*40[cnt]; HD = sdate[cnt]; HT = stime[cnt]; } } HTL[0] = TL_New_Self(HD,HT,HH,sdate,stime,HH); TL_SetColor(HTL[0],색상); TL_SetExtRight(HTL[0],true); TX = Text_New_Self(HD,HT,HH,"●"); Text_SetColor(TX,색상); Text_SetStyle(TX,0,2+1); Text_SetSize(Tx,bb); for cnt = 1 to 99 { HTL[cnt] = HTL[cnt-1][1]; } TL_Delete(HTL[갯수]); } } <요청2> 아래 수식에서 점찍기 표시좀 부탁 드립니다. 두개 수식을 합처서 점찍기 하려는데 어떻게 해야 하나요? 즉 5이평선이 점으로된선(LRLv5<= LRLv1)을 크로스업 할때 큰점을 찍고 싶습니다. 근데 B수식을 어떻게 처리 해야 A수식이 B수식 점선을 크로스업 할 때 큰점을 찍을수 있나요?? ▶ B수식 을 선으로 표현 하는 방법좀 알려 주십시요. var : TX68(0) ; /*A수식*/ var1 = ma(c,5) ; /*B수식*/ if LRLv5 <= LRLv1 Then {TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,RED); Text_SetSize(TX68,20); } if CrossUp( A수식 , B수식 ) Then {TX68 = Text_New(sdate,stime, LRLv2[15] , "●" ); Text_SetStyle(TX68,2,2); Text_SetColor(TX68,BLACK); Text_SetSize(TX68,40); } * 매번 고맙습니다. 수고하십시요.