커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁 드립니다.

항상 도움 주셔서 진심으로 감사 드립니다. 그림의 상단에 그린 지표와 같이 지정된 시간내에서 양봉시 최대 거래량 갱신 이후에 그것을 기준으로 양봉시 2번째의 최대 거래량을 갱신시마다 고저가선만 (A,B지점지표와 같이) 표시하고 싶습니다. (최대 거래량은 지표에서 제외) 미리 감사와 경배 올립니다. 수정해야할 수식) INPUT:일자(20151218),시작(080001),끝(070000); var : HV1(0),idx(0),Hv2(0); if sdate == 일자 and( stime == 시작 or (stime > 시작 and stime[1] < 시작)) Then{ Condition1 = true; Condition2 = false; Hv1 = V; var1 = H; var2 = L; Hv2 = 0; idx = 0; } if stime == 끝 or (stime > 끝 and stime[1] < 끝) Then Condition1 = false; if Condition1 == true Then{ idx = idx+1; if idx >= 2 Then{ if V > HV1 Then{ Hv1 = V; var1 = H; var2 = L; Hv2 = Hv1[1]; var3 = var1[1]; var4 = var2[1]; } if V < HV1 and V > HV2 and V > Hv2 and C>=O Then{ Hv2 = V; var3 = H; var4 = L; } plot1(var3,"고가선"); plot2(var4,"저가선"); } } 참고수식)_양봉시 최대 거래량의 고저가선 INPUT: 일자(20151218),시작(080001),끝(070000); var :HV2(0),LV2(0); if sdate == 일자 and( stime == 시작 or (stime > 시작 and stime[1] < 시작)) Then{ Condition2 = true; Hv2 = 0; } if stime == 끝 or (stime > 끝 and stime[1] < 끝) Then Condition2 = false; if Condition2 == true and C >= O Then{ if V > HV2 Then{ Hv2 = V; var11 = H; var12 = L; } plot11(var11,"양봉고가"); plot12(var12,"양봉저가"); }
프로필 이미지
yes
2015-12-20
194
글번호 93613
지표
답변완료

수식 질문

안녕하세요. 항상 친절하고도 정확한 답변에 감사드립니다. 아직은 초보라서 모르는게 너무 많습니다. 주석으로 잘 설명 부탁드립니다. 1. 상승중 연속으로 매도신호가 나오면 계속 매도진입해서 손실이 나오는 경우. 2. 하락중 연속으로 매수신호가 나오면 계속 매수진입해서 손실이 나오는 경우. 위 두가지를 방지하도록 소스 부탁드립니다. 1. 매수 후 청산시 손실이었으면 매수신호가 나와도 매수진입을 하지 않도록.==> 매도신호에서는 매도진입. 2. 매도 후 청산시 손실이었으면 매도신호가 나와도 매도진입을 하지 않도록.==> 매수신호에서는 매수진입. 또 다른 좋은 방법이 있으시면 소스 부탁드립니다. 미리 감사드립니다.
프로필 이미지
자동매매를알자
2015-12-18
116
글번호 93612
시스템
답변완료

문의

입력변수값은 생략 !!!! 아래식의 주석좀 부탁드립니다. 상세히좀 If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] < ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1 Then { If !(ExitName(1) == "StopProfitTarget" and (EntryName(1) == "매수" or EntryName(1) == "매수2" or EntryName(1) == "매수3") and MarketPosition == 0) Then buy("매수",AtMarket); ###############여기에 2틱유리하게 진입하라는 수식을 넣는건가요? } If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] > ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1 Then { If !(ExitName(1) == "StopProfitTarget" and (EntryName(1) == "매도" or EntryName(1) == "매도2" or EntryName(1) == "매도3") and MarketPosition == 0) Then sell("매도",AtMarket); } #SetStopProfittarget(목표청산1); } 위식에서 sell 부분과 buy 부분에서 신호가 발생이 되어질때 실제포지션 진입은 신호발생값보다 2틱 낮게 진입하고싶습니다. 또는 위식대로 해서 발생된 진입신호가 예로 매수신호13.7 이다 하면 13.5에 매수진입 13.7에 차트에 신호가 나오겟지만 실제로는 13.5에 진입입니다. 매도면 13.7 신호 실제는 13.9에 매도진입 차트에 표시도 13.5에 신호가 나오게 하고싶고요 또 한가지는 장시작부터 오후6시까지는 위식대로 매수 매도 진입하고 오후 6시부터 장종료까지는 매수와 매도를 반대로 진입하고 싶어요 위식에서 누적총수익이 +50틱에 도달하면 더이상 진입하지안고 스톱(매매를 안하게)을 하게 해주세요 그런데 만약 50틱도달후 더이상 진입을 안햐면 다시 시작되는 시점은 언제부터인가요 다음날 장이 시작되야하나요 아니면 hts종료후 다시 시작하면되나요
프로필 이미지
자라도
2015-12-19
118
글번호 93611
시스템
답변완료

함수수정요청(226호, 진입제한)

안녕하세요? 아래 전략을 사용시 전일청산 수익이 발생시 당일은 매매를 하지 않고 전일청산 손실이 발생시 당일에 매매를 하고자합니다. 참고로 비슷한 함수를 다음을 사용하여 작성해주셨었습니다. var : entry(0),NP(0),NP1(0),NP2(0); #총손익(청산완료된 거래만) NP = NetProfit; #영업일 변경 if bdate != bdate[1] Then{ entry = 0; NP1 = NP[1]; #전영업일까지의 총손익 NP2 = NP1[1];#전전영업일까지의 총손익 Condition1 = true; if NP1 > NP2 Then #전영업일까지의 손익이 전전영업일까지의 손익보다 크면 false Condition1 = false; } 즉 전일 거래로 수익이 발생했으면 false입니다. ----------------------------------------------------------------------------------- input : xtime(60000); var : tcond(false),cond1(false),cond2(false); if bdate != bdate[1] Then{ Tcond = true; Condition1 = false; Condition2 = false; } if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{ Tcond = false; } var1 = ma(c,5); var2 = ma(c,10); cond1 = C > var1 and var1 > var2; cond2 = C < var1 and var1 < var2; if cond1 == true and cond1[1] == false then Condition1 = true; if cond2 == true and cond2[1] == false then Condition2 = true; if Tcond == true And Condition1 == true and cond1 == true and var1 > var1[1] and var2 > var2[1] Then buy("B"); if Tcond == true And Condition2 == true and Cond2 == true and var1 < var1[1] and var2 < var2[1] Then sell("S"); SetStopLoss(0.5,PercentStop); SetStopProfittarget(1,PercentStop); SetStopInactivity(1,5,PercentStop);
프로필 이미지
통큰베팅
2015-12-18
118
글번호 93610
시스템
답변완료

함수수정요청(226호)

안녕하세요? 아래의 함수에서 매수전략만 사용하고 싶습니다. 매수가 매도 신호의 영향을 받아 매도 신호를 단순 삭제하면 매수 신호가 달라져 버립니다. input : xtime(60000); var : tcond(false),cond1(false),cond2(false); if bdate != bdate[1] Then{ Tcond = true; Condition1 = false; Condition2 = false; } if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{ Tcond = false; } var1 = ma(c,5); var2 = ma(c,10); cond1 = C > var1 and var1 > var2; cond2 = C < var1 and var1 < var2; if cond1 == true and cond1[1] == false then Condition1 = true; if cond2 == true and cond2[1] == false then Condition2 = true; if Tcond == true And Condition1 == true and cond1 == true and var1 > var1[1] and var2 > var2[1] Then buy("B"); if Tcond == true And Condition2 == true and Cond2 == true and var1 < var1[1] and var2 < var2[1] Then sell("S"); SetStopLoss(0.5,PercentStop); SetStopProfittarget(1,PercentStop); SetStopInactivity(1,5,PercentStop);
프로필 이미지
통큰베팅
2015-12-18
118
글번호 93609
시스템
답변완료

하루에 한번만 진입해야 하는데 오류가 있네요

하루에 한번만 진입해야 하는데 여러번 진입하게 되네요 뭐가 문제죠? 하루에 한번만 진입하는 것을 원칙으로 하고, 만약 매수후 밴드하단을 이탈하면 매수청산하게 되어 있는데("하단이탈"로 표기됨) 이런 경우에 한에서 한번만 더 매수진입을 허용할 수 있도록 수식 변경 부탁합니다. 그리고 오후 1시 이전에만 매수진입할 수 있도록 수식변경 부탁드립니다^^ input : P(20),dv(2),sto1(25),sto2(6),sto3(6),금액(200000); var : BBup(0),BBdn(0),stok(0),stoD(0); var : cnt(0),count(0); BBup = BollBandUp(P,dv); BBdn = BollBandDown(P,dv); stok = StochasticsK(sto1,sto2); Stod = StochasticsD(sto1,sto2,sto3); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if NextBarOpen > BBdn and BBup >= BBdn*1.04 and count < 1 Then buy("매수1",Atlimit,Bbdn*1.015,Floor(금액/C)); # 완성봉 기준으로 밴드하단 ~ +1.5% 사이에 있으면 매수 if C >= BBdn and C <= BBdn*1.015 and BBup >= BBdn*1.04 and count < 1 Then buy("매수2",OnClose,def,Floor(금액/C)); if MarketPosition == 1 Then{ ExitLong("상단매도",atlimit,BBup); ExitLong("목표수익",atlimit,EntryPrice*1.07); # ExitLong("TR-Stop",AtStop,highest(H,BarsSinceEntry)*0.95); if CrossDown(C,BBdn) Then ExitLong("하단이탈"); } SetStopLoss(7,PercentStop);
프로필 이미지
뽄때
2015-12-19
129
글번호 93608
시스템
답변완료

문의

답변감사드립니다 ~색갈이봉위로는나오지 않는데 봉위로 나오게 할수는없는지요?
프로필 이미지
장군
2015-12-18
126
글번호 93603
지표
답변완료

AtMarket,def 무슨 의미 인가요?

아래의 식을 설명좀 부탁드립니다 NextBarOpen 는 이전봉을 의미하는 건가요? AtMarket 은 무슨 뜻이고 ,def 은 무슨 뜻이죠? if NextBarOpen <= BBdn*1.015 and NextBarOpen >= BBdn Then buy("매수3",AtMarket,def,Floor(금액/C));
프로필 이미지
뽄때
2015-12-18
227
글번호 93602
시스템
답변완료

수식부탁드림니다.

안녕하세요. 이평선 저가평균선부탁드림니다. 1. 24일선 저가평균선 2. 49일선 저가평균선 3. 99일선 저가평균선 갠들이 이평선위면 이평선이 빨간색 이평선아래면 이평선이파란색. 이평선조정은 제가할수있도록 해주세요. 수고하세요..꾸벅
프로필 이미지
보인다
2015-12-18
133
글번호 93597
지표