커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

가자치타 님에 의해서 삭제되었습니다.

프로필 이미지
가자치타
2024-10-21
6
글번호 184451
지표
답변완료

시스템 식에서의 청산 조건을 예스랭귀지로 구현 부탁드립니다.

트레일링 스탑을 활용하고자 하는데, SetStopTrailing 함수로 구현하기에는 한계가 있어보여 문의드립니다. 요청드리고자하는 청산 조건은 다음과 같습니다. 1) 매수 혹은 매도 포지션을 보유한 상태에서 2) 최소수익을 터치하는 조건 : 진입 후 내가 확보한 수익이 한번이라도 "1계약당 n틱 수익"에 도달한 적이 있다면, (청산시점에서 "계약당 n틱 수익 중"이 아니라, 진입 이후 해당 기준에 도달한적 있는지 여부 확인) 3) 지표 조건 : 2번 조건이 충족된 가운데, ma1 이 ma2 를 하향돌파할 시 매수청산 (매도청산은 ma1이 ma2를 상향돌파시 매도청산) 위 조건을 만족하는 시스템 청산식을 예스랭귀지로 구현 부탁드릴 수 있을까합니다. 감사합니다.
프로필 이미지
penfold
2024-10-21
719
글번호 184450
시스템
답변완료

수식 부탁드립니다.

안녕하ㅔ요? 아래의 지표수식을 상승의 추세선 유지후 하락의 추세선이 발생시에 경고의음이 나오고 발생된 순간시점의 봉에 굵은 점표시 생기고 추세선은 기존의 수식대로 그려지게 해주시면 감사하겠습니다. 항상 도움에 감사드립니다. input : Period(250),선두께(3); Var:상승색(Red), 하락색(Blue); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),tl9(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); var : box1(0),box2(0),box3(0),box4(0); Plot1(0); 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]; } LoVal[0] = L; LoBar[0] = 0; 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,하락색); date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; box1 = Box_New(sdate,stime,LoVal[0]-0.25,NextBarSdate,NextBarStime,LoVal[0]-0.50); Box_SetColor(box1,Green); Box_SetFill(box1,true); box2 = box1[1]; Box_SetEnd(box2,Sdate,Stime,LoVal[1]-0.50); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date22 = date[0]; time22 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); Box_SetBegin(box1,sDate,sTime,LoVal[0]-0.25); Box_SetEnd(box2,Sdate,Stime,LoVal[1]-0.50); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; 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,상승색); date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; box3 = Box_New(sdate,stime,HiVal[0]+0.25,NextBarSdate,NextBarStime,HiVal[0]+0.50); Box_SetColor(box3,Yellow); Box_SetFill(box3,true); box4 = box3[1]; Box_SetEnd(box3,Sdate,Stime,HiVal[1]+0.50); } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; TL_SetEnd(TL1, date12,time12,Value12); date32 = date[0]; time32 = stime[0]; TL_Delete(tl); TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen); Box_SetBegin(box3,sDate,sTime,HiVal[0]+0.25); Box_SetEnd(box4,Sdate,Stime,HiVal[1]+0.50); } } Box_SetEnd(box1,NextBarSdate,NextBarStime,LoVal[0]-0.5); Box_SetEnd(box3,NextBarSdate,NextBarStime,HiVal[0]+0.5); TL_SetSize(TL1,선두께);
프로필 이미지
천년대로
2024-10-21
765
글번호 184449
시스템
답변완료

후행스팬을 앞으로

후행스팬을 선행스팬1,2처럼해서 51일 앞으로 해서 종가가 앞으로 간 후행스팬을 돌파하려면 종목검색식을 어떻게 하나요?
프로필 이미지
占쏙옙占쏙옙占쏙옙
2024-10-21
691
글번호 184445
종목검색

무한상인 님에 의해서 삭제되었습니다.

프로필 이미지
무한상인
2024-10-21
1
글번호 184436
시스템
답변완료

수식추가

Inputs : Period(20), Sence(1.5), CC_DN(Yellow); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); If STime == 180000 Then DBN = 0; DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H-L; JustChanged = FALSE; if CurrentBar <= Var2 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H-L) /2; end; if CurrentBar == Var1 then begin if Highs[Var2] >= Highs[Var3] then begin UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); #Plot1(VLineUp,"VLineUp"); end; if Highs[Var2] < Highs[Var3] then begin DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6,Var2)); #Plot2(VLineDn,"VLineDn"); end; end; if CurrentBar > Var1 then begin if DnWave[1] and Close > VLineDn then begin DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; end; if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; end; if JustChanged == FALSE then begin if Close > HHighest then HHighest = Close; else if Close < LLowest then LLowest = Close; end; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); VLineDn = LLowest + (Var5 * MA(Var6,Var2)); /*if UpWave[1] then Plot1(VLineUp,"VLineUp", Red); else if DnWave[1] then Plot1(VLineDn,"VLineUp", Blue); */ end; input : P(10),short(12),long(26),sig(9); var : mav(0),macdo(0); mav = ma(C,P); MACDo = MACD_OSC(short,long,sig); if upwave[1] and c > o and mav > mav[1] Then Buy(); if dnwave[1] and c < o and mav < mav[1] Then Sell(); if MarketPosition == 1 Then { if dnwave[1] and macdo < 0 Then ExitLong("bx"); } if MarketPosition == -1 Then { if upwave[1] and macdo > 0 Then ExitShort("sx"); } 안녕하세요 위식에 추가식 부탁드림니다 Date 2 30분봉 매수 기존식에 30분봉 양봉일때 매수 매도 기존식에 30분봉 음봉일때 매도
프로필 이미지
아트정
2024-10-21
697
글번호 184435
시스템
답변완료

질문드리겠습니다

수고가 많으십니다. 궁금증이 해소가 잘 안돼서 몇 가지 여쭤보고 싶습니다 먼저 수식은 아래와 같습니다 var : N(0),cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TXn(0),txper(0),TXpaa(0),nline(0),tl2(0); var : txx(0),TXper1(0); var : hd(0),ht(0),hd1(0),ht1(0),hv(0),hv1(0), LD(0), LT(0), LV (0), LD1(0), LT1(0),LV1(0); var:TLH(0),TLH1(0),TLH2(0),TLH3(0),TLH4(0),TLH5(0), TLL(0),TLL1(0),TLL2(0),TLL3(0),TLL4(0),TLL5(0); VAR: INTERTL(0); N=5; if CountIf(H >= L*1.15,N) >= 1 Then { hh = 0; hb = 0; ll = 0; lb = 0; For cnt = 0 to n-1 { if hh == 0 or (hh > 0 and h[cnt] > hh) Then { hh = h[cnt]; hb = cnt; } if ll == 0 or (ll > 0 and l[cnt] < ll) Then { ll = l[cnt]; lb = cnt; } } # PLOT66(IndeX,"IndeX",ReD); # PLOT67(HH); if (hB < lB AND ll *1.18 <HH and (hh != Var3 and ll != Var4) ) OR (hB > lB AND LL>HH*0.70 and (hh != Var3 and ll != Var4) ) Then { VAR3 = hh; VAR4 = ll; VAR1 = Index[lb]; VAR2 = VAR1[1]; PLOT38(VAR1); VAR11=IndeX-VAR1 ; if VAR2 > 0 Then { VAR5 = 0; For cnt = Index-var1 to Index-var2 { if Var5 == 0 or (Var5 > 0 and h[cnt] > Var5) Then Var5 = h[cnt]; } # PLOT35(VAR5,"INTER TL HH",OrangE,DeF,2); #PLOT37(MA(Var5,5),"37",ReD,DeF,2); } if var1 >= Var2 Then { TL = TL_New(sDate[lb],sTime[lb],ll,sDate[hb],sTime[hb],hh); TL_SetDrawMode(tl,1); TL_SetColoR(TL,Cyan); # TL_SetExtRight(tl,true); # TL_new(sDate[LB],sTime[LB],0,sDate[lb],sTime[lb],90000000); TXper= text_new(sDate[lb],sTime[lb],ll,"★"); Text_SetStyle(txper,2,0); Text_SetSizE(TXPER,18); Text_SetColor(txper,MagentA); TXpaa= text_new(sDate[HB],sTime[HB],HH,"★"); Text_SetStyle(TXPAA,2,0); Text_SetSizE(TXPAA,13); Text_SetColor(tXPAA,Green); # Text_SetLocatioN(TXPAA } } } if lb > hb Then { TL_SetColor(TL,ReD); TL_SetSize(tl,0); TL_SetDrawMode(tl,1); } Else { TL_SetColor(TL,LightBlue); TL_SetSize(tl,1); } If VAR5 > 0 Then { PLOT36(VAR5,"INTER TL HH",BluE,DeF,1); } 먼저 최상위 조건을 if CountIf(H >= L*1.15,N) >= 1 로 했을때 조건 만족 구간과 고가저가값 구하는 방식 그리고 봉번호와의 관계에 대해 여쭤보고 싶고요 수식 막바지 부분 if lb > hb 조건에서 우상향 (lb 이 먼저나오고 hb 가 뒤에 나올경우), 우하향 하는 경우를 색으로 구분을 했는데 우하향 (lightblue)이 우상향에서 나타나는 경우가 있습니다 그리고 if VAR2 > 0 Then { VAR5 = 0; For cnt = Index-var1 to Index-var2 { if Var5 == 0 or (Var5 > 0 and h[cnt] > Var5) Then Var5 = h[cnt]; } } 이 부분에서 LB (저점) 사이에서의 고가를 구하는건데 index 관련해서 헷갈리는 점들이 있고 var5 가 나타나는 시점이 일정치 않아서 질문드리고 싶습니다 유선상으로 여쭤보면 좋을거 같아서 연락주시면 감사하겠습니다
프로필 이미지
yamu
2024-10-21
889
글번호 184434
지표
답변완료

종목검색식 요청드립니다.

아래 N봉 이내에 15%이상 상승하면서 아래 키움수식을 crossup한 종목중에 현재 아래키움수식라인 +-2%이내에 종가가 위치하고 있는 종목을 검색하는 검색식을 만들고 싶습니다. 도움 부탁드립니다. 항상 감사합니다. (N봉, 15%, -+2% 는 변경가능하도록 부탁드립니다.) * 키움수식라인 MO=floor(date/100); MO1=MO%100; VALUEWHEN(1, MO1!=MO1(1),O)
프로필 이미지
onlypsn
2024-10-21
794
글번호 184433
종목검색

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

프로필 이미지
중방
2024-10-21
34
글번호 184432
지표