커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 부탁드립니다.

안녕하세요? 간단한 수식한가지 부탁드립니다. *이동평균선 2가지(외부변수) *진입 정배열에서 양봉 + 갭하락 음봉(외부변수1)에 매도 역배열에서 음봉 + 갭상승 양봉(외부변수2)에 매수 *청산 익절(외부변수), 손절(외부변수) *재진입 포지션 청산전까지는 신호가나와도 재진입 금지. 감사합니다.
프로필 이미지
대구어린울프
2020-09-21
666
글번호 142549
시스템
답변완료

문의2

1) 금일 발생봉부터 계산하는 수식으로 수정바랍니다. input:이평1(81),이평2(103); var : v2(0,data2),v3(0,data3); v2 = data2(ma(C,이평1)); v3 = data3(ma(C,이평2)); if crossup(v2,v3) Then buy("b"); 2) 아래 수식 sell 쪽 condition 수식에 오류가 있는데 수정 후 해석부탁합니다. if bdate != bdate[1] Then{ Condition1 = false; var1 = H; var2 = L; } if stime >= 130000 and Condition1 == false and C > O Then{ Condition1 = true; if H < var2 Then buy(); } if stime >= 130000 and Condition2 == false and C < O Then{ Condition2 = true; if L > var1 Then sell(); }
프로필 이미지
좌오비우오비
2020-09-23
706
글번호 142548
시스템
답변완료

장종료 직전 매수실패

5분봉으로 매수진행하는데 3시30분 장막판에 매수신호가 오고 실제 매수는 이루어지지 않는 문제가 발생합니다. 이 문제좀 해결해 주세요..ㅠ 매수신호가 뜨지 않게 3시20분까지만 매수하는걸로 해주시거나, 매수가 이루어질수있게 부탁드릴께요. 물론 다음날은 이어서 정상작동 되도록이요. Input : 투자금액(10000000),Period(20), MultiD(2), N(1),시작일(20200921),시작시간(090000),청산시간(153000); Input : loss(5),P(3),WRP(10); var : e(0),x(0),count(0),Tcond(false),BBup(0),BBdn(0),WR(0),Vma(0); var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false); var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false); Array : VV[6](0),XX[5](0); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); WR = WILLR(WRP); Vma = ma(V,P); vv[0] = floor((투자금액*0.1)/NextBarOpen); vv[1] = floor((투자금액*0.1)/NextBarOpen); vv[2] = floor((투자금액*0.1)/NextBarOpen); vv[3] = floor((투자금액*0.2)/NextBarOpen); vv[4] = floor((투자금액*0.2)/NextBarOpen); vv[5] = floor((투자금액*0.3)/NextBarOpen); if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then Tcond = true; if bdate != bdate[1] Then count = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then count = count+1; if sdate >= 시작일 and stime >= 시작시간 Then Tcond = true; if Tcond == true then{ if (TotalTrades == 0 or MarketPosition == 0 and BarsSinceExit(1) > 2) then{ if MarketPosition == 0 and count < N and CrossDown(c,bbdn) and V >= Vma[1]*2.0 Then { buy("b1",atmarket,def,vv[MaxEntries]); } if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then{ e = e +1; if e == 1 then XX[e] = CurrentContracts; Else XX[e] = CurrentContracts-CurrentContracts[1]; } #두번째 매수 if MarketPosition == 1 and e == 1 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b2",atmarket,def,vv[MaxEntries]); } #세번재매수 if MarketPosition == 1 and e == 2 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b3",atmarket,def,vv[MaxEntries]); } #네번재매수 if MarketPosition == 1 and e == 3 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b4",atmarket,def,vv[MaxEntries]); } #다섯번재매수 if MarketPosition == 1 and e == 4 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*2.0 Then { buy("b5",atmarket,def,vv[MaxEntries]); } #여섯번재매수 if MarketPosition == 1 and e == 5 and CrossDown(c,bbdn) and NextBarSdate == sdate and V >= Vma[1]*3.0 Then { buy("b6",atmarket,def,vv[MaxEntries]); } HH = highest(H,BarsSinceEntry); if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx1" Then Bxcond1 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx2" Then Bxcond2 = true; if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx3" Then Bxcond3 = true; if Bxcond1 == false and HH >= EntryPrice*1.10 and HH < EntryPrice*1.15 Then ExitLong("Bx1",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(1/5)),1); if Bxcond2 == false and HH >= EntryPrice*1.15 and HH < EntryPrice*1.20 Then ExitLong("Bx2",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(2/5)),1); if Bxcond3 == false and HH >= EntryPrice*1.20 and HH < EntryPrice*1.30 Then ExitLong("Bx3",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(2/5)),1); }}}
프로필 이미지
바나
2020-09-21
614
글번호 142547
시스템
답변완료

부탁드려요

A: [1분]거래량: 80000이상 9999999이하 B :주가범위: 0봉전 종가가 1000 이상 100000 이하 A and B
프로필 이미지
왕팡
2020-09-23
545
글번호 142546
종목검색

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

프로필 이미지
타케
2020-09-20
9
글번호 142545
시스템
답변완료

질문드립니다.

1. 수식에 Data1,Data2를 지정할때를 정확히 알고 싶습니다. 2. Data1과 Data2의 시스템수식작성시 참고해야될 점 즉 제약이야 주의사항들을 설명좀 부탁합니다.
프로필 이미지
다낚아
2020-09-23
765
글번호 142544
시스템
답변완료

부탁드립니다

#1,아래식은 국내옵션만기(1개월주기) 로직입니다,이를 국내선물만기(3개월주기) 로직 으로 수정부탁드립니다.#첨부파일참조(3개월주기,선물옵션동시만기) var : month(0),nday(0),week(0); var :EX(false),HH(0),LL(0); var : t1(0),t2(0),t3(0),t4(0),t5(0),t6(0),t7(0),t8(0),t9(0),t10(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; week = DayOfWeek(date); #선물만기 #if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then if nday >= 8 and nday <= 14 and week == 4 then#옵션만기 EX = true; Else EX = false; if EX == false and EX[1] == true Then{ Condition1 = true; HH = H; LL = L; } if Condition1 == true then{ if H > HH Then HH = H; if L < LL Then LL = L; var1 = HH; var2 = LL; var3 = var1-var2; ##2,아래식은 나름작성한 타주기 분봉식 인데 주기가 적용해보니 좀 미흡한것 같습니다 점검부탁드립니다 input : Length1(5),Length2(20),굵기(3); var : 매수1(0,data2),매도1(0,data2),매수2(0,data2),매도2(0,data2); var : 매수11(0,data2),매수12(0,data2),매도11(0,data2),매도12(0,data2),T(0,data2),tx(0,data2),TLen1(0,data2),TLen2(0,data2); TLen1 = data2(Ceiling((Length1 + 1) * .5)); TLen2 = data2(Ceiling((Length2 + 1) * .5)); var1 = data2(ema(ma(h,TLen1), TLen1)); var2 = data2(ema(ma(l,TLen2), TLen2)); if crossup(var1,var2) Then { T = 1; 매도1 = var2; 매도11 = 매도1[1]; 매도12 = 매도11[1]; } if 매도1 > 0 and var2 > 매도1 Then 매도1 = var2; if CrossDown(var1,var2) Then { T = -1; 매수1 = var2; 매수11 = 매수1[1]; 매수12= 매수11[1]; } if 매수1 > 0 and var2 < 매수1 Then 매수1 = var2; 매도2=매도1-0.02; 매수2=매수1+0.02; plot1(매도1,"매도1",BLUE,def,굵기); plot2(매수1,"매수1",MAGENTA,def,굵기); plot3(var2,"이평",iff(var2>var2[1],MAGENTA,BLUE),def,굵기); if T == 1 and 매도12 > 매도11 and 매수11 > 매수1 then { plot4((매도11+매수1)/2); plot5((매도11)); plot6((매도12)); if T[1] != 1 then { tx = Text_New(sdate,stime,(매도11),NumToStr((매도11),2)); Text_SetStyle(tx,1,1); Text_SetColor(tx,BLUE); } Else Text_SetLocation(tx,sdate,stime,(매도11)); } if T == -1 and 매수12 < 매수11 and 매도11 < 매도1 then { plot7((매수11+매도1)/2); plot8((매수11)); plot9((매수12)); if T[1] != -1 then { tx = Text_New(sdate,stime,(매수11),NumToStr((매수11),2)); Text_SetStyle(tx,1,1); Text_SetColor(tx,MAGENTA); } Else Text_SetLocation(tx,sdate,stime,(매수11)); } ###3,15분봉차트에서 캔들꼬리가 몸통보다 2/3이상 클때 아래조건식 부탁입니다. -,아랫꼬리가 양봉일경우는 시가에서부터 이후4개봉까지 우측라인긋기 음봉일경우는 종가에서부터 이후4개봉까지 우측라인긋기 -,윗꼬리가 양봉일경우는 종가에서부터 이후4개봉까지 우측라인긋기 음봉일경우는 시가에서부터 이후4개봉까지 우측라인긋기 $,언제나 늘 고맙습니다.
프로필 이미지
회원
2020-09-23
828
글번호 142543
지표
답변완료

시스템식 부탁드려요.

시스템트레이딩을 하다 보면 자동매매가 안되고, 의도하지 않게 계좌에 남아있는 매수/매도 물량이 생기는 경우가 있는데요... 하루 장이 끝날 시점(오후 3시 30분)에 남아 있는 잔고를 일괄로 처리하는 시스템식이 있었으면 합니다. 부탁드립니다.
프로필 이미지
light3
2020-09-20
856
글번호 142542
시스템
답변완료

전략식 변환 부탁드립니다.

안녕하세요 아래 두가지 전략식을 예트 언어로 변환 부탁드립니다. 전략1) Vars : SP(0), TickSize(0); SP = SignalPosition; TickSize = OneTick * PriceScale; Params : vN(5); Vars : vHH(0), vLL(0); vLL = Lowest(L, vN); vHH = Highest(H, vN); Params : vperiod1(11), vperiod2(32); Vars : vMa1(0), vMa2(0); vMa1 = XAverage(C, vperiod1); vMa2 = XAverage(C, vperiod2); If SP = 0 Then Begin If vMa1 > vMa2 And L[1] >= vLL[2] And L < vLL[1] And H > vHH[1] Then Buy("B"); If vMa1 < vMa2 And H[1] <= vHH[2] And H > vHH[1] And L < vLL[1] Then Sell("S"); End; Params : vExitP(342), vExitL(149); SetStopLoss(vExitL * TickSize * CurrentContracts); SetProfitTarget(vExitP * TickSize * CurrentContracts); 전략2) Params: SSTIME(074001), EETIME(030000); Vars : TCOND(False); If SSTIME < EETIME Then Begin If SSTIME <= TIME And TIME <= EETIME Then TCOND = True Else TCOND = False; End Else Begin If SSTIME <= TIME Or TIME <= EETIME Then TCOND = True Else TCOND = False; End; If TCOND Then Begin Params : pLeng( 18 ), pAtrAdj( 0.8 ) ; v1 = ATR( pLeng ) * pAtrAdj; if SignalPosition != 1 then ExitLong ( "EntryAtrStop LX", AtStop, C - v1 ) ; Params : pLeng1( 1 ), pAtrVal( 0.3 ) ; v1 = ATR( pLeng1 ) * pAtrVal; if SignalPosition != - 1 then ExitShort ( "EntryAtrStop LX11", AtStop, C + v1 ) ; End;
프로필 이미지
판사
2020-09-20
841
글번호 142541
시스템