커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
4477
글번호 230811
지표
답변완료

종목검색식 부탁함니다.

안녕하십니까! 아래와 같은 조건으로 종목검색을 하고 합니다. 검색조건 - 일봉 60일선과 주봉 60일선 위 - 20과 60선의 이격도는 30% 이내(일봉 및 주봉) - 60선의 우상향 추세(일봉 및 주봉) 종목검색식으로 어떻게 종목검색을 해야 하는지 절차를 알려주세요. 감사합니다.
프로필 이미지
아틀라스
2018-12-04
199
글번호 124146
종목검색
답변완료

문의드립니다

문의드립니다. 분봉에서 일봉 주봉 월봉의 price channel 과 볼린저밴드를 불러올때 수식 cnt 와 counter 사용범위가 궁금합니다. 분봉의 pc 는 cnt 볼린저밴드는 counter 를 사용하고 일,주,월의 pc 는 dcnt wcnt mcnt 볼린저밴드는 dCounter wcounter mcounter Top dTop wTop mTop 에서는 cnt 를 맞게 사용하고 있는지 알려주시기 바랍니다. 분봉의 pc 에서 cnt 와 counter의 차이점이 무엇인지 궁금합니다 감사합니다.
프로필 이미지
맥스
2018-12-04
211
글번호 124145
지표
답변완료

확인부탁드립니다!

안녕하세요! 아래는 어제 만들어 주신 수식인데요! 월물(콜과 풋의 당월 근월물 첫날 저가와 고가)가 표현이 안되는것 같습니다! 적용을 해보니 콜은 적용이 되면 풋은 0으로 선 구현이 됩니다! 다시 한번 수식 점검을 부탁드립니다! 감사합니다! ------------------------------------------------------ var : nday1(0,data1),week1(0,data1),Exdate1(false,data1); var : H1(0,data1),L1(0,data1),D1(0,data1),V11(0,data1),V12(0,data1); var : nday2(0,data2),week2(0,data2),Exdate2(false,data2); var : H2(0,data2),L2(0,data2),D2(0,data2),V21(0,data2),V22(0,data2); nday1 = data1(date - int(date/100)*100); week1 = data1(DayOfWeek(date)); if nday1 >= 8 and nday1 <= 14 and week1 == 4 then Exdate1 = true; Else Exdate1 = false; if data1(bdate != bdate[1] and Exdate1 == false and Exdate1[1] == true) Then { D1 = data1(bdate); H1 = data1(H); L1 = data1(L); } if sdate == D1 Then { v11 = data1(daylow); v12 = data1(DayHigh); } if data1(H) > H1 Then H1 = data1(H); if data1(L) < L1 Then L1 = data1(L); plot1(data1(DayHigh(1)),"전일고가"); plot2(data1(daylow(1)),"전일저가"); plot3(data1(DayOpen(0)),"전일시가"); if H1 > 0 and L1 > 0 then { plot4(H1,"월고"); plot5(L1,"월저"); } plot6(v11,"월물첫날저가"); plot7(v12,"월물첫날고가"); nday2 = data2(date - int(date/100)*100); week2 = data2(DayOfWeek(date)); if nday2 >= 8 and nday2 <= 14 and week2 == 4 then Exdate2 = true; Else Exdate2 = false; if data2(bdate != bdate[1] and Exdate2 == false and Exdate2[1] == true) Then { D2 = data2(bdate); H2 = data2(H); L2 = data2(L); } if sdate == D2 Then { v21 = data2(lowD(0)); v22 = data2(HighD(0)); } if data2(H) > H2 Then H2 = data2(H); if data2(L) < L2 Then L2 = data2(L); plot11(data2(HighD(1)),"전일고가"); plot12(data2(lowD(1)),"전일저가"); plot13(data2(OpenD(0)),"전일시가"); if H2 > 0 and L2 > 0 then { plot14(H2,"월고"); plot15(L2,"월저"); } plot16(v21,"월물첫날저가"); plot17(v22,"월물첫날고가");
프로필 이미지
qha71
2018-12-04
196
글번호 124144
지표
답변완료

부탁드립니다.

항상 감사드립니다. 매구 가능 조건 후 (BuyEntry == true) mav1 > mav2 and mav3[1] < mav3 상태이면서 U2 == 1 and U2!=U2[1] 이면 매수하는 식으로 해보았습니다. 매구 가능 조건 후 (BuyEntry == true) mav1 > mav2 and mav3[1] < mav3 상태가 풀리면 U2 == 1 and U2!=U2[1] 이어도 매수하지 않고 싶습니다. 아래식은 매수 가능 조건후 mav1 > mav2 and mav3[1] < mav3 상태가 풀리더라도 한참뒤어 mav1 > mav2 and mav3[1] < mav3 와 U2 == 1 and U2!=U2[1] 가 만족되면 매수가 들어갑니다. 부탁드립니다. 1식은 제가 구성해 본 식이며, 2식은 작성해 주신 식입니다. 두개 모두 동일합니다. 1. Input : Period(5), Period1(5); Input : P1(30), P2(60), P3(300); var : FstK(0),FstD(0); var : mav1(0), mav2(0), mav3(0); var : t(0), t1(0), tx(0), U2(0); var : BH(0),SL(0),HE(0),LE(0); var : BuyEntry(false); FstK = FastK(Period); FstD = FastD(Period,Period1); mav1 = wma(C, P1); mav2 = wma(C, P2); mav3 = wma(c, P3); if FstK[1] < FstK Then #FstK 상승 U2 = 1; if FstK[1] > FstK Then #FstK 하강 U2 = -1; if mav1 > mav2 and mav3[1] < mav3 then { t = 1; #t는1 mav1>mav2 & mav3 상향구간 t값은 t1에 저장 t1 = t[1]; } # t가 1인 상태에서 Fstk가 80을 CrossDown 하면 t = 2로 변경 ● 출력 if t == 1 and Crossdown(FstD, 80) Then { t = 2; #t는 2로 변경 #●출력 tx = Text_New(sdate,stime,H+PriceScale,"●"+NumToStr(C,2)); Text_SetStyle(tx,2,2); Text_SetColor(tx,RED); BuyEntry = true; //매수가능 } # mav1>mav2 & mav3 상향구간 # Crossdown(Fastk, 80) t는 2까지 기록했고 # mav1>mav2 & mav3 상향구간 인 상태이고 FastK가 다시 상승하면 매수 if BuyEntry == true and mav1 > mav2 and mav3[1] < mav3 and U2 == 1 and U2!=U2[1] then BuyEntry = false; # false로 초기화 buy("B3"); } if MarketPosition == 1 Then { BH = highest(H,BarsSinceEntry); if MaxEntries == 1 Then HE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then HE = LatestEntryPrice(0); SetStopProfittarget(0.4); ExitLong("B손절",AtStop,HE-PriceScale*80); } 2. Input : Period(5), Period1(5); Input : P1(30), P2(60), P3(300); var : FstK(0),FstD(0); var : mav1(0), mav2(0), mav3(0); var : t(0), t1(0), tx(0), U2(0); var : BH(0),SL(0),HE(0),LE(0); var : BuyEntry(false); FstK = FastK(Period); FstD = FastD(Period,Period1); mav1 = wma(C, P1); mav2 = wma(C, P2); mav3 = wma(c, P3); if FstK[1] < FstK Then #FstK 상승 U2 = 1; if FstK[1] > FstK Then #FstK 하강 U2 = -1; if mav1 > mav2 and mav3[1] < mav3 then { t = 1; #t는1 mav1>mav2 & mav3 상향구간 t값은 t1에 저장 t1 = t[1]; } # t가 1인 상태에서 Fstk가 80을 CrossDown 하면 t = 2로 변경 ● 출력 if t == 1 and Crossdown(FstD, 80) Then { t = 2; #t는 2로 변경 #●출력 tx = Text_New(sdate,stime,H+PriceScale,"●"+NumToStr(C,2)); Text_SetStyle(tx,2,2); Text_SetColor(tx,RED); BuyEntry = true; //매수가능 } # mav1>mav2 & mav3 상향구간 # Crossdown(Fastk, 80) t는 2까지 기록했고 # mav1>mav2 & mav3 상향구간 인 상태이고 FastK가 다시 상승하면 매수 if t > 0 and t1 >= 2 and U2 == 1 and U2!=U2[1] and BuyEntry == true Then 매수가능일때만 매수 { BuyEntry = false;# false로 초기화 buy("B3"); } if MarketPosition == 1 Then { BH = highest(H,BarsSinceEntry); if MaxEntries == 1 Then HE = LatestEntryPrice(0); if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then HE = LatestEntryPrice(0); SetStopProfittarget(0.4); ExitLong("B손절",AtStop,HE-PriceScale*80); }
프로필 이미지
라떼처럼
2018-12-04
179
글번호 124143
시스템
답변완료

수식 부탁드립니다.

5분봉에서 전일거래량 10%발생하면서 5분봉에서 2%이상으로 일봉에서 60일 이동평균선 뚫고 1,2,3,4,5일전 종가위에 있으면서 전일대비 3%이상 상승한 종목에서 매수 수식 부탁드립니다.
프로필 이미지
디얼디어
2018-12-04
188
글번호 124139
시스템
답변완료

함수요청

안녕하세요? 아래 글번호 60311번 재질문 드립니다. 함수요청드립니다. 해외선물 크루드오일 30분봉으로 거래를 하고자 합니다. 써머타임 적용시에는 1번으로, 써머타임 해지시에는 2번전략으로 거래를 하고자 합니다. 하나의 스크립트로 요청드립니다. 1. 써머타임 적용시 -매수: 23시 30분 시점에 현재가 > 00시 30분 시점에 현재가 이면, 익일 1시 시초가 진입 -매도: 23시 30분 시점에 현재가 < 00시 30분 시점에 현재가 이면, 익일 1시 시초가 진입 -청산: SetStopEndOfday(043000); -당일 진입, 당일 청산으로 1번 왕복 거래입니다. 2. 써머타임 해지시 -매수: 22시 30분 시점에 현재가 > 23시 30분 시점에 현재가 이면, 익일 0시 시초가 진입 -매도: 22시 30분 시점에 현재가 < 23시 30분 시점에 현재가 이면, 익일 0시 시초가 진입 -청산: SetStopEndOfday(033000); -당일 진입, 당일 청산으로 1번 왕복 거래입니다. 두 시점의 현재가를 비교하여 특정 시각에 진입한다는 컨셉입니다. 그런데 작성주신 스크립트는 두 시점의 현재값을 비교하여 atmarket하는 걸로 주셨습니다. 바쁘시겠지만 검토 부탁드립니다.
프로필 이미지
흰둥이아빠
2018-12-04
189
글번호 124136
시스템
답변완료

참조데이터 8개 활용 매매문의

5분봉 매매를 한다고 가정시. 주차트를 선물차트로 설정하고 참조데이터 8개를 옵션차트로 설정후 A라는 조건을 8개 옵션차트에 적용시킨 상태에서 8개 옵션차트중 6개 이상이 조건에 동시 만족하면 이전봉 종가에 매수주문 하는 식은 어떻게 하나요
프로필 이미지
신호매매
2018-12-04
200
글번호 124132
시스템
답변완료

atlimit 주문 오류 문의

안녕하세요, 유진에서 원유해외선물을 거래하고 있습니다. atlimit으로 주문을 내보내고 있는데, atlimit 주문이 채결 안된상태에서 profittarget주문이 먼저 나가게 되어 문의드립니다. crossup(fast, slow) then sell("",atlimit, close + 1 pricescale) 으로 진입하여 0.1 tick 이익 또는 0.1tick 손실일때 profittarget이나 stoploss로 청산하는 전략이 있다고 할때, 방금 crossup(fast, slow) 조건을 만족하여 아래 가격으로 주문을 체결하려 합니다. (시스템 매매설정에서 매매가격은 종가로 설정하였습니다.) - 현재봉 종가 : 50.11 - atlimit 매도 주문가 : 50.12 atlimit - profittarget 주문가 : 50.02 atstop - stoploss 주문가 : 50.22 atstop 이때 다음봉의 고가가 50.12 였고 (atlimit 주문상 체결이 안될 수도 있다는 사항을 인지하고 있습니다.) 가격이 하락하여 50.00 까지 하락하였다고 가정하겠습니다. 여기서 제가 판단하는 시나리오는 두가지 인데 1) 50.12에서 체결이 되어 50.02에서 청산 2) 50.12에서 거래가 체결되지 못해 아무런 거래가 없음 예상하지 못한 3)의 상황이 발생하여 문의드립니다. 3) 50.12에서 체결이 되지 않고, 50.02에서 매수포지션 체결 3)의 상황과 같이 최초 50.12 최초 매도 주문 포지션의 실체결 여부를 파악하여 이후 청산 주문을 내보내는 방법은 없는지, 혹시 3)의 상황이 발생하면 별도의 청산 조건을 부여할 수는 없는지 문의 드립니다. 감사합니다.
프로필 이미지
라면의비밀
2018-12-04
176
글번호 124125
시스템
답변완료

문의드립니다

아래 지표에 우측 끝까지 나타나는 수평라인을, 지표가 새로 갱신되는 지점까지만 나타나게 부탁드립니다 ==================================================== Input : af(0.02), maxAF(0.2); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0); Array : TL11[50](0),TL22[50](0); var1 = CSar(af,maxAF); if bdate != bdate[1] then { value1 = 0; value2 = 0; for cnt = 1 to 49 { TL_Delete(TL11[cnt]); TL_Delete(TL22[cnt]); } } if crossup(c,var1) Then { T = 1; HH = H; HD = sdate; HT = stime; if LL > 0 Then { TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH); } if LD == sdate then { if value1 == 0 then { value1 = value1+1; value11 = LL[1]; TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); TL_SetExtRight(TL11[value1],true); } if value1 > 0 and LL[1] < value11 then { value1 = value1+1; value11 = LL[1]; TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL); TL_SetExtRight(TL11[value1],true); } } } if CrossDown(c,var1) Then { T = -1; LL = L; LD = sdate; LT = stime; if HH > 0 Then { TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL); } if HD[1] == sdate then { if value2 == 0 then { value2 = value2+1; value22 = HH[1]; TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); TL_SetExtRight(TL22[value2],true); } if value2 > 0 and HH[1] > value22 then { value2 = value2+1; value22 = HH[1]; TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH); TL_SetExtRight(TL22[value2],true); } } } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; TL_SetEnd(TL1,HD,HT,HH); } } if T == -1 then { if L < LL Then { LL = L; LD = sdate; LT = stime; TL_SetEnd(TL2,LD,LT,LL); } }
프로필 이미지
해피데이m
2018-12-04
198
글번호 124119
지표