커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1514
글번호 230811
답변완료
질문 있습니다.
안녕하세요, 질문이 있는데요 포지션별 손절 기능이 작동하지 않습니다 (NetProfit 기반) 60분봉 차트로 추세 추종 시스템에서 포지션별 손절 기능을 구현 중인데, 손절이 전혀 작동하지 않아 도움을 요청드립니다. 구현 목표는 아래와 같습니다.각 포지션 진입 시 NetProfit 값을 저장해당 포지션의 손익이 -N pt 도달 시 손절손절 후에도 시스템은 계속 작동현재 상황은Input으로 PositionStopLoss를 20.0으로 설정하고 백테스트 → 결과 AInput으로 PositionStopLoss를 10.0으로 변경하고 백테스트 → 결과 A (완전 동일!)시스템 성능에서 일간수익을 보니 -40pt, -147pt 등 설정값을 훨씬 초과하는 손실 발생그 말은 Input에 수치 입력한 그대로 손절을 하지 않는다는 겁니다. ㅜㅜ의심되는 부분: 진입 시점의 NetProfit이 제대로 기록되지 않는 것 같습니다. 코드 구조는 아래와 같습니다.Input : PositionStopLoss(20.0);
var : EntryNetProfit(0);
var : CurrentPL(0);
var : PrevMarketPosition(0);
// 포지션 진입 감지 및 NetProfit 기록
if PrevMarketPosition == 0 and MarketPosition != 0 Then {
EntryNetProfit = NetProfit; // 이 부분이 실행이 안 되는 걸까요?
}
PrevMarketPosition = MarketPosition;
// 손절 체크
if MarketPosition != 0 Then {
CurrentPL = NetProfit - EntryNetProfit;
if PriceScale > 0 Then
CurrentPL = (NetProfit - EntryNetProfit) / PriceScale;
if PositionStopLoss > 0 and CurrentPL <= -PositionStopLoss Then {
if MarketPosition == 1 Then
ExitLong("Stop_L");
if MarketPosition == -1 Then
ExitShort("Stop_S");
}
}**추가 정보:** - 60분봉 차트 사용 중 - Buy/Sell은 OnClose로 진입 - ShowDebug로 확인해보니 EntryNetProfit 값이 0으로 나옴 (또는 확인 못함)**전체 코드 흐름:** 1. 신호 발생 → Buy/Sell 명령 2. 포지션 진입 감지 → EntryNetProfit 기록 3. 매 봉마다 손절 체크질문인데요.MarketPosition이 0에서 1(또는 -1)로 변경되는 시점은 정확히 언제인가요?포지션 진입 시점의 NetProfit을 기록하려면 어떻게 해야 하나요?혹시 EntryPrice를 사용해서 손익을 계산해야 하나요?위 코드에서 어떤 부분이 잘못되었는지 알려주시면 감사하겠습니다!추운데 몸 조심하고 건강하세요! 감사합니다!
2025-11-18
319
글번호 228189
답변완료
키움수식 변환_기준선매수
항상 감사드립니다 아래키움식을 변환및 주석을 부탁드립니다 1.키움식 a=(highest(high,midPeriod)+lowest(low,midPeriod))/2; shift(crossup(c,a),-1) midperiod:26 2.시스템식 3.종목검색식 4.강조 감사합니다
2025-11-18
136
글번호 228188
답변완료
검색식 부탁드립니다
키움에서 조건검색식으로 쓰고있는건데 예스트레이더에서 검색식으로 쓸수있게 부탁드립니다^^감사합니다^^
2025-11-18
124
글번호 228182
답변완료
수식문의드립니다
25년11월17일자 228111관련 추가 문의입니다1. 조건b 가 끝나고 5봉이후인데... if 조건b == true Then ai = Index;가 맞나요? ai(Nan)의 의미가 무엇인지? if 조건b[1] == true and 조건b == false Then ai = Index;로 되어야 하지 않나요? 그리고 이후에 if 조건a == true and Index >= ai+5 and C > O and C[1] < O[1] ~~~~처럼 조건a상태에서 양봉이 발생해야하니이런식으로 되어야 하지 않나요?2. 제일 궁금한 것인데 <만약 위 양봉의 상승율조건을 초과하는 양봉이거나 전일양봉후 양봉인 경우에는 이후 처음 출현하는 음봉후 양봉에 검색되어야 한다 음봉후 양봉발생시에 조건a상태가 유지되고 있어야 한다>내용으로 상승율이 초과나 양봉후양봉인 경우에는 그 이후 조건a상태에서 음봉후 양봉에서 신호가 발생하는 수식을 만들기가 어려워 문의 드린 것입니다추가 검토 부탁드립니다
2025-11-18
394
글번호 228178
답변완료
문의
국내선물 데이트레이딩용 청산수식 부탁드립니다. 5분봉 기준입니다.sell 진입 후 data2 변동성지수를 청산용으로 사용 - 조건1 : 양봉이 3연속 발생할 것 - 조건2 : 3연속 봉들의 몸통크기(c-o)는 모두 0.20 이상일 것 ex) 양봉1(0.45),양봉2(0.25),양봉3(0.60) - exitshort : 조건1과 조건2를 만족했다면 그 이후 몸통크기가 0.05 이하인 봉(양봉이든 음봉이든 상관없음) 발생할 것항상 고맙습니다.
2025-11-18
145
글번호 228167
답변완료
지표수식과 종목검색식 부탁드립니다
키움에서 쓰는 지표수식을 예스트레이더 수식과 검색식 부탁드립니다EMA75=EAVG(C,75);ATR49=MAX(H-L,MAX(ABS(H-REF(C,1)),ABS(L-REF(C,1))));VWAP75=SUM(C*V,75)/SUM(V,75);SIGNAL=EAVG((EMA75-ATR49*0.8)*0.4+VWAP75*0.6,3);
2025-11-18
176
글번호 228162
답변완료
수식질문드립니다.
저는 시가후에 지정해 놓은 숫자를 돌파하면 매수하는 수식을 만들었습니다. 손절은 SetStopLoss 으로 그 가격에 도달하면 바로 손절을 하도록 테스트를 할수 있는데진입은 봉이 완성되어야만 그가격에 진입이 되어서 "돌파" 보다 위에서 진입가격이 형성되거나 봉완성전에 가격이 다시 내려오면 진입신호가 안나오게 됩니다. 그가격을 지나가기만 하면 돌파 가격에 바로 포지션을 잡는것으로 가정하는 수식을 작성하고 싶은데 방법이 없는지 문의드립니다.#매수진입if crossup(c,dayopen+돌파) && MarketPosition==0 && count < 횟수 then buy("b");SetStopLoss(손절*PriceScale,PointStop);
2025-11-18
135
글번호 228153
답변완료
재질문 드립니다.
안녕하세요.지난 주에 주신 답변 내용으로 시도를 해봤는데, 원하는 결과가 나오지 않고 있습니다.또한, 매수신호인데 "if MarketPosition <= 0 Then"이라는 조건식이 맞는건지 확인부탁드리고 싶습니다.감사합니다아래는 제 질문과 답변에 주신 내용입니다.------------------------------------------저는 가장 기본적인 청산식으로 아래와 같은 함수를 사용합니다. Buy("매수", OnClose, Def, 3); ExitLong("매수익절1", Atlimit, EntryPrice + PriceScale*10, "매수", 1, 1); 그런데 이 청산 방식은 신호 발생한 캔들 바로 다음 캔들 에서는 실행되지 않고, 2번째 캔들 이후부터 실행이 됩니다. 2번째가 아닌 1번째 캔들에서 실행되게 할 수 있는지 여쭤봅니다.감사합니다------------------------------------------안녕하세요예스스탁입니다.진입이 onclose이므로EntryPrice나 MarketPosition 그다음봉 완성시부터 사용이 가능합니다.아래와 같이 처리하시면진입신호 다음봉에서 청산신호를 내실수 있습니다if MarketPosition <= 0 Then ExitLong("매수익절1.", Atlimit,C + PriceScale*10, "매수", 1, 1); Else ExitLong("매수익절1", Atlimit, EntryPrice + PriceScale*10, "매수", 1, 1); 즐거운 하루되세요
2025-11-18
119
글번호 228152
답변완료
부탁드립니다
input : p(10); var : A(Nan),B(Nan),ph(Nan),tx(0); if Highest(H,p)[1]< H Then { A = H; B = 0; } Else { B = B+1; } if B == p and A > H Then { PH = H[p]; } Plot1(ph,"ph"); FixPlotShift(1,2); if ph[2] != ph[3] Then { tx = Text_new(sDate,sTime,ph,NumToStr(ph,2)); Text_SetStyle(tx,2,1); } 위의것을 지수이평으로 부탁드립니다
2025-11-18
112
글번호 228151