커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

자동매매

안녕하십니까? 시스템 자동매매에 있어서 자동매매 실행 후 HTS를 닫아도 자동매매는 계속유효 한가요? 아니면 HTS가 열려 있는 동안만 유호한지 궁금합니다. 감사합니다.
프로필 이미지
대한이
2021-04-11
806
글번호 147882
시스템

젤플린 님에 의해서 삭제되었습니다.

프로필 이미지
젤플린
2021-04-11
41
글번호 147880
지표
답변완료

문의

키움서식을 예스서식으로 변환 부탁드립니다. 1. 분봉에서 기간 : 2, multiple : 0.8 , m : 50 g= (((c+o+l+h)/4)*v/10000000); a = HighestSince(1, date != date(기간), v) ; b = valuewhen(1, c(0) > o(0) * multiple and a == v and g > m, c); plot c ; 추가로 위조건을 만족하는 전봉의 c 값을 알수있도록 변수로 저장하는 수식도 포함하여 주시기 바랍니다 2. 일봉에서 기간 : 5, multiple : 0.8 , m : 100000 x = (highest(v,기간)==v) ; a = valuewhen(1, c(0) > o(0) * multiple and 거래대금 > m and x, c(0)) ; plot c ;
프로필 이미지
파일럿
2021-04-11
961
글번호 147878
지표
답변완료

미국채10년물 데이타 연산오류 ...

미국채가격이 < 131'25.0 > 이런 식으로 나오는데.. < 달러'센트.0 > 이 맞는거죠?? 그런데 이걸 데이타값으로 연산해서 지표로 표현하는데 문제가 있네요..?? 이걸 연산하면 < 달러.0 > 이런식으로 센트값이 적용이 않되는것 같습니다.ㅠㅠ 한번 살펴봐 주시길 부탁드립니다...
프로필 이미지
데로예스
2021-04-10
1019
글번호 147877
지표
답변완료

수식문의드립니다.

안녕하세요, 수식 작성 두 가지 문의 드립니다. 아래 수식으로 적용해 봤는데 매수 신호가 원하지 않는 위치에 뜹니다. 1. 직전 진입명이 A이고 매수 포지션 일때 현재가가 진입 가격 대비 종가기준 2%이상 하락 이후 저점 대비 2%이상 상승 시 스프레딩 매수 (B) if MarketPosition == 1 and latestentryname(0) == "A" Then{ var1 = Lowest(c,BarsSinceEntry); if var1 <= EntryPrice*(1-2/100) and c > var1+(EntryPrice-var1)*(2/100) then buy("B"); 2. 직전 진입명이 B이고 A가 아니며, 현재 매수 포지션 일때 현재가가 진입 가격 대비 종가기준 2%이상 상승 시 스프레딩 매수 (C) if MarketPosition == 1 and latestentryname(0) == "B" and latestentryname(0) != "A" Then{ var1 = Lowest(c,BarsSinceEntry); if var1 >= EntryPrice*(1+2/100) then buy("C"); 3. 그리고 latestentryname과 isentryname의 차이점이 무엇인지 궁금합니다. 늘 친절하게 답해주셔서 감사합니다.
프로필 이미지
김예스
2021-04-10
1071
글번호 147876
시스템
답변완료

수식 과 퓨처스챔피언 수식입니다.

퓨처스챔피언에서 하이킨 아시 수식과 적용법과 고점과 저점을 잇는 지그재그 수식도 알려주시면 감사하겠습니다. 만약에 예스트레이더에서 해야한다면 어떻게 적용하고 퓨처스챔피언에서는 어떻게 적용하나요?
프로필 이미지
kingritu
2021-04-10
1128
글번호 147875
지표
답변완료

수식수정요청2

RSI매수매도 식입니다. 매수는 그대로 하되, 매도식을 RSI 55이상이고, 이평선이 정배열일때 (5일>25일>100일), 매도 파라볼릭sar이 생기자 마자 전체 매도 하는식으로 바꾸고 싶습니다. 매도후 다시 처음부터 매수 시작하구요. Input : 투자금액(10000000),Period(14), N(1), LPercent(30), S7Percent(70), S8Percent(80), S9Percent(90),시작일(20210410),시작시간(073000); var : value(0), e(0),x(0),count(0),Vma(0), Tcond(false); var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false); var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false); Array : VV[5](0),XX[5](0); value = RSI(Period); vv[0] = floor((투자금액*0.12)/NextBarOpen); vv[1] = floor((투자금액*0.15)/NextBarOpen); vv[2] = floor((투자금액*0.20)/NextBarOpen); vv[3] = floor((투자금액*0.23)/NextBarOpen); vv[4] = floor((투자금액*0.30)/NextBarOpen); if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then Tcond = true; 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) then { if MarketPosition <= 0 and CrossDown(value, LPercent) Then { buy("b1",onclose,def,vv[MaxEntries]); } } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { e = e +1; if e == 0 then XX[e] = CurrentContracts; Else XX[e] = CurrentContracts-CurrentContracts[1]; } #두번째 매수 If MarketPosition == 1 and e == 1 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b2",atlimit,LatestEntryPrice(0)*0.98,vv[MaxEntries]); } #세번재매수 If MarketPosition == 1 and e == 2 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b3",atlimit,LatestEntryPrice(0)*0.98,vv[MaxEntries]); } #네번재매수 If MarketPosition == 1 and e == 3 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b4",atlimit,LatestEntryPrice(0)*0.99,vv[MaxEntries]); } #다섯번재매수 If MarketPosition == 1 and e == 4 and CrossDown(value, LPercent) and NextBarSdate == sdate Then { buy("b5",atlimit,LatestEntryPrice(0)*0.99,vv[MaxEntries]); } if condition1 == false and crossup(value,S7Percent) then { condition1 = true; exitlong("bx1",onclose,def,"",floor(maxcontracts*0.7),1); } if condition2 == true and crossup(value,S8Percent) then { condition2 = true; exitlong("bx2",onclose,def,"",floor(maxcontracts*0.2),1); } if condition3 == true and crossup(value,S9Percent) then { condition3 = true; exitlong("bx3"); } if crossdown(value,S7Percent) then exitlong("bx"); } else { e = 0; condition1 = false; condition2 = false; condition3 = false; condition4 = false; } }
프로필 이미지
바나
2021-04-10
945
글번호 147874
시스템
답변완료

수식수정요청

총 투자금에서 투자금액 비율을 0.1, 0.1, 0.2, 0.2, 0.4 로 총 5번으로 하고 싶은데 지금식과 같이 범위별로 지정하지 않고 하나씩 나눠서 각각 지정하고 싶습니다. 또한 buy도 각각 나눠서 지정하고 첫번째 매수는 그대로 진행하고 이전가격보다 떨어진 가격에 사는 식 두번째 매수는 LatestEntryPrice(0)*0.98, 세번째 매수는 LatestEntryPrice(0)*0.98, 네번째 매수는 LatestEntryPrice(0)*0.99 다섯번째 매수는 LatestEntryPrice(0)*0.99 로 각각 지정하고 싶습니다. 원래대로 청산신호가 나오면 이전에 두번이나 세번 매수만 나왓어도 다시 첫번째 매수로 돌아가도록 했으면 좋겠구요. 마지막으로 매수 파라볼릭sar이 생기면 매도 파라볼릭sar이 생기기 전까지 딱 한번만 매수 되도록 하고 싶습니다. Bentry로 하는거 같아서 수식에 적용해 보긴 했는데 제대로 안되는거 같기도 하고.. Input : 투자금액(10000000),RSIP(14), P1(5), P2(25), P3(100), 시작일(20210407),시작시간(073000); var : value(0),e(0),x(0),count(0),Vma(0), Tcond(false); var : Rsiv(0),vv(0), BEntry(false), mav1(0); var1 = ma(C,p1); var2 = ma(C,p2); var3 = ma(C,p3); var4 = sar(0.02,0.2); mav1 = ma(C,30); Rsiv = RSI(RSIP); if NextBarSdate >= 시작일 and NextBarStime >= 시작시간 Then Tcond = true; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then count = count+1; if sdate >= 시작일 and stime >= 시작시간 Then Tcond = true; if Tcond == true then { if crossup(c,var4) Then BEntry = true; if MarketPosition >= 0 and BEntry == true and var1 > var2 and Rsiv < 60 and C > var4 Then { if MarketPosition == 1 Then Bentry = false; if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 3) Then vv = Floor((투자금액*0.1)/C); if MarketPosition == 1 and MaxEntries >= 3 and MaxEntries <= 4 Then vv = Floor((투자금액*0.15)/C); if MarketPosition == 1 and MaxEntries >= 5 and MaxEntries <= 6 Then vv = Floor((투자금액*0.20)/C); buy("b",atlimit,LatestEntryPrice(0)*0.98,VV); } if MarketPosition == 1 and Rsiv > 55 and var1 > var2 and var2 > var3 and C < var4 Then exitlong("s"); }
프로필 이미지
바나
2021-04-10
913
글번호 147873
시스템
답변완료

수식 수정 부탁드립니다.

저는 국내선물 데이트레이딩(오버나이트를 하지 않음)을 하고자 하는데요, 지난번에 아래와 같이 수식 만들어주셨었습니다. 지난번 수식을 적용해보니, 기준시각 근처의 마지막 신호가 매수진입 또는 매도진입인 경우 당일 청산신호가 발생될때까지 포지션을 갖고가는 문제가 있었습니다. 기준시각의 승률, 손익비가 기준에 미달하는 경우 마지막 신호가 매수청산 또는 매도청산으로 끝나서 기준시각 전에 당일 포지션을 청산할 수 있도록 하는 수식을 부탁드립니다. 항상 감사드립니다. ------------------------------------------------------------------- 안녕하세요 예스스탁입니다. 1 input : 기준시각(100000),승률(45); var : Wcount(0),Count(0),Trade(False); if Bdate != Bdate[1] Then { WCount = 0; Count = 0; Trade = true; } if TotalTrades > TotalTrades[1] Then { count = count+1; if PositionProfit(1) > 0 Then { WCount = WCount + 1; } } if (sDate != sDate[1] and sTime >= 기준시각) or (sDate == sDate[1] and sTime >= 기준시각 and sTime[1] < 기준시각) Then { if WCount/Count*100 < 승률 Then Trade = False; } if Trade == true Then { 진입청산수식 } 2 input : 기준시각(100000),손익비(1.5); var : WP(0),Wcount(0),LP(0),LCount(0),Trade(False); if Bdate != Bdate[1] Then { WP = 0; WCount = 0; LP = 0; LCount = 0; Trade = true; } if TotalTrades > TotalTrades[1] Then { if PositionProfit(1) > 0 Then { WP = WP + PositionProfit(1); WCount = WCount+1; } if PositionProfit(1) < 0 Then { LP = LP + abs(PositionProfit(1)); LCount = LCount+1; } } if (sDate != sDate[1] and sTime >= 기준시각) or (sDate == sDate[1] and sTime >= 기준시각 and sTime[1] < 기준시각) Then { if (WP/WCount)/(LP/LCount) < 손익비 Then Trade = False; } if Trade == true Then { 진입청산수식 } 3 input : 기준시각(100000),승률(45),손익비(1.5); var : WP(0),Wcount(0),LP(0),LCount(0),Count(0),Trade(False); if Bdate != Bdate[1] Then { WP = 0; WCount = 0; LP = 0; LCount = 0; Count = 0; Trade = true; } if TotalTrades > TotalTrades[1] Then { count = count+1; if PositionProfit(1) > 0 Then { WP = WP + PositionProfit(1); WCount = WCount+1; } if PositionProfit(1) < 0 Then { LP = LP + abs(PositionProfit(1)); LCount = LCount+1; } } if (sDate != sDate[1] and sTime >= 기준시각) or (sDate == sDate[1] and sTime >= 기준시각 and sTime[1] < 기준시각) Then { if WCount/Count*100 < 승률 Then Trade = False; if (WP/WCount)/(LP/LCount) < 손익비 Then Trade = False; } if Trade == true Then { 진입청산수식 } 즐거운 하루되세요 > 트레이더365 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 국내선물 거래하려고 하는데요. 1. 당일 오전 10시까지 승률이 45% 미만이면 당일 거래를 종료하고, 45% 이상이면 기존 수식대로 거래를 하도록 하는 수식을 부탁드립니다. 2. 당일 오전 10시까지 거래의 손익비가 1.5 미만이면 당일 거래를 종료하고, 1.5이상이면 기존 수식대로 거래를 하도록 하는 수식을 부탁드립니다. 3. 오전 10시까지 승률이 45% 미만 또는 손익비가 1.5 미만이면 당일거래를 종료하고, 그렇지 않으면 기존 수식대로 거래를 하도록 하는 수식을 부탁드립니다. 기준시각, 승률, 손익비는 외부변수로 처리 부탁드립니다. 항상 감사드립니다.
프로필 이미지
트레이더365
2021-04-10
1054
글번호 147872
시스템