커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

추세선 폭

input : Period(120),선두께(0.05),N(30); Var:상승색(Magenta), 하락색(Cyan); Var:j(0),T(0),txx(0),txxx(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),tl9(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0); Plot1(0); r[0] = 0; r[1] = 2; r[2] = 3.; r[3] = -1; r[4] = -2.; r[5] = 1; r[6] = 0.5; For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]+N]; time11 = stime[HiBar[0]+N]; Value11 = HiVal[0]; date12 = date[LoBar[0]+N]; time12 = stime[LoBar[0]+N]; Value12 = LoVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,하락색); date21 = date[HiBar[0]+N]; time21 = stime[HiBar[0]+N]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } Text_SetSize(tx,25); Text_SetColor(Tx,Red); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); if abs(value12[1]-value11[1]) < 0.65 Then Text_Delete(tx); tx = text_new(sDate,stime,value12,NumToStr(value12-value11,2)); Text_SetColor(Tx,Blue); Text_SetStyle(tx,1,1); Text_SetSize(tx,35); Text_SetBold(tx,1); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]+N]; time12 = stime[LoBar[0]+N]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; Text_SetString(tx,NumToStr(value12-value11,2)); Text_SetLocation(tx,sDate,sTime,value12); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]+N]; time11 = stime[LoBar[0]+N]; Value11 = LoVal[0]; date12 = date[HiBar[0]+N]; time12 = stime[HiBar[0]+N]; Value12 = HiVal[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); TL_SetColor(TL1,상승색); date31 = date[LoBar[0]+N]; time31 = stime[LoBar[0]+N]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } Text_SetSize(tx,25); Text_SetColor(Tx,Blue); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); if abs(value12[1]-value11[1]) < 0.65 Then Text_Delete(tx); tx = text_new(sDate,stime,value12,NumToStr(value12-value11,2)); Text_SetColor(Tx,Red); Text_SetStyle(tx,1,1); Text_SetSize(tx,35); Text_SetBold(tx,1); } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]+N]; time12 = stime[HiBar[0]+N]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; Text_SetString(tx,NumToStr(value12-value11,2)); Text_SetLocation(tx,sDate,sTime,value12); } } TL_SetSize(TL1,선두께); 추세선이 양전환되면 추세선 하단에서 위로 1p 와 1.5p 두 지점에 일자그래프 표시. 음으로 바뀌면 기존 일자그래프 모두 삭제하고,상단에서 아래로 1p 와 1.5p 두 지점에 일자그래프 표시. 일자그래프는 생성과 삭제 반복. 의문:r[0]부터 r[6]까지는 없애도 되는 수식인가요? 감사합니다.
프로필 이미지
고성
2022-12-27
1086
글번호 164880
지표
답변완료

타분봉 VPCI

감사합니다. 아래 VPCI 지표를 타분봉 VPCI지표로 사용하고 싶습니다. (예, 10분봉 VPCI지표를 1분봉에서 사용하고 싶습니다) inputs : P1(5), P2(20), Signal(20); var : Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VP(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0) ; Sum1 = AccumN(v,P1); if Sum1 > 0 then VWMA1 = AccumN(C*v,P1)/Sum1 ; Sum2 = AccumN(v,P2); if Sum2 > 0 then VWMA2 = AccumN(C*v,P2)/Sum2; VP = VWMA2 - Ma(C,P2) ; VPR = VWMA1 / Ma(Low, P1) ; VM = Ma(v, P1) / ma(v, P2) ; VPCI = VP * VPR * VM ; AvgVPCI = Ma( VPCI, Signal ) ; Plot1(VPCI, "VPCI" ) ; Plot2(AvgVPCI, "VPCIsig" ) ; Plot3( 0, "Zero" ) ;
프로필 이미지
jdavid
2022-12-26
1113
글번호 164879
지표
답변완료

문의 드립니다.~~~~

수고하십니다. 모든 진입과 청산에 수평선과 가격을 챠트에 표시하는 수식이 가능한가요?
프로필 이미지
예스요
2022-12-26
1017
글번호 164878
시스템
답변완료

시가 동시호가 매수

안녕하세요 if stime==090000 then buy(); 이걸로는 09시00분 시가 매수가 안되고 09시01분 종가에 진입되더라구요. 종가 동시호가 청산은 SetStopEndofDay();로 되는데 시가 동시호가 진입은 어떻게 할 수 있을까요? 1분봉 코스피 선물데이터 쓰고 있습니다. 감사합니다.
프로필 이미지
리겔
2022-12-26
1045
글번호 164877
시스템
답변완료

문의

안녕하세요 나무증권 언어편집기에서 upvol 을 사용하니 정의되지 않았다고 하는데 어떻게 적용하면 되는지 알려주십시오~ 부탁드립니다. 수고하십시오.
프로필 이미지
빗소리7
2022-12-26
1097
글번호 164874
지표

푸른 님에 의해서 삭제되었습니다.

프로필 이미지
푸른
2022-12-26
7
글번호 164870
시스템
답변완료

진입제한

안녕하세요, 아래의 조건식을 부탁드립니다. 매수에서는 당일 진입가격보다 exit가격이 낮은 경우에는 이후부터는 종가가 당일고가를 초과하는 경우 매수진입 허용 매도에서는 당일 진입가격보다 exit가격이 높은 경우에는 이후부터는 종가가 당일저가를 하회하는 경우 매도진입 허용 감사합니다.
프로필 이미지
huhboo99
2022-12-26
1098
글번호 164850
시스템
답변완료

종목검색 부탁합니다

아래와 같이 종목검색 부탁합니다 일봉 시가<종가 시가총액 1000억 이상 30분봉 캔들 저가대비 고가 변동폭이 7%이상 이면서 거래대금이 100억이상인 종목 검색 변수는 다른 숫자로도 고칠수있게 변수로 해주세요
프로필 이미지
팔보채
2022-12-26
1371
글번호 164847
종목검색
답변완료

문의 드립니다 - 시가 진입 당일 청산

안녕하십니까. 테스트용으로 시가 상승 출발시 바로 진입하고 당일 내 지정손익 청산하는 시스템 수식을 이하와 같이 작성하였습니다. Input : 수익(1.0), 손실(1.0); if NextBarSdate <> sDate Then { if NextBarOpen > DayClose Then Buy("b", AtMarket, Def, 1); } SetStopProfitTarget(수익, PointStop); SetStopLoss(손실, PointStop); SetStopEndofday(); 그런데 이 수식을 시뮬레이션 차트에 적용해보면 이해가 안되는 점이 있습니다. 진입했다가 청산된 후에는 더이상 포지션이 없으니 수익률 차트가 변화 없이 수평이어야 할 것 같은데, 시뮬레이션에서는 수평이 아닙니다. (첨부 이미지에 적색 수평 화살표로 표시한 구간입니다) 왜 이렇게 나오는 것인지 도저히 모르겠습니다. 꼭 좀 이유를 알려주시길 부탁드립니다.
프로필 이미지
좋은밤
2022-12-26
1238
글번호 164846
시스템
답변완료

수정 의뢰드립니다.

안녕하세요! 아래 첨부 파일은 다이버전스를 응용한 스토케스틱과 볼린저밴드등의 매매식들 입니다! 다름이 아니라 아래 수식들을 적용해 보았는데 원본과 다르게 나타나네요! 첨부파일 처럼 우측 원본과 동일하게 수식기호들이 나타나도록 수정을 부탁드립니다! 그리고 시스템식도 단방향으로만 나오는걸 양방향 거래가 되게 끔 수정을 부탁드립니다! 감사합니다! -------------------------------------------------------------------- [지표식] INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185); var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ; var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0); RSIV = RSI(RSIPeriod); RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line MidBand = ma(RSIV,BandPeriod); //Volatility_Band UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down # if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전 var1 = RSIPL[1]; var2 = var1[1]; var3 = C[1]; var4 = var3[1]; var5 = sdate[1]; var6 = var5[1]; var7 = stime[1]; var8 = var7[1]; if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고 var9 = 1; } else var9 = 0; if var9 == 1 then { TL1 = TL_New(var6,var8,var4,var5,var7,var3); TLi1= TL_New_self(var6,var8,var2,var5,var7,var1); TX1 = Text_new(var5, var7, L, "★"); TL_SetSize(TL1, 2); TL_SetColor(TL1, Red); TL_SetSize(TLi1, 2); TL_SetColor(TLi1, Red); Text_SetColor(Tx1,Magenta); Text_SetStyle(Tx1,0,0); } if CrossUp(RSIPL, DnBand) then { TX3 = Text_new(sdate, stime, L, "▲"); Text_SetColor(Tx3,rgb(160,70,255)); Text_SetStyle(Tx3,2,0); } if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전 var11 = RSIPL[1]; var12 = var11[1]; var13 = C[1]; var14 = var13[1]; var15 = sdate[1]; var16 = var15[1]; var17 = stime[1]; var18 = var17[1]; if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고 var19 = 1; } else var19 = 0; if var19 == 1 then { TL2 = TL_New(var16,var18,var14,var15,var17,var13); TLi2= TL_New_self(var16,var18,var12,var15,var17,var11); TX2 = Text_new(var15, var17, H, "★"); TL_SetSize(TL2, 2); TL_SetColor(TL2, blue); TL_SetSize(TLi2, 2); TL_SetColor(TLi2, blue); Text_SetColor(Tx2,Lcyan); Text_SetStyle(Tx2,0,1); } if CrossDown(RSIPL, UpBand) then { TX4 = Text_new(sdate, stime, H, "▼"); Text_SetColor(Tx4,Rgb(0,255,0)); Text_SetStyle(Tx4,2,1); } # plot1(RSIPL, "RSIPL",Lgreen,def,0); plot2(TSL,"TSL",red,def,0); plot3(MidBand,"MidBand",magenta,def,0); plot4(UpBand,"UpBand",blue,def,0); plot5(DnBand,"DnBand",blue,def,0); if CrossUp(RSIPL,DnBand) then plot6(RSIPL, "상향돌파시점"); if CrossDown(RSIPL, UpBand) then plot7(RSIPL, "하향이탈시점"); if var9 == 1 then plot8(RSIPL, "상승다이버전스"); if var19 == 1 then plot9(RSIPL, "하락다이저번스"); [시스템식] INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185); var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ; var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0); RSIV = RSI(RSIPeriod); RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line MidBand = ma(RSIV,BandPeriod); //Volatility_Band UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down # if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전 var1 = RSIPL[1]; var2 = var1[1]; var3 = C[1]; var4 = var3[1]; var5 = sdate[1]; var6 = var5[1]; var7 = stime[1]; var8 = var7[1]; if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고 var9 = 1; } else var9 = 0; if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전 var11 = RSIPL[1]; var12 = var11[1]; var13 = C[1]; var14 = var13[1]; var15 = sdate[1]; var16 = var15[1]; var17 = stime[1]; var18 = var17[1]; if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고 var19 = 1; } else var19 = 0; # if var9 == 1 then buy("Div_Buy"); if CrossUp(RSIPL, DnBand) then buy("PL_Buy"); if var19 == 1 then exitlong("Div_EL"); if CrossDown(RSIPL, UpBand) then exitlong("PL_EL"); ----------------------------------------------------------------- 스토케스틱 다이버전스는 시스템 수식이 없습니다. 지표식만이라도 수정을 부탁드립니다. [지표식] Input : Period(5), Period1(3), Period2(3); var : StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0); StoK = StochasticsK(Period,Period1); StoD = StochasticsD(Period,Period1,Period2); if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 60 then { //스토캐스틱 상승반전 var1 = StoK[1]; var2 = var1[1]; var3 = C[1]; var4 = var3[1]; var5 = sdate[1]; var6 = var5[1]; var7 = stime[1]; var8 = var7[1]; if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고 var9 = 1; } else var9 = 0; if var9 == 1 then { TL1 = TL_New(var6,var8,var4,var5,var7,var3); TLi1= TL_New_self(var6,var8,var2,var5,var7,var1); TX1 = Text_new(var5, var7, L, "★"); TL_SetSize(TL1, 2); TL_SetColor(TL1, Red); TL_SetSize(TLi1, 2); TL_SetColor(TLi1, Red); Text_SetColor(Tx1,Magenta); Text_SetStyle(Tx1,0,0); } if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then { TX3 = Text_new(sdate, stime, L, "▲"); Text_SetColor(Tx3,rgb(160,70,255)); Text_SetStyle(Tx3,2,0); } if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 40 then {//스토캐스틱 하락반전 var11 = StoK[1]; var12 = var11[1]; var13 = C[1]; var14 = var13[1]; var15 = sdate[1]; var16 = var15[1]; var17 = stime[1]; var18 = var17[1]; if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고 var19 = 1; } else var19 = 0; if var19 == 1 then { TL2 = TL_New(var16,var18,var14,var15,var17,var13); TLi2= TL_New_self(var16,var18,var12,var15,var17,var11); TX2 = Text_new(var15, var17, H, "★"); TL_SetSize(TL2, 2); TL_SetColor(TL2, blue); TL_SetSize(TLi2, 2); TL_SetColor(TLi2, blue); Text_SetColor(Tx2,Lcyan); Text_SetStyle(Tx2,0,1); } if CrossDown(stoK, 80) then { TX4 = Text_new(sdate, stime, H, "▼"); Text_SetColor(Tx4,Rgb(0,255,0)); Text_SetStyle(Tx4,2,1); } Plot1(StoK, "StochasticsK"); Plot2(StoD, "StochasticsD"); PlotBaseLine1(20, "기준선20"); PlotBaseLine2(80, "기준선80"); if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then plot3(stoK, "상향돌파시점"); if CrossDown(StoK,80) then plot4(StoK, "하락이탈시점"); if var9 == 1 then plot5(stoK, "상승다이버전스"); if var19 == 1 then plot6(stoK, "하락다이저번스");
프로필 이미지
qha71
2022-12-26
1511
글번호 164845
지표