커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1519
글번호 230811
김윤한 님에 의해서 삭제되었습니다.
2025-10-16
3
글번호 226954
답변완료
일봉전략을 5분봉전략으로의 변환 코드 검토 부탁 드립니다. (수정)
얼마 전 올렸던 질문(글번호: 194570) 관련 추가질문입니다.아래와 같이 코드를 변경했는데, 이게 맞나 싶네요... 결과가 너무 달라요.그리고, 날짜변경시 Daily~로 시작되는 변수들을 업데이트 하도록 했는데,한국투자증권 나스닥 선물 시간상 한국자정에 날짜가 바뀌는 거 같은데미국시장 기준으로 바꾸도록 하려면 어떻게 하나요?검토 좀 부탁 드립니다.늘 감사 드립니다.============= 원본코드 =============// --- 원본 전략 로직 시작 (문법 수정 적용) ---PcntChange = Close / DayClose(PChng) * 100;If PcntChange < 100 - OverRange then Begin OS = TRUE; HighBand = Highest( High , Bands ); End;If PcntChange > 100 + OverRange then Begin OB = TRUE; LowBand = Lowest( Low, Bands); End;if EntriesToday(sDate) < 1 and NoContract > 0 and TradeAllowed then { If OS and MarketPosition <> 1 Then Buy("B", AtStop, HighBand, NoContract); If OB and MarketPosition <> -1 then Sell("S", AtStop, LowBand, NoContract);}If marketposition == 1 and C > entryprice + profit then ExitLong("LX_Profit", AtMarket);if marketposition == -1 and C < entryprice - profit then ExitShort("SX_Profit", AtMarket);if MRO( OS == false, MRO_Length, MRO_Threshold ) == -1 then OS = false;if MRO( OB == false, MRO_Length, MRO_Threshold ) == -1 then OB = false;ExitLong("EL_Trail", AtStop, lowest(low,exitperiod));ExitShort("ES_Trail", AtStop, highest(high,exitperiod));SetStopLoss(stopPer, PercentStop);// --- 원본 전략 로직 종료 ---============= 수정코드 =============Array: DailyReturns[100](0), DailyOpenArray[100](0), DailyHighArray[100](0), DailyLowArray[100](0), DailyCloseArray[100](0);// ================== 로직 시작 ==================// 1. 5분봉을 일봉으로 집계CurrentDate = sDate;if Index == 0 then begin PrevDate = CurrentDate; DailyOpen = Open; DailyHigh = High; DailyLow = Low; DailyBarCount = 0;end// 날짜가 바뀌었을 때 (새로운 거래일 시작)if CurrentDate != PrevDate then begin // 전일 일봉 데이터를 배열에 저장 For Value1 = 99 DownTo 1 begin DailyOpenArray[Value1] = DailyOpenArray[Value1-1]; DailyHighArray[Value1] = DailyHighArray[Value1-1]; DailyLowArray[Value1] = DailyLowArray[Value1-1]; DailyCloseArray[Value1] = DailyCloseArray[Value1-1]; end; DailyOpenArray[0] = PrevDailyOpen; DailyHighArray[0] = PrevDailyHigh; DailyLowArray[0] = PrevDailyLow; DailyCloseArray[0] = PrevDailyClose; // 새로운 일봉 시작 DailyOpen = Open; DailyHigh = High; DailyLow = Low; DailyBarCount = DailyBarCount + 1; PrevDate = CurrentDate;end// 같은 날 내에서 고가/저가 업데이트if High > DailyHigh then DailyHigh = High;if Low < DailyLow then DailyLow = Low;DailyClose = Close;// 이전 일봉 데이터 저장PrevDailyOpen = DailyOpen;PrevDailyHigh = DailyHigh;PrevDailyLow = DailyLow;PrevDailyClose = DailyClose;.......... 생략 ..........if CurrentDate != PrevDate and DailyBarCount > 1 then begin if DailyOpenArray[1] > 0 then DailyReturn = (DailyOpenArray[0] - DailyOpenArray[1]) / DailyOpenArray[1] else DailyReturn = 0; For Value1 = VaR_Period - 1 DownTo 1 begin DailyReturns[Value1] = DailyReturns[Value1-1]; end; DailyReturns[0] = DailyReturn;end.......... 생략 ..........// 5. 원본 전략 로직 (일봉 기준 계산)if DailyBarCount >= Pchng and DailyCloseArray[Pchng-1] > 0 then PcntChange = DailyClose / DailyCloseArray[Pchng-1] * 100else PcntChange = 100;If PcntChange < 100 - OverRange then begin OS = true; // 최근 Bands개 일봉의 최고가 HighBand = DailyHighArray[0]; For Value1 = 1 to Bands-1 begin if DailyHighArray[Value1] > HighBand then HighBand = DailyHighArray[Value1]; end;endelse OS = false;If PcntChange > 100 + OverRange then begin OB = true; // 최근 Bands개 일봉의 최저가 LowBand = DailyLowArray[0]; For Value1 = 1 to Bands-1 begin if DailyLowArray[Value1] < LowBand then LowBand = DailyLowArray[Value1]; end;endelse OB = false;// 6. 주문 실행 (5분봉에서 즉시 실행)if EntriesToday(sDate) < 1 and NoContract > 0 and TradeAllowed then begin If OS and MarketPosition <> 1 then Buy("B", AtStop, HighBand, NoContract); If OB and MarketPosition <> -1 then Sell("S", AtStop, LowBand, NoContract);endIf MarketPosition == 1 and C > EntryPrice + profit then ExitLong("LX_Profit", AtMarket);if MarketPosition == -1 and C < EntryPrice - profit then ExitShort("SX_Profit", AtMarket);if MRO(OS == false, MRO_Length, MRO_Threshold) == -1 then OS = false;if MRO(OB == false, MRO_Length, MRO_Threshold) == -1 then OB = false;// exitperiod도 일봉 기준으로 계산Var: ExitLowBand(99999), ExitHighBand(0);ExitLowBand = DailyLowArray[0];ExitHighBand = DailyHighArray[0];For Value1 = 1 to exitperiod-1 begin if DailyLowArray[Value1] < ExitLowBand then ExitLowBand = DailyLowArray[Value1]; if DailyHighArray[Value1] > ExitHighBand then ExitHighBand = DailyHighArray[Value1];end;ExitLong("EL_Trail", AtStop, ExitLowBand);ExitShort("ES_Trail", AtStop, ExitHighBand);SetStopLoss(stopPer, PercentStop);
2025-10-16
3349
글번호 226942
답변완료
종목검색식 부탁드립니다
일목균형표 수치 2종 (A , B)--->선행스팬 수치 다름.(주의)
A종 7 19 38
B종 9 26 52 (일반적 수치) 에서,
1. 일목균형표 A종의 선행스팬1 이, B종의 선행스팬2 를 돌파하는
종목검색식 부탁드려요.
2. 일목균형표 A종의 선행스팬2 가, B종의 선행스팬2 를 돌파하는
종목검색식 부탁드립니다.
2025-10-16
252
글번호 194678
답변완료
부틱드립니다
수고하십니다
아래수식을 오류 없게 수정부탁드립니다
//{ Chaikin Money Flow (CMF) Indicator }
Inputs:
Period(20); // CMF 계산 기간
Vars:
MFMultiplier(0),
MFVolume(0),
SumMFVolume(0),
SumVolume(0),
CMF(0),
Counter(0);
// Money Flow Multiplier 계산
If (High - Low) <> 0 Then
MFMultiplier = ((Close - Low) - (High - Close)) / (High - Low)
Else
MFMultiplier = 0;
// Money Flow Volume 계산
MFVolume = MFMultiplier * Volume;
// Period 동안의 합계 계산
SumMFVolume = 0;
SumVolume = 0;
For Counter = 0 To Period - 1 Begin
SumMFVolume = SumMFVolume + (MFMultiplier[Counter] * Volume[Counter]);
SumVolume = SumVolume + Volume[Counter];
End;
// CMF 계산
If SumVolume <> 0 Then
CMF = SumMFVolume / SumVolume
Else
CMF = 0;
// 플롯
Plot1(CMF, "CMF");
Plot2(0, "ZeroLine");
Plot3(0.25, "UpperLevel");
Plot4(-0.25, "LowerLevel");
// 색상 조건부 설정
If CMF > 0 Then
SetPlotColor(1, Green)
Else If CMF < 0 Then
SetPlotColor(1, Red);
2025-10-15
269
글번호 194677
답변완료
수식 문의드립니다.
안녕하세요.
나스닥 선물 매수거래시 사용할 수식 부탁드립니다.
진입신호 발생조건 3개(매수1, 매수2, 매수3)와 청산신호 발생조건 1개(청산1)가 있다는 것을 전제로
각 진입신호를 활용해서 피라미딩 매수진입하고,
청산은 "청산신호 발생" 또는
"익일 오전 1시도달" 또는
"이익이 100만원일 경우" 또는
"손실이 100만원일 경우"에 전량 청산이 이루어지도록 하는 수식을 부탁드립니다.
만약 금액기준 청산이 어려울 경우 매수평균 대비 이익과 손실이 각 5%, -5%에 도달하면 청산이 이루어지도록 부탁드립니다.
그리고 피라미딩 탭에 보면 주문 수량 칸과 진입 횟수 칸이 있는데 여기에는 어떻게 넣어야 하는지도 알려주시면 감사하겠습니다.
항상 감사드립니다.
2025-10-15
211
글번호 194676
답변완료
수식 완성부탁드립니다.
◆매수조건: 15분봉
◆매수시간: 동시호가 15:30분 마감까지 마지막 30분 봉에서 매수조건 1,2,3 완성 시 장후 시간외 종가 거래에서 매수
◆매수조건1: 마지막 30분 봉內 ADX 25 이상에서 DI+가 ADX를 상향돌파
◆매수조건2: 마지막 30분 봉內 Chaikin’s Oscillator 0.00 이상에서 횡보 또는 상승추세 ( Short 3 Long 10)
◆매수조건3: 마지막 30분 봉內 RSI(14) 55 상향돌파
◆매도조건: 30분봉
마지막 30분 봉內 DI+/ Chaikin’s Oscillator/ RSI 세가지 지표 중
fall_count == 2 하락전환 시 → 50% 시장가 매도, fall_count == 3 하락전환 시→ 50% 시장가 매도
*하락전환: 3분봉 데이터 사용
*하락전환 기준치: RSI: -3%/ DI+: -4%/ CO: -2% 고점대비 하락 시
수고가 많으십니다.
위 문의드린 시스템 수식의 매수조건 1,2,3으로 종목검색도 부탁드립니다. 감사합니다.
2025-10-15
433
글번호 194675
답변완료
부탁드립니다.
1. 종가가 양봉이면서 최근 20개봉의 최고가일 때 파란색으로, 종가가 음봉이면서 최근 20개봉의 최저가 일 때 빨강색으로 구현해 주세요
2. 종가가 양봉이면서 최근 30개봉 이내 가장 긴 양봉을 갱신할 때 마다 파란색으로, 종가가 음봉이면서 최근 30개봉 이내 가장 긴 음봉을 갱신할 때 마다 빨강색으로 구현해 주세요
고맙습니다.
2025-10-15
218
글번호 194674
답변완료
종목 검색식 부탁드립니다.
MA20=Ma(C,20,단순);
MA60=Ma(C,60,단순);
크로스횟수=Sum(If(CrossUp(MA20,MA60) or CrossDown(MA20,MA60),1,0),5);
ATR14=Avg((Highest(H,1)-Lowest(L,1)),14);
GapRatio=Abs(MA20-MA60)/ATR14;
급락=(Lowest(C,5)/C(5))<0.95;
크로스횟수<=1 && GapRatio>0.3 && !급락
위 수식을 예스랭귀지로 변환부탁드립니다.
2025-10-15
239
글번호 194673
답변완료
문의 드립니다
수식 작성시 KP종합 또는 KP200선물이
현재 기준 플러스(5포인트) 또는 마이너스(5포인트) 상태를 수식에 표현할 수 있나요.
있다면 수식을 어떻게 표현하나요.
감사합니다.
2025-10-15
249
글번호 194672