커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의

안녕하세요~~ 늘 수고 많으십니다. 아래의 4가지 신호를 하나로 통합 가능할까요? 신호가 중복으로 설정이 안되어서 하나의 신호로 통합하고 싶습니다. 꼭 부탁드립니다.감사합니다. 신호① (월고월저기준가) input : 입력일(20220913); var : 기준가(0),월고(0),월저(0); if data2(sdate == 입력일) Then 기준가 = data2(lowD(0)); if data2(sdate >= 입력일) Then { if Data2(월고 == 0 or (월고 > 0 and H > 월고)) Then 월고 = data2(h); if data2(월저 == 0 or (월저 > 0 and L < 월저)) Then 월저 = data2(l); } if data1(CrossUp(c,기준가)) Then Buy(); if data1(CrossDown(c,기준가)) Then Sell(); if data1(CrossUp(c,월고)) Then Buy(); if data1(CrossDown(c,월고)) Then Sell(); if data1(CrossUp(c,월저)) Then Buy(); if data1(CrossDown(c,월저)) Then Sell(); 신호② (특정일저가) input : 입력일(20221020); var : 특정일저가(0); if data2(sdate == 입력일) Then 특정일저가 = data2(HighD(0)); if data1(CrossUp(c,특정일 저가)) Then Buy(); if data1(CrossDown(c,특정일저가)) Then Sell(); 신호③ (특정일고가) input : 입력일(20221015); var : 특정일고가(0); if data2(sdate == 입력일) Then 특정일고가 = data2(HighD(0)); if data1(CrossUp(c,특정일고가)) Then Buy(); if data1(CrossDown(c,특정일고가)) Then Sell(); 신호④ (특정가격) input:Price1(2.50),Price2(3.50),Price3(1.20),Price4(4.80); if CrossDown(c,Price1) or CrossDown(c,Price2) or CrossDown(c,Price3) or CrossDown(c,Price4) Then sell(); if CrossUp(c,Price1) or CrossUp(c,Price2) or CrossUp(c,Price3) or CrossUp(c,Price4) Then buy();
프로필 이미지
육각수
2022-10-25
1254
글번호 163260
시스템
답변완료

문의 드립니다.

해외선물 매매에서 그래프처럼 피보나치 전일 1 ,2 번 매수후 당일 3 ,4 번 청산의 수식어 부탁드립니다
프로필 이미지
푸른
2022-10-25
1342
글번호 163259
시스템
답변완료

수식 의뢰드립니다.

안녕하세요! 매매에 도움을 받고자 수식을 의뢰 드립니다! 1. 분차트, 틱챠트, 일봉챠트 상관 없이 봉이 완성되면 봉의 상단과 하단에 숫자로 고가와 저가가 없어지지 않고 계속 표시되는 수식을 만들고 싶습니다! 월물이 바뀌어도 없어지지 않고 계속 남아있게 만들어 주세요! (주식, 선물, 옵션 모두 적용) / 그리고 가격이 양쪽 봉끝에서 일정 간격 떨어져서 가격이 출력되게 부탁드립니다. 가격이 봉끝에 바로 붙어서 출력이 되면 눈이 안좋아서 읽기가 많이 불편합니다.) / 글자 크기와 간격 그리고 글자색은 외부변수로 부탁드립니다. 2. 고가는 고가끼리(빨강선) , 저가는 저가끼리(파랑선) 계속 지난 봉들을 선으로 연결하는 수식을 만들고 싶습니다. 월물이 바뀌어도 없어지지 않고 계속 남아있게 만들어 주세요! (주식, 선물, 옵션 모두 적용 / 선의 색상과 굵기는 외부변수로 부탁드립니다) 항상 노고에 진심으로 감사드립니다.
프로필 이미지
qha71
2022-10-25
1211
글번호 163258
지표

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
히익
2022-10-25
6
글번호 163257
시스템
답변완료

문의드립니다

아래 지표식에서 지표 라인의 색상이 바뀌면 화면바탕색도 바뀌게 하고싶습니다 검색해보니까 강조식으로 이런식으로 표현하는거 같은데요. (예를 든겁니다) input : P(20); var : T(0); var1 = ma(C,P); if var1 > var1[1] Then T = 1; if var1 < var1[1] Then T = -1; if T == 1 Then PlotPaintBar(99999999,0,"강조",RED); if T == -1 Then PlotPaintBar(99999999,0,"강조",BLUE); --------------------------------------------- 2가지 버전으로 부탁합니다 1. 아래지표식에서 Plot1 ht 의 색상이 바뀔때 바탕화면 색도 바뀌는 강조식 2. ht의 색상이 바뀔때 세로선이 그어지게 하는 지표식 감사합니다 if trend == 0 Then { if IsNaN(trend[1]) == False and trend[1] != 0 Then { up = iff(IsNaN(down[1]) == true,down,down[1]); arrowUp = up - atr2; } else { up = iff(IsNan(up[1]) == true, maxLowPrice , max(maxLowPrice, up[1])); } atrHigh = up + dev; atrLow = up - dev; } else { if isnan(trend[1]) == False and trend[1] != 1 Then { down = iff(IsNan(up[1]) == true, up , up[1]); arrowDown = down + atr2; } else { down = iff(IsNan(down[1]) == true, minHighPrice ,min(minHighPrice, down[1])); } atrHigh = down + dev; atrLow = down - dev; } ht = iff(trend == 0 , up , down); plot1(ht, "HalfTrend",iff(trend == 0 , Rgb(255,90,90), Green));
프로필 이미지
러블리
2022-10-25
1088
글번호 163256
강조
답변완료

감사합니다

전달잘못된거같아서 죄송합니다 다시 부탁드려요 꾸벅 1번 input : Period(10); var :AA(False),VV(False),box(0); AA = crossup(C, max((highest(high,9)[25]+lowest(low,9)[25]+highest(high,26)[25]+lowest(low,26)[25])/4 , (highest(high,52)[25]+lowest(low,52)[25])/2)); VV=V>highest(V, Period)[1]; if AA and VV Then { box = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L); Box_SetColor(box,Magenta); Box_SetFill(box,true); Box_SetExtFill(box,true); } 2번 input : midPeriod(26),period(20),d1(2); var : bb(0); bb = BollBandUp(Period,d1); if CrossUp(c,bb[midperiod-1]) Then Plot1(L,"검색"); 다른색으로 두식을 을 합처서 표현 하고자 합니다 위 캡처 처럼 부탁 드립니다 감사합니다
프로필 이미지
매치다는
2022-10-25
1128
글번호 163255
강조
답변완료

감사 합니다

1번 input : midPeriod(26),period(20),d1(2); var : bb(0); bb = BollBandUp(Period,d1); if CrossUp(c,bb[midperiod-1]) Then Plot1(L,"검색"); 2번 input : Period(10); var :AA(False),VV(False),box(0); AA = crossup(C, max((highest(high,9)[25]+lowest(low,9)[25]+highest(high,26)[25]+lowest(low,26)[25])/4 , (highest(high,52)[25]+lowest(low,52)[25])/2)); VV=V>highest(V, Period)[1]; if AA and VV Then { box = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L); Box_SetColor(box,Magenta); Box_SetFill(box,true); Box_SetExtFill(box,true); } 1번 2번 수식으로 시스템식 부탁드립니다 1번 시스템 2번시스템으로 부탁드립니다 꾸뻑
프로필 이미지
매치다는
2022-10-24
1127
글번호 163254
시스템
답변완료

감사 합니다

1번 input : midPeriod(26),period(20),d1(2); var : bb(0); bb = BollBandUp(Period,d1); if CrossUp(c,bb[midperiod-1]) Then Plot1(L,"검색"); 2번 input : Period(10); var :AA(False),VV(False),box(0); AA = crossup(C, max((highest(high,9)[25]+lowest(low,9)[25]+highest(high,26)[25]+lowest(low,26)[25])/4 , (highest(high,52)[25]+lowest(low,52)[25])/2)); VV=V>highest(V, Period)[1]; if AA and VV Then { box = Box_New(sDate,sTime,H,NextBarSdate,NextBarStime,L); Box_SetColor(box,Magenta); Box_SetFill(box,true); Box_SetExtFill(box,true); } 1번 2번 두가지 조건으로 종목검색식 부탁드립니다 1번 2번 각 각 부탁드립니다
프로필 이미지
매치다는
2022-10-24
1067
글번호 163253
종목검색
답변완료

문의 드립니다.

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 { Sell(); 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 { Buy(); 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); ------------------------- 위 추세선 수식어를 지표식으로 변경하고 (시스템식으로 바로 사용해도 상관없음 ) 그걸 응용하여 그래프내용처럼 식을 구하고자합니다. 장시직시 봉차트가 이동평균선 2300선 위일때 계단식 하락 6파동후 매수 2번째 신호시 체결후 상승 5파에 청산 계단식 상승 6파동후 매도 2번째 신호시 체결후 하락 5파에 청산하는식을 한 수식어에 포함하고자 합니다. 처음의 그래프는 위 수식어의 출력자료입니다. 매매시간의 수식어는 아래 분봉시스템 자료를 대입하면 좋겠고 손절은 40틱 입니다. input : 익절틱수(0),손절틱수(40); var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ST(0),ET(0),entry(0); if NextBarSdate != sDate Then { DD = DayOfWeek(NextBarSdate); Year = Floor(NextBarSdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ST = 70000; ET = 55000; } Else { ST = 80000; ET = 65000; } } if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Year > 0 Then { IF ET > ST Then SetStopEndofday(ET); Else { if NextBarSdate != sDate Then SetStopEndofday(ET); } if ((NextBarSdate != sDate and NextBarStime >= ST) or (NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then { if ET < ST Then SetStopEndofday(0); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
푸른
2022-10-25
900
글번호 163252
시스템