커뮤니티

추가분봉 데이터영역 문의

프로필 이미지
주꼬보이
2025-05-21 15:37:11
202
글번호 191055
답변완료

첨부 이미지

안녕하세요 건수를 적게잡고 종목추가를 하면 빠르게추가돼고 건수를 1000이상 설정하면 너무 오래걸립니다 제공돼는 건수가 10000바로 알고있읍니다 동일한 차트영역에 1분봉,60분봉 ,120분봉추가하는데 data봉이 너무늦게열립니다 주기차이가 있어 늦게열리는가 봅니다 시스템트레이딩할때 바 건수는 상관없나요 수식에 data 건수를 삽입가능하신지 문의 드립니다 input : short(12),long(26),sig(9),신고신저기간(100),최근N봉(20); input : 진입시작시간(230000),당일청산시간(020000),손절틱(100),감시틱(70),되돌림틱(20); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : macdv(0,Data1),macds(0,Data1); var : macdv1(0,Data2),macds1(0,Data2); var : macdv2(0,Data3),macds2(0,Data3); var : NH(False,Data1),NL(False,Data1); macdv = data1(macd(short,long)); macds = data1(Ema(macdv,sig)); macdv1 = data2(macd(short,long)); macds1 = data2(Ema(macdv1,sig)); macdv2 = data3(macd(short,long)); macds2 = data3(Ema(macdv2,sig)); NH = Data1(CountIf(H > highest(H,신고신저기간)[1],최근N봉) >= 1); NL = Data1(countif(L < lowest(L,신고신저기간)[1],최근N봉) >= 1); if sDate != sDate[1] Then SetStopEndofday(당일청산시간); if Bdate != Bdate[1] Then SetStopEndofday(0); var : Tcond(False); if (sdate != sDate[1] and sTime >= 당일청산시간) or (sdate == sDate[1] and sTime >= 당일청산시간 and sTime[1] < 당일청산시간) Then Tcond = false; if (sdate != sDate[1] and sTime >= 진입시작시간) or (sdate == sDate[1] and sTime >= 진입시작시간 and sTime[1] < 진입시작시간) Then Tcond = true; if Tcond == true Then { if MarketPosition <= 0 and NL == true and CrossUp(MACDV,0) and MACDV1 > 0 and MACDV2 > 0 and macdv > macds and macdv1 > macds1 and macdv2 > macds2 Then Buy("b"); if MarketPosition >= 0 and NH == true and CrossDown(MACDV,0) and MACDV1 < 0 and MACDV2 < 0 and macdv < macds and macdv1 < macds1 and macdv2 < macds2 Then Sell("s"); if MarketPosition == 1 and (CrossDown(MACDV1,MACDS1) or CrossDown(MACDV2,MACDS2)) Then ExitLong("bx"); if MarketPosition == -1 and (CrossUp(MACDV1,MACDS1) or CrossUp(MACDV2,MACDS2)) Then ExitShort("sx"); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*감시틱 Then ExitLong("btrx",AtStop,highest(H,BarsSinceEntry)-PriceScale*되돌림틱); } if MarketPosition == -1 Then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*감시틱 Then ExitShort("strx",AtStop,lowest(L,BarsSinceEntry)+PriceScale*되돌림틱); } } SetStopLoss(PriceScale*손절틱,PointStop); 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-22 10:37:10

안녕하세요 예스스탁입니다. 수식안에서는 차트를 설정하는 기능이 없어 봉수를 지정하실 수 없습니다. 직접 설정하신 후에 수식을 적용하셔야 합니다. 차트의 봉수는 수식에서 요구되는 봉수이상으로 지정해 주셔야 합니다. 즉 작성하신 수식에서 최소 3일이상의 분봉이 필요하다라고 하면 3일이상이 조회되게 봉수를 지정해 주셔야 합니다. 일반적으로 많은 봉수를 조회해 주시는게 좋은데 데이터로딩은 증권사 서버에서 가져오는 부분이라 증권사별로 속도의 차이가 있을 수 있습니다. 즐거운 하루되세요 > 주꼬보이 님이 쓴 글입니다. > 제목 : 추가분봉 데이터영역 문의 > 안녕하세요 건수를 적게잡고 종목추가를 하면 빠르게추가돼고 건수를 1000이상 설정하면 너무 오래걸립니다 제공돼는 건수가 10000바로 알고있읍니다 동일한 차트영역에 1분봉,60분봉 ,120분봉추가하는데 data봉이 너무늦게열립니다 주기차이가 있어 늦게열리는가 봅니다 시스템트레이딩할때 바 건수는 상관없나요 수식에 data 건수를 삽입가능하신지 문의 드립니다 input : short(12),long(26),sig(9),신고신저기간(100),최근N봉(20); input : 진입시작시간(230000),당일청산시간(020000),손절틱(100),감시틱(70),되돌림틱(20); var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0); var : macdv(0,Data1),macds(0,Data1); var : macdv1(0,Data2),macds1(0,Data2); var : macdv2(0,Data3),macds2(0,Data3); var : NH(False,Data1),NL(False,Data1); macdv = data1(macd(short,long)); macds = data1(Ema(macdv,sig)); macdv1 = data2(macd(short,long)); macds1 = data2(Ema(macdv1,sig)); macdv2 = data3(macd(short,long)); macds2 = data3(Ema(macdv2,sig)); NH = Data1(CountIf(H > highest(H,신고신저기간)[1],최근N봉) >= 1); NL = Data1(countif(L < lowest(L,신고신저기간)[1],최근N봉) >= 1); if sDate != sDate[1] Then SetStopEndofday(당일청산시간); if Bdate != Bdate[1] Then SetStopEndofday(0); var : Tcond(False); if (sdate != sDate[1] and sTime >= 당일청산시간) or (sdate == sDate[1] and sTime >= 당일청산시간 and sTime[1] < 당일청산시간) Then Tcond = false; if (sdate != sDate[1] and sTime >= 진입시작시간) or (sdate == sDate[1] and sTime >= 진입시작시간 and sTime[1] < 진입시작시간) Then Tcond = true; if Tcond == true Then { if MarketPosition <= 0 and NL == true and CrossUp(MACDV,0) and MACDV1 > 0 and MACDV2 > 0 and macdv > macds and macdv1 > macds1 and macdv2 > macds2 Then Buy("b"); if MarketPosition >= 0 and NH == true and CrossDown(MACDV,0) and MACDV1 < 0 and MACDV2 < 0 and macdv < macds and macdv1 < macds1 and macdv2 < macds2 Then Sell("s"); if MarketPosition == 1 and (CrossDown(MACDV1,MACDS1) or CrossDown(MACDV2,MACDS2)) Then ExitLong("bx"); if MarketPosition == -1 and (CrossUp(MACDV1,MACDS1) or CrossUp(MACDV2,MACDS2)) Then ExitShort("sx"); if MarketPosition == 1 Then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*감시틱 Then ExitLong("btrx",AtStop,highest(H,BarsSinceEntry)-PriceScale*되돌림틱); } if MarketPosition == -1 Then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*감시틱 Then ExitShort("strx",AtStop,lowest(L,BarsSinceEntry)+PriceScale*되돌림틱); } } SetStopLoss(PriceScale*손절틱,PointStop); 감사합니다