커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

추세선

input : Period(10); Var:선두께(1),상승색(red), 하락색(blue); Var:j(0),T(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); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/; Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](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]; //ZZ[j+1] = ZZ[j]; } LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; 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,하락색); Tx = Text_New(date11,time11,Value11,"●"); #동그라미 색상, 빨강 Text_SetColor(Tx,Green); Text_SetStyle(Tx,2,2); Text_SetSize(tx,7); //tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+NumToStr(value11,2)+NewLine); //Text_SetStyle(tx,2,1); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; for j = 0 to 6 { fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]); } #TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]); #TL_SetColor(TL2[1],RED); #TL_SetStyle(TL2[1], 3); #TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]); #TL_SetColor(TL2[2],RED); #TL_SetSize(TL2[2],1); #TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2)); #Text_SetColor(Tx2[2],BWHITE); #Text_SetStyle(TX2[2],1,1); #TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]); #TL_SetColor(TL2[3],RED); #TL_SetStyle(TL2[3], 3); #TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]); #TL_SetColor(TL2[4],RED); #TL_SetSize(TL2[4],1); #TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2)); #Text_SetColor(Tx2[4],BWHITE); #Text_SetStyle(TX2[4],1,0); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; //ZZ[0] = L; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_SetEnd(TL2[0],date22,time22,fr[0]); TL_SetEnd(TL2[1],date22,time22,fr[1]); TL_SetEnd(TL2[2],date22,time22,fr[2]); Text_SetLocation(TX2[2],date22,time22,fr[2]); TL_SetEnd(TL2[3],date22,time22,fr[3]); TL_SetEnd(TL2[4],date22,time22,fr[4]); Text_SetLocation(TX2[4],date22,time22,fr[4]); TL_SetEnd(TL2[5],date22,time22,fr[5]); TL_SetEnd(TL2[6],date22,time22,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; //ZZ[j+1] = ZZ[j]; } HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; 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,상승색); Tx1 = Text_New(date11,time11,Value11,"●"); #동그라미 색상, 파랑 Text_SetColor(Tx1,Green); Text_SetStyle(Tx1,2,2); Text_SetSize(tx1,7); //tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)+NewLine+NumToStr(value11,2)); //Text_SetStyle(tx,2,0); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; for j = 0 to 5 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; //ZZ[0] = H; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_SetEnd(TL3[0],date32,time32,fr[0]); TL_SetEnd(TL3[1],date32,time32,fr[1]); TL_SetEnd(TL3[2],date32,time32,fr[2]); Text_SetLocation(TX3[2],date32,time32,fr[2]); TL_SetEnd(TL3[3],date32,time32,fr[3]); TL_SetEnd(TL3[4],date32,time32,fr[4]); Text_SetLocation(TX3[4],date32,time32,fr[4]); TL_SetEnd(TL3[5],date32,time32,fr[5]); TL_SetEnd(TL3[6],date32,time32,fr[6]); TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); } } TL_SetSize(TL1,선두께); //TL_SetEnd(tl,NextBarSdate,NextBarStime,NextBarOpen); 양선에 매수,음선에 매도. 감사합니다.
프로필 이미지
고성
2022-10-20
1040
글번호 163168
시스템

강물처름 님에 의해서 삭제되었습니다.

프로필 이미지
강물처름
2022-10-20
0
글번호 163167
시스템
답변완료

Time 사용법

현재봉이 완성되는데 소용되는 시간을 측정하는데 Time-sTime 또는 Time-Time[1] 로 계산될 수 있다고 생각합니다. 근데 시간 단위가 변경되는 구간, 예를 들면 95900 에서 100100 구간의 경우는 수치가 터무니 없이 나오네요. 매 시간변경 구간에선 같은 현상입니다. 가능한 수식 부탁드립니다.
프로필 이미지
뉴하트
2022-10-20
814
글번호 163165
지표
답변완료

피라미딩에서 청산안된 수량 강제청산방법

늘 도움받아 감사합니다. 하나 더 여쭙니다 피라미딩상황에서..(5회분할매수) 1차 첫매수후... 가격이 떨어질때마다 추가로 매수하는데.. 다 정리하고 남은 첫매수가 고가권이라 정리가 안되있을때 남은 매수수량을 정리하는 방법을 알고싶어요. 예를들어..가격이 하락할때마다 분할매수하는데.. 1차 9XXX원에 첫매수 b1 수량 10개 2차 7XXXX원에 추가매수 b2 수량 10개 3차 6XXXX원에 추가매수 b3 수량 20개 ..... 이렇게 했을때. 평균단가(avgentry) 가 5%이상이면 정리하게 해서.. b2와 b3는 청산됬는데... 남은 b1이 고가에서 사진거라.. 이익5%가 안되 청산되지못할때.. b1매수가격의 본절(수수료때문에 매수가x1.25% 시 본절가)이면 강제로 청산시키는 방법을 알고싶어요. ( 계속 매매가 되야하는데..청산되지않은물량때문에 신규매수가 이뤄지지 못하는 점때문에..알고싶습니다.)
프로필 이미지
포에니
2022-10-31
937
글번호 163164
시스템

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

프로필 이미지
knb
2022-10-20
27
글번호 163163
지표
답변완료

부탁드립니다

수고하십니다 79257번 재질문입니다 콜등가대입이나 풋등가대입은 지정한 값의 수만큼 지정하시는 부분입니다. 라고 말씀하셨는데 어떻게 무슨뜻인지... (예제로 부탁드립니다)
프로필 이미지
파생돌이
2022-10-20
1016
글번호 163158
지표
답변완료

시가기준 상단, 하단 매매

시가 기준으로 상단/하단 기준을 정하고, 현재가가 그 밖으로 나갔다 들어올때 진입하는 코드를 짰는데 종종 진입을 안하네요 수정부탁드립니다. --<개념>----------------------------------------------------------------------- 1) 시가-1.5pt 기준으로 선을 긋고, 현재가가 그 선 밑으로 내려갔다가 시가-1.5pt을 터치하면 매수 2) 시가+1.5pt 기준으로 선을 긋고, 현재가가 그 선 위로 올라갔다가 시가+1.5pt을 터치하면 매도 3) 종가청산 --<코드>---------------------------------------------------------------- Input : 상단포인트(1.5), 하단포인트(1.5); # 진입 # # 매수 진입 # if CrossUp(C,DayOpen-하단포인트) and ExitDate(1) <> date and MarketPosition == 0 then # 시가 대비 -1.5pt를 Cross Down하고, 첫 진입이라면, 보유 포지션이 없다면 buy("매수", AtLimit, DayOpen-하단포인트); # 시가대비 -1.5pt로 체결 # 매도 진입 # if CrossDown(C,DayOpen+상단포인트) and ExitDate(1) <> date and MarketPosition == 0 then # 시가 대비 +1.5pt를 Cross Up하고, 첫 진입이라면, 보유 포지션이 없다면 sell("매도", AtLimit, DayOpen+상단포인트); # 시가대비 +1.5pt로 체결 # 종가 청산 # SetStopEndofday(154000);
프로필 이미지
퀀트드래곤
2022-10-20
1312
글번호 163157
시스템
답변완료

청산식

안녕하세요!! 궁금한 점이 있어 질의 드립니다. 요요청산, 샹들리에청산, 추적청산의 1번. 기본 예제식과 변형식 2번. 각 식의 용도와 차이점 3번. 기간값과 승수를 찾는 방법 수고하십시요
프로필 이미지
목포댁
2022-10-20
1143
글번호 163143
시스템
답변완료

문의 드립니다.

아래 시스템 로직에서 수량을 추가 조절할 수 있도록 부탁드립니다. var1 = (DayHigh+DayLow)/2; if CrossUp(C,Var1) Then Buy(); if CrossDown(c,Var1) Then ExitLong();
프로필 이미지
선물대장
2022-10-20
1240
글번호 163138
시스템