커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

변수 오류

안녕하세요. 종료시간을 만기일에 변화시켜서 매매하려고 합니다. 아래와 같이 게시판에 보고 작성해보았습니다. 종료시간을 input에 두고 초기값을 153000으로 설정하면 잘 매매되었는데, vars로 옮기고 나서는이상하게 매수가 1건도 이루어지지 않네요. 변수설정에 문제가 있는거 같은데, 수정의견 부탁드립니다~ ---------------------------------------------------------------- VARS: kk(1), entry(0),var11(0),var12(0),var13(0), 종료시간(0); /*이하는 선물만기일이면 종료시간 다르게 하는 로직임*/ var11 = int(date/100)-int(date/10000)*100; var12 = date - int(date/100)*100; var13 = DayOfWeek(date); if var11%3 == 0 and var12 >= 8 and var12 <= 14 and var13 == 4 then 종료시간==151500; Else 종료시간==153000; if sTime < 종료시간 and MarketPosition == 0 and DayOpen(0)/DayClose(1)-1<-gap and entry < 1 then { buy("시가매수",AtLimit,DayOpen(0),kk);...
프로필 이미지
건곤대
2022-05-12
1534
글번호 158840
시스템
답변완료

ab-ratio 타주기 적용

항상 감사드립니다. 아래 시스템식을 타주기에 적굥할수 있도록 변환 부탁드립니다 Inputs: Length(5200); Variables : ABull(0), ABear(0), BBull(0), BBear(0),ARatio(0), BRatio(0); var:t66(0),t70(0),t71(0),t77(0),t80(0); ABull = accumn(High - Open, Length); ABear = Accumn(Open - Low, Length); BBull = Accumn(High - Close[1], Length); BBear = Accumn(Close[1] - Low, Length); ARatio = ABull / ABear * 100; BRatio = BBull / BBear * 100; if aRatio>100 Then t66 = 1 ; if BRatio>100 Then t70 = 1 ; if aRatio>100 and BRatio>100 Then t71 = 1 ; if t71==1 Then t77 = 1 ; If t77==1 or t77==-1 Then { if t77==1 Then t80=1 ; if t77==-1 Then t80=-1 ; }
프로필 이미지
조민철
2022-05-13
1444
글번호 158839
시스템
답변완료

수식문의드립니다

안녕하세요~ 오전에 답변주신것 바탕으로 array 사용해 수식을 줄였는데 줄인건 진입이 일어나지 않는데 원인을 못찾겠습니다... 1. 원래수식 input : ML(20), L01(12083), L02(12043), L03(12003), L04(11963), L05(11923), L06(11883), L07(11843), L08(11803), L09(11763), L10(11723); var : Bsystem(true), Ssystem(true); // 매수진입 조건 if Bsystem == true Then { if MarketPosition == 0 && condition11 == true Then buy("b01", AtLimit, L01); if MarketPosition == 0 && condition12 == true Then buy("b02", AtLimit, L02); if MarketPosition == 0 && condition13 == true Then buy("b03", AtLimit, L03); if MarketPosition == 0 && condition14 == true Then buy("b04", AtLimit, L04); if MarketPosition == 0 && condition15 == true Then buy("b05", AtLimit, L05); if MarketPosition == 0 && condition16 == true Then buy("b06", AtLimit, L06); if MarketPosition == 0 && condition17 == true Then buy("b07", AtLimit, L07); if MarketPosition == 0 && condition18 == true Then buy("b08", AtLimit, L08); if MarketPosition == 0 && condition19 == true Then buy("b09", AtLimit, L09); if MarketPosition == 0 && condition10 == true Then buy("b10", AtLimit, L10); if MarketPosition == 0 && CrossDown(C, L01+ML) Then condition11 = true; if MarketPosition == 0 && CrossDown(C, L02+ML) Then condition12 = true; if MarketPosition == 0 && CrossDown(C, L03+ML) Then condition13 = true; if MarketPosition == 0 && CrossDown(C, L04+ML) Then condition14 = true; if MarketPosition == 0 && CrossDown(C, L05+ML) Then condition15 = true; if MarketPosition == 0 && CrossDown(C, L06+ML) Then condition16 = true; if MarketPosition == 0 && CrossDown(C, L07+ML) Then condition17 = true; if MarketPosition == 0 && CrossDown(C, L08+ML) Then condition18 = true; if MarketPosition == 0 && CrossDown(C, L09+ML) Then condition19 = true; if MarketPosition == 0 && CrossDown(C, L10+ML) Then condition10 = true; if CrossDown(L, L01) Then condition11 = False; if CrossDown(L, L02) Then condition12 = False; if CrossDown(L, L03) Then condition13 = False; if CrossDown(L, L04) Then condition14 = False; if CrossDown(L, L05) Then condition15 = False; if CrossDown(L, L06) Then condition16 = False; if CrossDown(L, L07) Then condition17 = False; if CrossDown(L, L08) Then condition18 = False; if CrossDown(L, L09) Then condition19 = False; if CrossDown(L, L10) Then condition10 = False; } //매도진입 조건 if Ssystem == true Then { if MarketPosition == 0 && Condition21 == true Then Sell("s01",AtLimit,L01); if MarketPosition == 0 && Condition22 == true Then Sell("s02",AtLimit,L02); if MarketPosition == 0 && Condition23 == true Then Sell("s03",AtLimit,L03); if MarketPosition == 0 && Condition24 == true Then Sell("s04",AtLimit,L04); if MarketPosition == 0 && Condition25 == true Then Sell("s05",AtLimit,L05); if MarketPosition == 0 && Condition26 == true Then Sell("s06",AtLimit,L06); if MarketPosition == 0 && Condition27 == true Then Sell("s07",AtLimit,L07); if MarketPosition == 0 && Condition28 == true Then Sell("s08",AtLimit,L08); if MarketPosition == 0 && Condition29 == true Then Sell("s09",AtLimit,L09); if MarketPosition == 0 && Condition20 == true Then Sell("s10",AtLimit,L10); if MarketPosition == 0 && CrossUp(C, L01-ML) Then condition21 = true; if MarketPosition == 0 && CrossUp(C, L02-ML) Then condition22 = true; if MarketPosition == 0 && CrossUp(C, L03-ML) Then condition23 = true; if MarketPosition == 0 && CrossUp(C, L04-ML) Then condition24 = true; if MarketPosition == 0 && CrossUp(C, L05-ML) Then condition25 = true; if MarketPosition == 0 && CrossUp(C, L06-ML) Then condition26 = true; if MarketPosition == 0 && CrossUp(C, L07-ML) Then condition27 = true; if MarketPosition == 0 && CrossUp(C, L08-ML) Then condition28 = true; if MarketPosition == 0 && CrossUp(C, L09-ML) Then condition29 = true; if MarketPosition == 0 && CrossUp(C, L10-ML) Then condition20 = true; if CrossUp(H, L01) Then Condition21 = False; if CrossUp(H, L02) Then Condition22 = False; if CrossUp(H, L03) Then Condition23 = False; if CrossUp(H, L04) Then Condition24 = False; if CrossUp(H, L05) Then Condition25 = False; if CrossUp(H, L06) Then Condition26 = False; if CrossUp(H, L07) Then Condition27 = False; if CrossUp(H, L08) Then Condition28 = False; if CrossUp(H, L09) Then Condition29 = False; if CrossUp(H, L10) Then Condition20 = False; } // 청산 if marketposition == 1 Then { ExitLong("exitL1",AtLimit,EntryPrice+ML); ExitLong("exitL2",AtStop,EntryPrice-ML); } if marketposition == -1 Then { ExitShort("exitS1",AtLimit,EntryPrice-ML); ExitShort("exitS2",AtStop,EntryPrice+ML); } 2. array 사용한 수식 input : ML(20); var : Bsystem(true), Ssystem(true), i(0); array : LL[9](0), BC[9](False), SC[99](False); LL[5] = 11923; For i = 0 to 4 {LL[4-i] = LL[5-i] + 2*ML;} For i = 5 to 9 {LL[i+1] = LL[i] - 2*ML;} MessageLog("L1 %.2f, L2 %.2f, L3 %.2f, L4 %.2f, L5 %.2f", LL[2] , LL[4], LL[5], LL[6], LL[7]); // 매수진입 조건 if Bsystem == true Then { For i = 0 to 9 { if MarketPosition == 0 && BC[i] == true Then buy("b", AtLimit, LL[i]); if MarketPosition == 0 && CrossDown(C,LL[i]+ML) Then BC[i] = true; if CrossDown(L, LL[i])then BC[i] = False; } } //매도진입 조건 if Ssystem == true Then { For i = 0 to 9 { if MarketPosition == 0 && SC[i] == true Then Sell("s", AtLimit, LL[i]); if MarketPosition == 0 && CrossUp(C,LL[i]-ML) Then SC[i] = true; if Crossup(H, LL[i])then SC[i] = False; } } // 청산 if marketposition == 1 Then { ExitLong("exitL1",AtLimit,EntryPrice+ML); ExitLong("exitL2",AtStop,EntryPrice-ML); } if marketposition == -1 Then { ExitShort("exitS1",AtLimit,EntryPrice-ML); ExitShort("exitS2",AtStop,EntryPrice+ML); } ----------------------------------------------------- 확인해보면 1.은 진입이 정상적으로 일어나는데 줄이기만한 2.는 진입이 아얘 일어나지 않는데 원인을 못찾겠습니다ㅠ 확인해주시면 감사하겠습니다!
프로필 이미지
jshwang2
2022-05-13
1259
글번호 158838
시스템
답변완료

하루최대 수익 및 장중 손실금액 수식 부탁드립니다.

안녕하세요 앞전에 하루 최대수익 도달시 더이상 거래 안되게 코드를 알려주셨는데 추가적으로 넣고싶은 코드가 있어 며칠간 도전해보다 실패하여 이렇게 글을 남깁니다. 만약 현재 코드에서(아래 첨부) 진입 후 현재손실 누적포인트가 -50point(나스닥) 경우 프로핏타겟(xx,pointstop); (신호즉시) 코드가 실행되고, 다시 현재 손실금액이 0이상으로 바뀌면 프로핏타겟 진행을 멈추고 아래 코드로 진행되게 하려 합니다. *요약 - -당일거래 진행중 손실이 -50 포인트 이상 손실 발생시 프로핏타겟 모드로 진행, - 다시 수익이 -50 에서 0포인트 이상으로 바뀌면 프로핏타겟 모드 해제, 이전 코드 내용, Input : 당일수익틱수(400); Var : N1(0),dayPl(0),당일수익(0),Xcond(false); 당일수익 = PriceScale*당일수익틱수; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then Xcond = true; } if MarketPosition == 1 then { if C >= EntryPrice+((당일수익-daypl)/CurrentContracts) Then ExitLong("dbp"); } if MarketPosition == -1 then { if C <= EntryPrice-((당일수익-daypl)/CurrentContracts) then ExitShort("dsp"); } if Xcond == false then { if MarketPosition == 0 and (진입시간1, 진입시간2) Then { if 매수조건 Then { Buy(); } if 매도조건 Then { Sell(); } } if MarketPosition == 1 Then { if 매수청산 조건 Then { ExitLong(); if 매도진입조건 (스위칭) and (진입시간1, 진입시간2) Then { Sell(""); } } } if MarketPosition == -1 Then { if 매도청산 조건 Then { ExitShort(); if 매수 진입조건 (스위칭) and (진입시간1, 진입시간2) Then { Buy(""); } } } }
프로필 이미지
카카보오12
2022-05-13
1185
글번호 158837
시스템
답변완료

종목검색식 부탁드립니다.

안녕하십니까 수고많으십니다. 종목 검색식 부탁드립니다. ㅇ최근 30거래일 동안 일봉 상 양봉 비율이 60% 이상인 종목 감사합니다.
프로필 이미지
대한이
2022-05-13
1213
글번호 158836
종목검색

대한이 님에 의해서 삭제되었습니다.

프로필 이미지
대한이
2022-05-13
0
글번호 158828
시스템
답변완료

시스템식 문의 드립니다.

안녕하세요 질문이 있어 글을 올려봅니다. 아래의 지표식을 살펴보면 저가대비 5%상승할때마다. var1, var2 값이 변경되는데 혹시 저가대비 5%상승해서 var1, var2 값이 바뀌었을때 그전의 변수값 (var1, var2)로 매매를 하려면 var1(1), var(2) 이거나 var1[1], var2[1] 로 사용해야 하나요?? 사실 둘다 적용해봤는데 작동이 안됩니다. 방법이 있으시면 알려주세요!!ㅜ.ㅜ 1 var1 = L*1.05; var2 = H*0.90; if Index == 0 or (value1 > 0 and H >= value1) Then { value1 = var1; value2 = Var2; } Else { if var1 < value1 Then value1 = value1; if var2 > Value2 Then value2 = Var2; } Plot1(Value1); plot2(value2); 2 var1 = L*1.05; var2 = H*0.90; if Index == 0 Then { value1 = var1; value2 = Var2; } Else { if var1 < value1 Then value1 = value1; if var2 > Value2 Then value2 = Var2; if H >= value1 Then { value1 = var1; Value2 = Var2; } } Plot1(Value1); plot2(value2); 즐거운 하루되세요
프로필 이미지
맴맴잉
2022-05-13
1444
글번호 158824
시스템

2wnwn 님에 의해서 삭제되었습니다.

프로필 이미지
2wnwn
2022-05-13
16
글번호 158823
지표
답변완료

수식 질문드립니다.

data1은 선물1분봉입니다. data2는 참조차트 10틱입니다. 여기서 var1 = data2(C)-data2(C[1]) average(var1,2000) 값을 1분봉의 OHLC 값 나오도록 봉차트 구현가능한지 궁금합니다. 즉, 10틱을 다시 1분봉으로 변환해서 지표로 표기하고싶습니다. 감사합니다.
프로필 이미지
캣피쉬
2022-05-13
1397
글번호 158822
지표