커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

아래의 수식을 1일 N회 거래제한 규정을 삽입 할수 있도록 수정 부탁드립니다. Input : Period(5); Var : 매수이평(0), 매도이평(0); 매수이평 = ma(bids, period); 매도이평 = ma(asks, period); if crossup(매수이평, 매도이평) then buy(); if crossdown(매수이평, 매도이평) then sell();
프로필 이미지
승부사1
2015-11-17
159
글번호 92466
시스템
답변완료

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

아래 수식의 오류 수정 부탁드립니다. input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(10), stoPeriod1(10), stoPeriod2(6), CCIPeriod(10); var: value(0); value = BW_SEVEN(shortPeriod, longPeriod, Period, maPeriod, ROCPeriod, stoPeriod1, stoPeriod2, CCIPeriod); //문장1 # 매수/매도청산 If CrossUp(value,5) Then { Buy(“매수”); } # 매도/매수청산 If CrossDown(value,-5) Then { Sell(“매도”); }
프로필 이미지
승부사1
2015-11-17
157
글번호 92465
시스템
답변완료

함수 검토 요청(11-1_거꾸로)

아래의 식은 완벽하게 손실만 기록하는 시스템입니다. 거꾸로 매매하면 대박 수익을 낼거 같습니다. 즉, 매수신호에 매도를 하고, 매도신호에 매수를 (매수청산에 매도청산을, 매도청산에 매수청산을) 하는 식으로 전환해주세요~ var : entry1(0); var : ho1(0),OL1(0),HL1(0); var : maho1(0),maOL1(0),maHL1(0); var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0); var : EntryCnt1(0); var : V1(0),V2(0),V3(0),V4(0),V5(0); var : V6(0),V7(0),V8(0),V9(0),V10(0); if bdate != bdate[1] Then entry1 = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry1 = entry1+1; ho1 = Dayhigh-Dayopen; OL1 = DayOpen-DayLow; HL1 = DayHigh-DayLow; sumho1 = 0; sumOL1 = 0; sumHL1 = 0; for cnt1 = 1 to 10{ sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1)); sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1)); sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1)); } maho1 = sumho1/10; maOL1 = sumOL1/10; maHL1 = sumHL1/10; V1 = V2 = V3 = V4 = V5 = V6 = V7 = V8 = V9 = V10 = if MarketPosition == 0 and entry1 == 0 Then{ if V7 > V8 Then buy("b1",AtLimit,V7-0.02); if V7 < V8 Then buy("b2",AtStop,V8-0.02); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("bp1",AtStop,V9-0.03); ExitShort("bl1",AtLimit,V6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("bp2",AtStop,V9-0.03); ExitShort("bl2",AtLimit,V6); } var : TF(0); var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 050000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/2; var2 = (HV1+LV1)/2; var3 = (HV2+LV2)/2; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then sell("s",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitShort("sx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitShort(); }
프로필 이미지
통큰베팅
2015-11-17
154
글번호 92464
시스템
답변완료

검색식 부탁드립니다

검색식입니다. 일봉주기에서 n봉기간내 일봉20bbup이 주봉80bbup을 crossup한 종목건색식 부탁드립니다. 감사합니다.
프로필 이미지
부양가족
2015-11-16
167
글번호 92463
검색
답변완료

문의 드립니다

15분봉의 고저를 이용한식입니다. 1분봉이나 5분봉에가능하도록 부탁드립니다. 1. 단 선물경우 15시시작 부터15시15분의 장종료시까지를 하나의 봉으로 인정합니다, 위와같이 봉을 수정한상태에서, 2 15분봉에서 고점이 이전 두개봉의 고점보다 높으면 매수. 3 저점이 이전두개봉의 저점보다 낯으면 매도. 위의 식을부탁드립니다.
프로필 이미지
해월정
2015-11-16
168
글번호 92462
시스템
답변완료

시스템 부탁드립니다.

매수 - 일봉으로 10% 이상 상승시 익일 시가에 매수 매도 - 1. 매수한 봉의 종가값을 저장해 놓고 있다가 종가값 대비 현재봉이 30%이상 상승 시 익일 시가에 매도 2. 매수한 봉의 시가값을 저장해놓고 있다가 매수 후 일봉종가가 매수봉의 시가 값보다 작아졌을 경우 익일 시가에 매도 부탁좀 드리겠습니다.
프로필 이미지
월척
2015-11-16
150
글번호 92460
시스템
답변완료

수식 부탁드립니다

Input: Capital(100000000); Var: AtrV(0), Unit(0), MP(0); AtrV = ATR(20); Unit = (Capital*0.02)/AtrV ; //주식거래인 경우는 Unit = (Capital*0.02)/AtrV; if Unit < 1 then Unit = 1; MP = MarketPosition; # 진입 If MP == 0 then buy("B", atstop, Highest(High,20), Unit); # 피리미딩 진입 If MP == 1 and CurrentEntries < 4 Then buy("bp", atstop, EntryPrice+AtrV[BarsSinceEntry]*1*CurrentEntries, Unit); # 청산 If MP == 1 Then { ExitLong("EL", atstop,Lowest(L,10)); ExitLong("EL_stop",AtStop,AvgEntryPrice-2*AtrV); } 위의 식에서 피라미딩 한도를 전체자산의 50%까지만 투자가 되겠끔 수식을 추가해주세요 일명 정율투자로 전체자산의 50%만 투자하는 방식으로 하고 싶습니다. 수익이나면 수익나는대로 전체자산의 50%, 손실이 나면 손실나는대로 전체자산의 50%만 시장에 노출시키고 싶습니다 그리고 추가로 20일고가 돌파매수, 10일 저가돌파 매도 식에서 전체자산의 50% 정율투자가 되겠끔 수식을 부탁드립니다. 요청한 식이 두가지 입니다. 수고 하십시오!!!
프로필 이미지
후포
2015-11-16
160
글번호 92459
시스템
답변완료

부탁드려요

분봉에서 오늘 10시까지의 거래량이 최근 20일동안 10시까지의 거래량 평균보다 크면 매수하는 정규장 적용 아래식을 야선을 포함한 복합 선물이나 해외선물에도 적용할 수 있도록 수정 부탁합니다. input : N(20); var : cnt(0),sum(0),mav(0); Array : VV[100](0); if date != date[1] Then { for cnt = 1 to 99 { VV[cnt] = VV[cnt-1][1]; } } if stime < 100000 Then VV[0] = DayVolume; if VV[N] > 0 Then{ sum = 0; for cnt= 1 to N { sum = sum + VV[cnt]; } mav = sum/N; if VV[0] > mav Then buy(); }
프로필 이미지
예시
2015-11-16
158
글번호 92458
시스템
답변완료

문의드립니다

input : Left(9),Right(9),Left1(9),Right2(9); var : SHcount(0),cnt(0),SHcount1(0),cnt2(0); var : TL11(0),TL12(0),aa(0); Array : SHD[50](0),SHT[50](0),SHV[50](0),SHD1[50](0),SHT2[50](0),SHV3[50](0); if Swinglow(1,l,Left,Right,Left+Right+1) != -1 Then{ SHcount = SHcount +1; SHD[0] = sdate[Right]; SHT[0] = stime[Right]; SHV[0] = l[Right]; for cnt = 1 to 20{ SHD[cnt] = SHD[cnt-1][1]; SHT[cnt] = SHT[cnt-1][1]; SHV[cnt] = SHV[cnt-1][1]; } if Shcount >= 2 Then { TL11 = TL_New(SHD[1], SHT[1], SHV[1], SHD[0],SHT[0],SHV[1]); TL_SetColor(TL11,BLACK); TL_SetSize(TL11,1); } } if SwingHigh(1,h,Left1,Right2,Left1+Right2+1) != -1 Then{ SHcount1 = SHcount1 +1; SHD1[0] = sdate[Right2]; SHT2[0] = stime[Right2]; SHV3[0] = h[Right2]; for cnt2 = 1 to 20{ SHD1[cnt2] = SHD1[cnt2-1][1]; SHT2[cnt2] = SHT2[cnt2-1][1]; SHV3[cnt2] = SHV3[cnt2-1][1]; } if Shcount1 >= 2 Then { TL12 = TL_New(SHD1[1], SHT2[1], SHV3[1], SHD1[0],SHT2[0],SHV3[1]); TL_SetColor(TL12,MAGENTA); TL_SetSize(TL12,1); } } if SHV[0]>SHV[1]Then { var1 = (SHV[0]-SHV[1]); var2 = (SHV3[0]-var1); } if SHV[0]<SHV[1]Then { var1 = (SHV[0]-SHV[1]); var2 = (SHV3[0]+var1); } if SHV3[0]>SHV3[1]Then { var3 = (SHV3[0]-SHV3[1]); var4 = (SHV[0]+var3); } if SHV3[0]<SHV3[1]Then { var3 = (SHV3[0]-SHV3[1]); var4 = (SHV[0]-var3); } //var3 = (SHV3[0]-SHV3[1]+SHV[0]); //var4 = (SHV3[0]-SHV3[1]+SHV[0]); plot2(var2,"하부"); plot3(var4,"상부"); 위수식은 만들어주신 것을 가공합것입니다 조금더 가공하고십지만 어떻게 해야할지몰라 문의드립니다 첨부파일에 예로 1번고가선-2번고가선= 값을 3번저가선에 +한 값이 a입니다 가공하고십은것은 1번고가선과 2고가번선 사이에서만 만들어진 저점일 때에만 선이 이어지는것을 만들고십니다 b처럼 1번선과 2번선 사이가 아닌곳에서 만들어진 b저점은 무시해야합니다 만약 1번고점과2번고점사이에 저점이2개이면 저점순서대로 입니다 그리고 1번과 2번선 사이에 저점이 만들어지지안아도 무시하고 전지표그대로 이어져야합니다 plot2(var2,"하부"); plot3(var4,"상부"); 둘다 부탁드립니다 감사합니다.
프로필 이미지
파파리리
2015-11-16
237
글번호 92443
지표