커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

현재봉종가가 고가저가 중간값 위에있고, 양봉이면 다음봉시가에 즉시 매수진입 현재봉종가가 고가저가 중간값 아래있고, 음봉이면 다음봉 시가에 즉시 매도진입 감사합니다.
프로필 이미지
몽고메리
2017-08-30
179
글번호 112314
시스템
답변완료

수식부탁드립니다

1. 전일 9시부터 9시30분까지 최고가(A)를 구한다 전일 9시부터 9시30분까지 최저가(B)를 구한다 전일 9시부터 9시30분까지 진동폭(C)=최고가(A)-최저가(B)를 구한다 금일 9시부터 9시30분까지 최고가(D)를 구한다 금일 9시부터 9시30분까지 최저가(E)를 구한다 금일 9시부터 9시30분까지 진동폭(F)=최고가(D)-최저가(E)를 구한다 전일 9시부터 9시반까지 진동폭C와 금일 9시부터 9시반까지 진동폭F의 비율(G)=F/C를 구한다 전일 전체 진동폭(H)=dayhigh-daylow를 구한다 E-H*G 값을 그린다 D-H*G 값을 그린다 E-H*(1/G) 값을 그린다 D-H*(1/G) 값을 그린다 E+H*G 값을 그린다 D+H*G 값을 그린다 E+H*(1/G) 값을 그린다 D+H*(1/G) 값을 그린다 2. 전일 9시부터 9시30분까지 최고가(A)를 구한다 전일 9시부터 9시30분까지 최저가(B)를 구한다 전일 9시부터 9시30분까지 진동폭(C)=최고가(A)-최저가(B)를 구한다 금일 9시부터 9시30분까지 최고가(D)를 구한다 금일 9시부터 9시30분까지 최저가(E)를 구한다 금일 9시부터 9시30분까지 진동폭(F)=최고가(D)-최저가(E)를 구한다 전일 9시부터 9시반까지 진동폭C와 전일 9시부터 9시반까지 진동폭F의 비율(G)=F/C를 구한다 전일 전체 진동폭(H)=dayhigh-daylow를 구한다 G값이 1보다 작을 경우 E-H*(1/G) 값을 그린다 D-H*(1/G) 값을 그린다 G값이 1보다 클 경우 E+H*G 값을 그린다 D+H*G 값을 그린다 3. G값이 1보다 작을 경우 E 바닥 붕괴시 매도하여 D-H*(1/G) 값에서 청산한다 G값이 1보다 클 경우 D 천정 돌파시 매수하여 E+H*G 값에 청산한다 4. G값이 1보다 작을 경우 E 바닥 붕괴시 매도하여 D-C*G 값에서 매수한다 G값이 1보다 클 경우 D 천정 돌파시 매수하여 E+C*G 값에 매도한다 감사합니다
프로필 이미지
회원
2017-08-29
177
글번호 112313
지표
답변완료

시간

시스템을 장시작전 전일저녁에 걸어놓아도 당일 컴퓨터에서 정상적으로 작동하나요?작동이 만약 안되며는 시스템이 작동될 수 있는 가장이른 시간은 당일기준 몇시인가요? 감사합니다.
프로필 이미지
이주엽
2017-08-29
143
글번호 112312
시스템
답변완료

수식 부탁드립니다.

키움조건식인데 이조건식 발생시 매수해서 3% 익절 -2% 손절 부탁드립니다. 1. 최근 3일 종가중 최고가를 5분봉에서 뚫고 2. 주가범위는 1000 < x < 12000 3. 일봉에서 1일전 거래량이 2일전 거래량 비율 80%<x<120% 4. 일봉에서 1일전 거래량이 2일전 거래량 비율 x<100% 3,4 둘중 하나만 만족해도 매수되게 5. 1일전 거래량이 당일누적거래량을 5분봉차트에서 20% 넘을때 추가로 매수는 9시30분이내 이후로는 조건와도 매수 안함 청산은 3시20분 무조건 청산 수익이든 손실이든 키움스샷도 첨부했는데 스샷이랑 다르면 위에 쓴글에 맞춰서 수식 부탁드립니다.
프로필 이미지
디얼디어
2017-08-29
224
글번호 112309
시스템
답변완료

전전일-전일 중심선

항상 감사드립니다 아래의 조건으로 지표식을 구현코져 합니다 챠트에 내장되어 있는 Quadrant Lines 처럼 표시 1.해외선물 시작시간 현지시간 17:00 2.전전일-전일 2일의 고점과 저점을 &#52287;아서 중심값을 구하고 중심값에서 아래위로 25%씩 2단계 표시(4등분) -저항선 (가격) / 실선/red/두께0.5 -75%(가격) / 실선/red/두께0.5 -50%(가격) / 점선/red/두께0.5 -25%(가격) / 실선/red/두께0.5 -지지선 (가격) / 실선/red/두께0.5 ** 해외선물 30분/60분봉 에서 적용 **고점과 저점구간을 박스로 표시하고 박스내 색상은 노란랙표시 ** 라인은 우측연장하여 다음 라인발생시까지 표시 ** 라인시작점에 비율100%및 가격표시 ** 고점-저점 갱신으로 당일 새로운 지표식 적용시 전에 발생된것은 표시안함 3.주가가 전전일 -전일구간의 고점 또는 저점을 갱신하지 못할경우 는 기존의 라인을 그대로 연장하여 표시 감사합니다
프로필 이미지
조민철
2017-08-29
198
글번호 112308
지표
답변완료

문의합니다

20봉전 고가대비 현재가가 몇% 상승이나 하락했는지 선으로 어떻게 표현하나요?
프로필 이미지
내가간다
2017-08-29
149
글번호 112307
지표
답변완료

청산이 1개만 되요

안녕하세요! 다음 수식에서 파라미딩을 설정하면 매수는 수만큼 되나 청산은 지표에서는 1개이상 신호가 나오는데 실제 주문은 1개만 청산됩니다. 다른 설정이 필요하나요? var Begin; var CallCode,PutCode; function C1_OnRiseSignal(Signal) { if (Signal.signalKind == 1 ) { Main.MessageList("매수신호발생"); Begin = 1; CallCode = Option.GetATMCallRecent(1); var CallPrice = Option.GetBidByCode(CallCode,2); A1.OrderBuy(CallCode, 2, CallPrice, 1); } if (Begin == 1 && Signal.signalKind == 2 ) { Begin = 0; Main.MessageList("매수청산발생"); var BxCallPrice = Option.GetAskByCode(CallCode, 2); A1.OrderSell(CallCode, 1, BxCallPrice, 1);
프로필 이미지
팡팡
2017-08-28
157
글번호 112305
시스템
답변완료

수식확인 부탁드립니다.

진입회수를 2로 하였을때 진입->청산 후 진입조건을 만족하여도 바로 진입이 되지 않습니다. 확인부탁드립니다. 그리고 실매매에서 진입이 되었는데 프로그램을 재실행하면 진입이 없는걸로 나오거나 진입이 없던 곳에서 진입이 되어 있습니다 . 확인부탁드립니다. 감사합니다.~ input : short(12),long(26),sig(9),P1(3),P2(30),P3(120); input : 최고익절1(30), 최고대비하락1(10), 손절(20); input : 시작시간(215000), 종료시간(030000); input : 진입회수(1); var : mav1(0,data1),mav2(0,data1),mav3(0,data1); var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1); var : MACDO2(0,data2), MACDO1(0,data1); var : BH(0),SL(0); MACDO2 = data2(MACD_OSC(short,long,sig)); MACDO1 = data1(MACD_OSC(short,long,sig)); mav1 = data1(ma(c,P1)); mav2 = data1(ma(c,P2)); mav3 = data1(ma(c,P3)); if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{ Tcond = true; Bcount = 0; Scount = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; } //진입회수 if crossup(mav2,mav3) and MarketPosition != MarketPosition[1] and MarketPosition == 1 Then Bcount = Bcount+1; if CrossDown(mav2,mav3) and MarketPosition != MarketPosition[1] and MarketPosition == -1 Then Scount = Scount+1; //진입 if Tcond == true Then{ if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy"); if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell"); } //청산1 if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*최고익절1 Then ExitLong("B익절1",AtStop,highest(H,BarsSinceEntry)-PriceScale*최고대비하락1); ExitLong("B손절2",AtStop,EntryPrice-PriceScale*손절); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*최고익절1 Then ExitShort("S익절1",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*최고대비하락1); ExitShort("S손절2",AtStop,EntryPrice+PriceScale*손절); } if 종료시간 <= sTime and sTime < 시작시간 then { if MarketPosition == 1 then{ ExitLong("B장종료"); } if MarketPosition == -1 then{ ExitShort("S장종료"); } }
프로필 이미지
라떼처럼
2017-08-29
159
글번호 112304
시스템
답변완료

시스템 수식 수정 부탁드립니다.

추가 질문이 생겨서 문의 드립니다. 제가 프로그램을 구매해서 사용중입니다. 그런데 거기서는 아래의 조건들이 다 설정되어서 작동을 하고 있는 것을 확인하였습니다. 예를 들어서 예수금의 경우는 계좌평가에서 맨 위줄에 있는 계좌의 투자원금과 예수금을 체크하여 작동이 되는걸로 알고 있구요. 진입회수 제한과 1회 진입금액까지도 설정창에 별도 설정하지 않아도 작동 되고 있습니다. 매도의 경우도 봉이 완성되지 않아도 정상적으로 매도가 되고 있구요. 전고점은 좀 디테일하지는 않지만 챠트툴에 있는 지지저항선 중에서 일봉상의 직전고점의 종가(음봉인 경우는 시가)를 선택하면 될거 같습니다. 지수 참조데이터는 삭제해야 할거 같습니다. 다른 로직으로 대체해야 겠네요. 따지는거 아니므로 양해 바라구요. ㅎㅎ 구매한 프로그램이다보니 명령어를 볼수는 없습니다. 그리고 아래의 로직은 저의 매매 기법을 프로그램화 해볼수 있을까해서 올렸구요. 혹여 다른 방법이 있지는 않나 싶어서 제차 문의 드립니다. ==== 아 래 ==== 안녕하세요 예스스탁입니다. 1 랭귀지는 기본체계가 봉완성이고 시간도 완성봉 기준으로 판단합니다. 30분봉에서 15시15분 매수는 가능하지 않고 시스템은 장중에 신호가 발생되게 해야 하므로 30분봉에서 14시30분봉완성(15시봉시가수신) 될때가 정규장에서 조건체크할수 있는 마지막봉입니다. 14시30분봉 완성시 체크해서 15시봉 시가에 신호가 발생하게 작성했습니다. 식 작성에 참고하시기 바랍니다. 2 예수금제한등은 가능하지 않습니다. 3 코스피나 코스닥지수를 참조데이터(data2)로 추가하고 식 적용하셔야 합니다. 4 추가진입하는 수식은 반드시 적용시 피라미딩을 사용자분이 설정하셔야 합니다. 설정없이 수식에서 설정이 가능하지 않습니다. 5 전고점은 어떤 값인지 불명확합니다. 청산전략 중 전고점관련 내용은 제외한 수식입니다. 6 input : 매수금액(500000); var : cond(false),Xcond(false); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } if MarketPosition == 0 and data2(C > ma(c,5)) and stime == 143000 and C < DayClose(1) and C < O then buy("b",OnClose,def,Floor((매수금액*0.25)/C)); if MarketPosition == 1 Then { if MaxEntries ==5 and C <= AvgEntryPrice*0.75 Then cond = true; if stime == 143000 and C < DayClose(1) and C < O and C < AvgEntryPrice then { if ((cond == false and MaxEntries > 1 and MaxEntries < 5) or (cond == true and MaxEntries > 5 and MaxEntries < 10)) then { buy("bb",OnClose,def,Floor((매수금액*0.25)/C)); } } if CurrentContracts > CurrentContracts[1] Then Xcond = false; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp" Then Xcond = true; if Xcond == false then ExitLong("bp",atlimit,AvgEntryPrice*1.10,"",Floor(MaxContracts*0.50),2); if stime == 143000 and C > DayClose(1) and C > O and C > AvgEntryPrice*1.03 then exitlong("bx1",OnClose,def,"",Floor(MaxContracts*0.20),2); exitlong("Bx2",AtLimit,상한가); if stime == 143000 and C > DayClose(1) and DayClose(1) > DayClose(2) and DayClose(2) > DayClose(3) and DayClose(3) > DayClose(4) then exitlong("bx3",OnClose,def,"",Floor(MaxContracts*0.20),2); } Else{ cond = false; Xcond = false; } 즐거운 하루되세요 > 승부사1 님이 쓴 글입니다. > 제목 : 시스템수식 부탁드립니다. > # 매수전략 - 매수 시작일 설정 - 1회 매수 금액 500,000원 - 분할 매수 5회로 제한 (단, 5회 매수후 주가 지속하락하여 평단가대비 -25% 발생시 재작동하여 5회까지 분할 매수) - 코스피(코스닥) 지수가 일봉상 5일선 이하에서는 신규 매수 제한 (기 보유종목에 대한 매수는 진행) - 예수금이 투자원금의 15% 이하인 경우 신규 매수 제한 - 30분봉 챠트에 적용하며 전일종가보다 낮은 음봉이며 평단가보다 낮은 경우 151500에 매수 # 매도전략 - 전일종가보다 높은 양봉이며 평단가대비 3%이상 수익인 경우 151500에 보유 금액의 20% 매도 - 장중 평단가대비 10% 수익실현 즉시 보유 금액의 50% 매도 # 청산전략 &#8211; 조건만족 즉시 실행 &#8211; 재진입 금지 - 장중 상한가 도달시 전량매도 - 전일종가대비 높은 종가(양음봉 상관없이)가 연속되는 경우 4일째 되는 날 151500에 전량매도 - 거래량 60이평선의 3배이상의 거래량이 발생하고 전고점의 종가보다 주가가 낮으면 전량매도 - 거래량 60이평선의 3배이상의 거래량이 발생하고 전고점을 종가를 상승돌파하였다가 다시 하향이탈시 전량매도 피라미딩, 매수금액 설정없이 작동되게 부탁드립니다.
프로필 이미지
승부사1
2017-08-28
203
글번호 112303
시스템