커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

피보나치 세로선

input : 전환포인트(0.8); Array : HD[10](0),HT[10](0),HV[10](0); Array : LD[10](0),LT[10](0),LV[10](0); var : cnt(0),Hprice(0),Lprice(0); var : UpTrend(false),DownTrend(False),Trend(0),Trend1(0),ZigZagTL(0),TX(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0); Plot1 (c); HPrice = H; LPrice = L; if Index == 0 or Bdate != Bdate[1] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; trend = 0; trend1 = 0; } Else { if Trend == 0 Then { if L < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; } if H > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; } } UpTrend = HPrice >= LV[0]+전환포인트; DownTrend = LPrice <= HV[0]-전환포인트; if trend <= 0 and UpTrend == true Then { trend = 1; trend1 = trend[1]; For cnt = 9 DownTo 1 { HD[cnt] = HD[cnt-1]; HT[cnt] = HT[cnt-1]; HV[cnt] = HV[cnt-1]; } HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; TX = Text_New(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,1); Text_SetColor(TX,Black); Text_SetSize(tx,30); Text_SetBold(tx,1); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(LD[0],LT[0],var5,NextBarSdate,NextBarStime,var5); TL7 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(TL1,Magenta); TL_SetColor(TL3,Orange); TL_SetColor(TL4,Blue); TL_SetColor(TL5,Orange); TL_SetColor(TL7,Magenta); } Else if trend >= 0 and DownTrend Then//하락추세 전환 { trend = -1; trend1 = trend[1]; For cnt = 9 DownTo 1 { LD[cnt] = LD[cnt-1]; LT[cnt] = LT[cnt-1]; LV[cnt] = LV[cnt-1]; } LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; TX = Text_New(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" "); Text_SetStyle(TX,1,0); Text_SetColor(TX,Black); Text_SetSize(tx,30); Text_SetBold(tx,1); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]); TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(HD[0],HT[0],var5,NextBarSdate,NextBarStime,var5); TL7 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]); TL_SetColor(TL1,Magenta); TL_SetColor(TL3,Orange); TL_SetColor(TL4,Blue); TL_SetColor(TL5,Orange); TL_SetColor(TL7,Magenta); } Else { if trend == 1 Then { if trend1 == 0 Then { LV[0] = DayLow; } if HPrice > HV[0] Then { HD[0] = sDate; HT[0] = sTime; HV[0] = HPrice; Text_SetLocation(TX,HD[0],HT[0],HV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL_SetBegin(TL1,LD[0],LT[0],HV[0]); TL_SetBegin(TL3,LD[0],LT[0],Var3); TL_SetBegin(TL4,LD[0],LT[0],Var4); TL_SetBegin(TL5,LD[0],LT[0],Var5); TL_SetBegin(TL7,LD[0],LT[0],LV[0]); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,Var5); TL_SetEnd(TL7,Sdate,Stime,LV[0]); } } if trend == -1 Then { if trend1 == 0 Then { HV[0] = DayHigh; } if LPrice < LV[0] Then { LD[0] = sDate; LT[0] = sTime; LV[0] = LPrice; Text_SetLocation(TX,LD[0],LT[0],LV[0]); Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" "); var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100)); var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100)); var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100)); TL_SetBegin(TL1,HD[0],HT[0],HV[0]); TL_SetBegin(TL3,HD[0],HT[0],Var3); TL_SetBegin(TL4,HD[0],HT[0],Var4); TL_SetBegin(TL5,HD[0],HT[0],Var5); TL_SetBegin(TL7,HD[0],HT[0],LV[0]); TL_SetEnd(TL1,Sdate,Stime,HV[0]); TL_SetEnd(TL3,Sdate,Stime,Var3); TL_SetEnd(TL4,Sdate,Stime,Var4); TL_SetEnd(TL5,Sdate,Stime,Var5); TL_SetEnd(TL7,Sdate,Stime,LV[0]); } } } } 확장되어가는 피보나치선을 따라 같이 우측으로 이동하며, 피보나치선 우측 끝에 세로선. 감사합니다.
프로필 이미지
고성
2024-06-21
978
글번호 180843
지표
답변완료

종목 검색식으로 변환 부탁드립니다.

키움신호를 종목검색식으로 변환 부탁드립니다. 감사합니다.. //cumulative volume VV=highest(V(1), period1); sumV=sum(V(1), period1); if(V>=VV and C>O, C*2, 0); count=barssince((V>=VV or V>=sumV*ratio) and C>O); count2=barssince(count>0 and count <20 and v<=eavg(v(1), 5)*ratio2 and c<=lowest(c(1), 5)); if(count2>0 and count2 <10 and C>highest(C(1), 5), 1, 0) 지표변수 midPeriod 26 Period 20 D1 2 period1 250
프로필 이미지
오말리
2024-06-21
735
글번호 180842
종목검색
답변완료

분할매수,분할매도 수식 요청드립니다

안녕하세요 수식 질문드립니다. 국내주식입니다! 매수는 전일종가 대비 -5%, -7%, -9% 하락때마다 각각 1천만원 매수(현재가) 매도조건은 (시장가) 평단가에서 당일저가 대비 +5%(전체의30%) +7%(잔량의50%), +9%(전량). 이렇게 수식을 작성하고 싶은데 수식 알려쥬시면 감사하겠습니다! 아, 차트는 15분봉차트에서 틀려고 하는데 문제없겠죠??
프로필 이미지
해선에이스
2024-06-21
728
글번호 180841
사용자 함수
답변완료

if then else 문법에라 부탁 드립니다.

아래의 사용자함수를 검증하면 아래와 같은 오류메세지 나옵니다. 부탁 드립니다. ㅇ 오류메세지 : 줄수(18), 열수(2)에 "문법에라, 잘못된 토큰 else" ㅇ 작성수식 : 함수명은 "데이짱_강남자리"입니다. input : 기간(Numeric),상승률(Numeric); var : 카운트(0),ii(0),hh(0),데이짱_조건(False); 카운트=0; hh=highest(c,기간); 데이짱_조건=(hh >= c*(1+상승률) and c[기간]>=c*(1+상승률)); if 데이짱_조건 Then { for ii=0 to 기간-1 { if c[ii] > c Then { 카운트=카운트 + 1; } 데이짱_강남자리=카운트; } Else {데이짱_강남자리=기간};
프로필 이미지
장병록
2024-06-21
2056
글번호 180840
사용자 함수
답변완료

날짜 지나면 자동 청산식

아래 수식에서 진입한 날짜를 기준으로 5일 이상이 지나면 바로 시장가로 청산되도록 수식 좀 변경 부탁합니다 시간까지 정확히 따질 필요없이 만약 5월1일에 진입했으면, 5일안에 목표수익이나 스탑이 되면 좋은데, 청산이 안되고 있다면 5월1일+5일 = 5월6일이 되면 바로 청산되도록 요청드립니다. input : shortPeriod(12),longPeriod(26),Period(9),스탑로스(5),목표수익(2); Var : MACD_value(0,Data1),MACDsig(0,Data1),BuySetup(False,Data1); #MACD 설정 MACD_value = data1(MACD(shortPeriod, longPeriod)); MACDsig = data1(ema(MACD_value,Period)); #일봉 RSI 설정 Input : Period2(14),과매수(70); var : dayRSI(0,data2); dayRSI = data2(RSI(Period2)); #매수포지션 진입=============================== if TotalTrades > TotalTrades[1] Then BuySetup = false; if dayRSI < 과매수 Then BuySetup = false; if MarketPosition == 0 and CrossUp(dayRSI,과매수) Then BuySetup = true ; # 매수진입 ================================ If MarketPosition == 0 and BuySetup == true and crossup(MACD_value,MACDsig) Then { BuySetup = False; Buy("매수"); } # 목표수익 SetStopProfittarget(목표수익,PercentStop); # 스탑로스 SetStopLoss(스탑로스,PercentStop);
프로필 이미지
뽄때
2024-06-20
617
글번호 180839
시스템

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

프로필 이미지
2wnwn
2024-06-20
20
글번호 180838
지표

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

프로필 이미지
teak
2024-06-20
18
글번호 180837
지표
답변완료

문의

OBV를 MACD화로 부탁드립니다
프로필 이미지
레전드
2024-06-20
600
글번호 180836
지표
답변완료

문의드립니다.

국내선물 매매에서 4계약을 매매할 경우 분할 손익절 하고 싶습니다. 매수를 기준으로 5, 20 골든크로스시 매수한 후 10틱 오르거나 내리면 1개 청산 20틱 오르거나 내리면 1개 청산 틱수에 관계없이 5, 60 이평 데드크로스시 또는 종가가 파라볼릭 아래로 가면 1개 청산 그리고 오르고 내리면서 남은 계약수가 없으면 해당 신호는 끝나는 것이나 남은 계약수가 있다면 50틱이상 오르고나서 고점대비 30틱 빠지면 청산 또는 진입가에서 50틱 하락하면 청산되게 하고 싶습니다. 이렇게하고도 남은 계약수가 있다면 반대 신호가 나올 때 청산되면 됩니다. 매도의 경우도 마찬가지입니다. 미리 노고에 감사드립니다~
프로필 이미지
카르마다
2024-06-21
658
글번호 180835
시스템