커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다

60분봉상 후행스팬이 볼린저밴드 상단을 상향돌파하는 수식을 알고싶습니다
프로필 이미지
주군
2020-06-15
2104
글번호 139847
종목검색
답변완료

문의드립니다.

var1 = XXX(1); var2 = YYY(1); var3 = var1-var2; plot1(var1,"0"); plot2(var2,"1"); plot3(var1-var3*0.02); 위의 지표에서 1) 30분 차트에서 종가로 var1을 crossup 하여 시그널이 발생 후 가격이 종가로 plot3에 도달한 종목만 검색되도록 종목 검색식을 만들고 싶습니다. 2) 최근 10개 봉 이내에서 종가로 var1을 crossup 하여 시그널이 발생한 종목을 검색하는 종목 검색식을 만들고 싶습니다. 도움 주셔서 감사합니다. 좋은 하루 되세요
프로필 이미지
카탈레나
2020-06-15
2032
글번호 139846
종목검색
답변완료

손절,익절, 매매중지식

(당초) 선물+옵션에서 지금까지 익절,손절을 아래와 같이 숫치로 했는데 SetStopLoss(2,PointStop); SetStopProfittarget(3,PointStop); SetStopEndofday(150000); (변경) 옵션같은 경우는 진입가격이 달라져서 포인트로 표현하기가 어렵습니다. 손실율(25%손실),수익율(150%)로 구현하려면 어떻게 작성되어야 할까요? 아래와 같이는 구현이 안되는 것 같습니다. SetStopLoss(EntryPrice*0.75,PointStop); SetStopProfittarget(EntryPrice*3,PointStop); SetStopEndofday(150000);
프로필 이미지
몸통공격
2020-06-15
2120
글번호 139845
시스템
답변완료

for, if, IFF, ATR 활용한 지표 작성 도움 요청 드립니다.

잘 모르겠는 부분을 한글로 표현했는데, 도움 요청드립니다. - input : ATR 10일치 - var : 모르겠음 - for문 : 일봉으로 상장일부터 현재까지 반복 if 해당일이 상장일자 { 상장일의 StateNo=1; 상장일의 InUptrend=true; 상장일의 InDntrnd=false, 상장일의 Uptrend=종가; 상장일의 Dntrend=종가; } else { 해당일의 StateNo = 전일의 StateNo; 해당일의 InUptrend = 전일의 InUptrend; 해당일의 InDntrend = 전일의 InDntrend; 해당일의 Uptrend = 전일의 Uptrend; 해당일의 Dntrend = 전일의 Dntrend;} if 전일의 StateNo=1 { if 해당일의 종가 >= 전일의 종가 { 해당일의 StateNo=1; 해당일의 InUptrend=true; 해당일의 InDntrend=false; 해당일의 Uptrend = 해당일의 종가 } else { if 해당일의 InUptrend AND 해당일의 종가 <= 해당일의 Uptrend 곱하기 '해당일 기준 10일짜리 ATR' { 해당일의 StateNo=6; 해딩일의 Inuptrend=false; 해당일의 InDntrend=True, 해당일의 Dntrend = 해당일의 종가} } } - WeightNo 그리기 해당일의 StateNo=1이면 WeightNo=5,빨간색 해당일의 StateNo=6이면 WeightNo=-5, 파란색
프로필 이미지
터틀3세
2020-06-15
2355
글번호 139842
지표
답변완료

코딩부탁드립니다.

전략은 ----------------------------------- 시가 +(전고-전저)*K1 상향돌파시 매수 시가 -(전고-전저)*K2 하향돌파시 매도 ----------------------------------- k1, k2값은 최적화하기 위함입니다. 아래와 같이 작성했는데 시스템이 적용이 안되네요. 수정부탁드립니다! input : K1(0.5), k2(0.7); If MarketPosition == 0 and dayhigh > dayopen+(dayhigh(1)-daylow(1))*K1 Then buy("b",atmarket); If MarketPosition == 1 and dayhigh < dayopen+(dayhigh(1)-daylow(1))*K2 Then sell("s",atmarket);
프로필 이미지
와이시스
2020-06-15
2158
글번호 139835
시스템
답변완료

수고많으십니다 수식 문의 드립니다~

안녕하세요 수고많으십니다. 혹시 특정요일에만 당일 청산 수식이 있는지요? 종목은 해외선물인데요 혹시 특정 요일에만 당일 청산 수식이 있다면, 금요일 장 마감(토요일 오전 05시55분 청산)시 당일 청산 수식 부탁드립니다~ 수고하시고 건강하세요!!
프로필 이미지
머어얼
2020-06-15
2017
글번호 139834
시스템
답변완료

지표 문의 드립니다

안녕하세요, 지표 수식 문의 드립니다. 매달 월봉 첫 캔들 기준으로 매월 초기화 + ((양봉 캔들 + 움직임이 없던캔들)*0.5) / (음봉 캔들 + 움직임이 없던캔들)*0.5)*100 // 움직임이 없던 캔들은 시가와 종가가 같은 캔들 지표문의 드립니다. 한달동안의 캔들을 백분율로 나눠서 지난 고점보다 이번고점의 캔들의 비율이 높은지 낮은지 파악하는 지표를 만들고 싶습니다. 부탁드립니다 감사합니다. 오늘하루도 행복한하루 보내세요
프로필 이미지
pua
2020-06-15
2021
글번호 139833
지표
답변완료

문의

상단하단에 상하단의 폭이 숫자로 나오게 부탁드립니다. 예를들면 하단이 270이고 상단280이면 상단선위에 10이라는 숫자가 나오게 부탁드립니다. 반대의 경우도 마찬가지입니다. 수식은 아래에 수식으로 참조 부탁드립니다. input: period(20),봉수(2),상단굵기(2),중단굵기(2),하단굵기(2); Var:선두께(3),상승색(GREEN), 하락색(WHITE),예비선색상(white),상승세로선색상(red),하락세로선색상(blue),세로선두께(2); 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),idx(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,blue); Text_SetStyle(Tx,2,1); Text_SetSize(tx,12); tx = Text_New(date11,time11,Value11,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[0] = TL_New(date21,time21,fr[0],date22,time22,fr[0]); TL_SetColor(TL2[0],white); TL_SetSize(TL2[0],하단굵기); #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); TL2[5] = TL_New(date21,time21,fr[5],date22,time22,fr[5]); TL_SetColor(TL2[5],white); TL_SetSize(TL2[5],상단굵기); TL2[6] = TL_New(date21,time21,fr[6],date22,time22,fr[6]); TL_SetColor(TL2[6],MAGENTA); idx = 0; TL_SetSize(TL2[6],중단굵기); } 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]; //Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" "); #동그라미 색상, 빨강 //Text_SetColor(Tx,BLUE); //Text_SetStyle(Tx,1,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); idx = 0; } } 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,red); Text_SetStyle(Tx1,2,5); Text_SetSize(tx1,12); tx = Text_New(date11,time11,Value11,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 6 { fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]); } TL3[0] = TL_New(date31,time31,fr[0],date32,time32,fr[0]); TL_SetColor(TL3[0],white); TL_SetSize(TL3[0],하단굵기); #TL3[1] = TL_New(date31,time31,fr[1],date32,time32,fr[1]); #TL_SetColor(TL3[1],BLUE); #TL_SetStyle(TL3[1], 3); #TL3[2] = TL_New(date31,time31,fr[2],date32,time32,fr[2]); #TL_SetColor(TL3[2],BLUE); #TL_SetSize(TL3[2],1); #TX3[2] = Text_New(date32,time32,fr[2],NumToStr(fr[2],2)); #Text_SetColor(Tx3[2],BWHITE); #Text_SetStyle(TX3[2],1,1); #TL3[3] = TL_New(date31,time31,fr[3],date32,time32,fr[3]); #TL_SetColor(TL3[3],BLUE); #TL_SetStyle(TL3[3], 3); #TL3[4] = TL_New(date31,time31,fr[4],date32,time32,fr[4]); #TL_SetColor(TL3[4],BLUE); #TL_SetSize(TL3[4],1); #TX3[4] = Text_New(date32,time32,fr[4],NumToStr(fr[4],2)); #Text_SetColor(Tx3[4],BWHITE); #Text_SetStyle(TX3[4],1,0); TL3[5] = TL_New(date31,time31,fr[5],date32,time32,fr[5]); TL_SetColor(TL3[5],white); TL_SetSize(TL3[5],상단굵기); TL3[6] = TL_New(date31,time31,fr[6],date32,time32,fr[6]); TL_SetColor(TL3[6],cyan); TL_SetSize(TL3[6],중단굵기); idx = 0; } 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]; //Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" "); #동그라미 색상, 빨강 //Text_SetColor(Tx,RED); //Text_SetStyle(Tx,1,1); 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); idx = 0; } } idx = idx+1; TL_SetSize(tL,선두께); TL_SetSize(tL1,선두께); TL_SetColor(tL,예비선색상); var : VTL(0); if idx == 봉수 Then { TL_Delete(VTL);// VTL = TL_New(sdate,stime,999999999,sDate,stime,0); TL_SetColor(VTL,iff(T == -1,상승세로선색상,하락세로선색상)); TL_SetSize(VTL,세로선두께); } plot1(fr[0]); plot2(fr[5]); plot3(fr[6]);
프로필 이미지
레전드
2020-06-14
1958
글번호 139832
지표
답변완료

문의드립니다.

연일 수고에 감사드립니다. 초보질문 드립니다. -------------------------------------------------------------------------------------- 1. 전봉고가 돌파시 진입이라고 할때, 장시작시간부터 매매한다고 가정하면, 장시작 후 첫봉은 전봉이 없기 때문에 첫봉다음 2번째 봉에서부터 진입이 가능한 건가요? 2. 어떤 글에서,매매시간은 캔들 단위로 한다고 본것 같은데요, 예를 들어, 종료 시간을 익일05:50분으로 로직을 만들었는데, 30분봉으로 매매를 했다면 05:30분에 마지막 매매가 끝나고 05:50분에는 시스템이 종료된다는 말인가요? 60분봉이면 05:00에 끝나고, 20분봉이면 05:40분에 끝나고? 시스템상 설정한 종료시간 범위안에서 매매를 실행한 차트 캔들 단위로 종료된다고 이해하면 되나요? 3. 항셍시간에 대해 질문인데요, 항셍은 오전, 오후, 야간 3번에 나눠서 매매가 되는데요, 중간에 두번이 끊어지는 건데요, 이것을 세번에 다 각각 나워서 매매시간을 설정해야 되나요, 아니면 10:15 ~ 04:00 를 시간을 하나로 쭉 이어서 설정해도 되는지요, (예: 07:00 ~ 03:50, 10:15 ~ 03:55 ) 4. 항셍에서 시간이 중간에 두번이 끊어지는데요, 전봉고가 돌파시 진입이라고 할때, 오후장 14:00시와, 야간장 18:10분에 다시 시작할때도 첫봉은 전봉이 없는 것으로 되어, 두번째 봉부터 진입이 되는것인가요? 아니면 그전과 계속 이어서 되는 것인가요? -------------------------------------------------------------------------------------- 많은 도움 받고 있습니다. 감사합니다.
프로필 이미지
군고구마
2020-06-14
1897
글번호 139831
시스템