커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

업데이트에 따른 진입시간 오류

이전까지 1545까지해서 진입청산을 진행했는데 새벽 1159가 넘어가는 시간은 익일처리가 되지 않고 당일로 계산이 되는듯합니다. if stime > 084500 and stime < 055900 이렇게 하면 오류가 잡히는것 같습니다. 0845를 당일로 하여 당일 저고점을 체크하고 진행을 해야 하는데 새벽이 당일로 잡혀버리는 오류가 발생하는 상황... 대처방안 부탁드립니다.
프로필 이미지
신호매매
2025-06-09
209
글번호 191502
시스템
답변완료

오늘 업데이트후

오늘 업데이트후 , 주간 데이타만 사용하려고 합니다., KOSPI KOSDAQ 상승종목수,하락종목수를 참조 할때 어떤것은 복합,주간,야간 으로 설정하게 되어있고 어떤것은 KRX 만 선택 하도록 되어 있습니다. 어떻게 전략 챠트를 설정해야 하나요?
프로필 이미지
대가들의매매
2025-06-09
215
글번호 191500
시스템
답변완료

지표식인대 시스템 신호 부탁 드립니다.

input:p9(9),p26(26),p52(52); var:a9(0),a26(0),af1(0),af2(0); a9=(highest(h,p9)+lowest(l,p9))/2; a26=(highest(h,p26)+lowest(l,p26))/2; af1=(a9+a26)/2; af2=(highest(h,p52)+lowest(l,p52))/2; plot1(af1-af2, "선행12 41.6%"); plot2(a26-af2[p26-1], "기준-선행2 43.7%"); plot3(a9-af2[p26-1], "전환-선행2 40.4%"); PlotBaseLine1(0,"zero"); 안녕 하세요. 1.양으로 전환 될때 매수 음으로 전환 될때 매도 2.기준선(제로) 위에 있을때 매수 아래에 있을때 매도 이렇게 두가지 수식 부탁 드립니다. 수고하세요.
프로필 이미지
와라바다
2025-06-09
228
글번호 191499
시스템
답변완료

프라이스 채널

항상 수고 많으십니다.. 프라이스채널을 아래위 각각 두줄로 만들수는 없을까요? 두줄로 만들어 주시면 사이에 채우기 기능으로 색깔넣어 사용하고 싶습니다 변수값은 임의로 바꿀수 있게 부탁드립니다 감사합니다...
프로필 이미지
pop700
2025-06-09
216
글번호 191498
지표
답변완료

검색할수잇도록 해주세요

input : 기간1(20),기간2(60); var : p1(0),p2(0); p1=ma(c,기간1); p2=ma(c,기간2); if Crossdown(p1,p2) Then value1 = p1; if value1 > 0 Then Plot1(value1); 위에지표를 만들어 보앗는데 검색이 힘듬니다 수평선을 종가가 돌파하는 검색식좀 만들어주세요
프로필 이미지
밤톨123
2025-06-09
211
글번호 191497
검색
답변완료

수식 확인 부탁드립니다

안녕하세요, 진입이 전혀 이뤄지지 않아 확인 부탁드립니다. 감사합니다. // ------------------------------ // 1단계: 20일 이동평균 기준 상승 추세 판단 // ------------------------------ Vars: LTrend(False), Pullback(False); LTrend = Close > MA(Close, 20); // 현재 종가가 20일 이동평균보다 높을 때 상승 추세로 간주 // ------------------------------ // 2단계: 되돌림 판단 및 기준봉 설정 // ------------------------------ Vars: upCount(0), downCount(0); Vars: 기준생성(False), 기준봉High(0), 기준봉Low(0); If LTrend == True Then { // 양봉인 경우 If Close > Open Then { upCount = upCount + 1; downCount = 0; // 음봉 카운터 초기화 } // 음봉인 경우 Else { If upCount >= 2 and 기준생성 == False and downCount < 8 Then { downCount = downCount + 1; // 최근 양봉 2개의 저가보다 낮은 저가 발생 시 기준봉 설정 If Low < MinList(Low[1], Low[2]) Then { 기준봉Low = Low; 기준봉High = High; 기준생성 == True; } } Else { downCount = downCount + 1; } } // 추세 실패 판단: 음봉이 8개 이상 지속되면 리셋 If downCount >= 8 Then { 기준생성 = False; upCount = 0; downCount = 0; } // ------------------------------ // 매수 조건: 기준봉 고가 돌파 // ------------------------------ If 기준생성 and High > 기준봉High Then { Buy("Buy",AtLimit,기준봉High,1); // 리셋 기준생성 = False; upCount = 0; downCount = 0; } } Else { // 상승 추세가 아니면 전체 상태 리셋 upCount = 0; downCount = 0; 기준생성 = False; } input:PT(5); SetStopLoss(PT,PercentStop); SetStopProfittarget(PT*3,PercentStop);
프로필 이미지
sewzie
2025-06-08
245
글번호 191496
시스템
답변완료

수식 확인 좀 부탁 드립니다.

구글 제미나이에 문의를 해봤습니다. 손절시 시장가로 청산주문을 내도 선물이 급변동하였을 경우 주문가와 차이가 많을경우 cme규정상 주문이 없는 걸로 간주해서 청산이 안되는 바람에 손실이 너무 클 경우가 있고 청산이 안된 상태에서 다음 진입주문이 들어가 버려 매매가 완전히 꼬일 수가 있다고 했더니 아래의 일일최대허용 손실율로 제한식을 추가하면 손실을 어느정도 제한할수 있다고 합니다. 그런데 예스랭귀지에서 사용하는 언어가 아니라서 적용을 못 해보았습니다. 아래의 식을 예스랭귀지로 구현 좀 부탁드립니다. 그리고 아래식을 적용하면 손실을 제한할 수 있는가요? Inputs: DailyLossLimit( 0.03 ), // 일일 최대 허용 손실율 (예: 0.03 = 3%) EmergencyExitAttempts( 3 ), // 비상 청산 시도 횟수 EmergencyExitDelaySeconds( 5 ); // 비상 청산 재시도 간격 (초 단위) // Variables (내부 사용 변수) Variables: V_StartingDailyBalance(0), // 하루 시작 시 계좌 잔고 V_EmergencyMode(False), // 비상 모드 플래그 V_ExitAttemptCount(0), // 비상 청산 시도 횟수 카운터 V_LastExitAttemptTime(0); // 마지막 비상 청산 시도 시간 (TicksFromMidnight) // 매일 장 시작 시 초기화 If Date <> Date[1] Then Begin V_StartingDailyBalance = AccountNetLiquidValue(Account); V_EmergencyMode = False; // 새로운 날 시작 시 비상 모드 초기화 V_ExitAttemptCount = 0; // 시도 횟수 초기화 End; // 일일 최대 손실 초과 시 비상 모드 활성화 If V_StartingDailyBalance <> 0 And (AccountNetLiquidValue(Account) - V_StartingDailyBalance) / V_StartingDailyBalance < -DailyLossLimit Then Begin Print(Date, Time, " !!! CRITICAL: Daily Loss Limit Exceeded! Current Loss: ", (AccountNetLiquidValue(Account) - V_StartingDailyBalance) / V_StartingDailyBalance * 100:2:Float, "% !!!"); V_EmergencyMode = True; End; // --- 비상 모드 실행 로직 (이 부분이 매 틱마다 또는 매 바마다 실행됨) --- If V_EmergencyMode Then Begin Print(Date, Time, "EMERGENCY MODE ACTIVATED. All new entries and exits are suspended."); // 현재 포지션이 남아있고, 비상 청산 시도 횟수가 남았으며, 재시도 시간이 되었을 때 If MarketPosition <> 0 And V_ExitAttemptCount < EmergencyExitAttempts And (TicksFromMidnight - V_LastExitAttemptTime) >= EmergencyExitDelaySeconds Then Begin Print(Date, Time, "Attempting Emergency Exit (", V_ExitAttemptCount + 1, " of ", EmergencyExitAttempts, ")."); ExitAllPositions; // 모든 포지션 강제 청산 시도 V_ExitAttemptCount = V_ExitAttemptCount + 1; V_LastExitAttemptTime = TicksFromMidnight; End; SetExitOnClose; // 혹시라도 남아있는 포지션은 바 마감 시 강제 청산 명령 Return; // 이 코드가 실행되면, 이 뒤에 있는 모든 정상적인 매매 로직은 실행되지 않고 현재 바의 스크립트 실행이 종료됨. End;
프로필 이미지
산수유
2025-06-08
336
글번호 191495
시스템
답변완료

미래에셋지표인데 예스랭귀지로 변환될수 있도록 도와주세요.

미래에셋 지표입니다. 예스랭귀지로 변환 부탁드립니다. /*단기이평 = 지수평균(종가,5); 중기이평 = 지수평균(종가,기준이평); 상한채널 = 중기이평 * (1+ 근접율+0.01); 하한채널 = 중기이평 * (1- 근접율+0.01); 최고가 = 최고값(고가, 10); 근접확인 = 종가 > 하한채널 And 종가 < 상한채널; 상승률 = (종가-종가(1))/종가(1)*100; 단기이평 > 중기이평 And 단기이평(3) > 중기이평(3) And 단기이평(4) > 중기이평(4) And 단기이평(5) > 중기이평(5) And (근접확인(1) Or 근접확인(2) Or 근접확인(3)) And 상승률 > 급등비율 And 상향돌파(종가, 고가(1)) And 단기이평(3) > 단기이평(1) */ Params : CloseRatio(5), //근접율 HighRatio(6), //급등비율 BaseMean(25); // 기준이평 vars : v1(0), v2(0), v3(0), v4(0), v5(0), v6(0), Cond1(False), Cond2(False); v1 = EAvg(C,5); v2 = EAvg(C,BaseMean); v3 = v2 * (1+ CloseRatio+0.01); v4 = v2 * (1- CloseRatio+0.01); v5 = Highest(H, 10); Cond1 = C > v4 And C < v3; v6 = (C-C[1])/C[1]*100; Cond2 = v1 > v2 And v1[3] > v2[3] And v1[4] > v2[4] And v1[5] > v2[5] And (Cond1[1] Or Cond1[2] Or Cond1[3]) And v6 > HighRatio And CrossUp(C, H[1]) And v1[3] > v1[1] ; if Cond1 And Cond2 Then Plot1(C, "급등"); 즐거운 하루 보내세요
프로필 이미지
스톰82
2025-06-08
235
글번호 191494
검색
답변완료

수식변경요청

안녕하세요 빠른 답변에 감사드립니다. 다름이 아니라 아래검색식은 일봉에서 작동을 하는데 주봉, 월봉에서는 제대로 종목을 검색하지 못하여서 혹시 주봉이나 월봉에서 검색할 수 있게 수정가능한가 해세요 미리 감사드립니다. Var : conditionMet(false); // 최종 조건 만족 여부 플래그 Var : dayIndex(0); // 이전 날짜를 순회할 루프 인덱스 Var : matchCount(0); // 조건 만족 일 개수 카운터 Var : highestHigh10Days(0); // '최근 10일간의 최고가'를 저장할 변수 var : MA5(0),MA20(0),MA60(0),MA120(0),MA240(0); // 이동평균선 변수 // 이동평균선 계산 MA5 = ma(C,5); MA20 = ma(C,20); MA60 = ma(C,60); MA120 = ma(C,120); MA240 = ma(C,240); // 최근 10일간의 최고가 계산 highestHigh10Days = max(DayHigh(0), DayHigh(1), DayHigh(2), DayHigh(3), DayHigh(4),DayHigh(5), DayHigh(6),DayHigh(7),DayHigh(8),DayHigh(9),DayHigh(10)); // 현재 10일간의 최고가가 5일선, 20일선 위에 있고, 모든 이동평균선이 정배열일 때 if (highestHigh10Days > MA5 && highestHigh10Days > MA20 && MA5 > MA20 && MA20 > MA60 && MA60 > MA120 && MA60 > MA240) Then { // === 2단계: 1단계 조건 만족 시 과거 240일을 스캔 === matchCount = 0; For dayIndex = 0 to 380// 0부터 239까지, 총 240일 스캔 { // 스캔하는 각 날짜의 고가가 10일간의 최고가와 같고, 해당 시점의 이동평균선이 정배열인지 확인 if (DayHigh(dayIndex) == highestHigh10Days && MA5[dayIndex] > MA20[dayIndex] && MA20[dayIndex] > MA60[dayIndex] && MA60[dayIndex] > MA120[dayIndex]) Then { matchCount = matchCount + 1; // 조건이 모두 만족하면 카운트 증가 } } // 과거 조건 만족 횟수가 2회 이상이면 최종 조건 만족 if (matchCount >= 2) Then conditionMet = true; Else conditionMet = False; } Else // 1단계 조건이 만족되지 않으면 { conditionMet = False; } // 최종 조건이 만족하면 종목 검색 if (conditionMet) Then Find(1);
프로필 이미지
풍요
2025-06-08
276
글번호 191493
검색