커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7696
글번호 230811
답변완료
부탁드립니다.
내용이 좀 길겠군요. ^^
매수조건 : 일목균형표 --- 기준선보다 전환선이 위에 위치 (골든)하고, 종가기준
전환선 위에 위치, 전환선 상승시,
종가기준 선행스펜2위에 위치,
기준선 상승 추세(전에 한번이라도 나오면 추세로 인정)
기준선 요거 안되면 포기
ADX ----- 18이상 그리고 상승추세, 50아래(ADX<50)
S-ROC ---- 기준선 100위 그리고 골든크로스, 상승추세
매수청산 : 일목균형표 전환선을 종가기준 하락 돌파시 또는 S-ROC 하락시
또는 ADX 55이상
매도조건 : 일목균형표 --- 기준선보다 전환선이 아래에 위치 (데드)하고, 종가기준
전환선 아래에 위치, 전환선 하락시,
종가기준 선행스펜2 아래에 위치,
기준선 하락 추세(전에 한번이라도 나오면 추세로 인정)
기준선 요거 안되면 포기
ADX ----- 18이상 그리고 상승추세,50아래(ADX<50)
S-ROC ---- 기준선 100아래 그리고 데드크로스, 하락추세
매도청산 : 일목균형표 전환선을 종가기준 상승 돌파시 또는 S-ROC 상승시
여기선 ADX 뺍니다.
매수 매도 조건은 모두 AND이고 청산조건은 모두 OR입니다.
그리고 3시 3분 일괄 청산 이것도 부탁드립니다.
가능한지 모르겠는데 전날 매수 또는 매도 신호로 끝났는데 일괄 청산 후 다음날 시장가에 재매수가 가능한지 모르겠네요...
2011-11-11
384
글번호 44658
답변완료
Re : 문의드립니다
먼저 올려주신 답변 감사드리며 밑에 올린 질문에 재질의 드립니다.
답변대로 시뮬레이션 결과 세 가지 의문 사항이 있습니다!
먼저, print 출력문 가장 밑에 부분 보시면 같은 "분"에 print가 상당 수 중복되어
출력되는 문제입니다. 시스템 상의 문제인지 if문 등을 통해 한 번만 출력되게
수정가능한 수준인지 궁금합니다. 수정가능 하다면 수정식 부탁드립니다.
두 번째, 역시 print 출력문 2011-11-11로 시작되는 부분부터 보시면
진입시간,90500 으로 나오는 것이 2011-11-11 9:10:00에 출력됩니다.
마찮가지로 청산시간이 92000인데 출력은 9:25:00에 되고 있습니다.
이 차이가 왜 발생하는 것인지 궁금하고, 해결방안은 어떻게 되는지 알려주시길 바랍니다.
세 번째, 현재 간단한 시스템식이기 때문에 비교적 가격과 시간이 잘 맞는다고 보여집니다. 하지만 진입에 atstop 조건이 들어갔을 때 "2011-11-11 9:10:00" 과 같이 출력되는 시간과 "진입시간,90500" 과 같이 진입을 표시해 주는 시간 둘 모두 atstop으로 분,초 단위로 정교히 표시해 주는 것이 가능한 부분인지 궁금합니다.
==========================================================================
2011-11-10 14:05:00 ,진입가격,239.35,진입시간,133000,청산가격,239.85,청산시간,140000
2011-11-10 14:25:00 ,진입가격,240.50,진입시간,142000,청산가격,0.00,청산시간,0
2011-11-10 14:40:00 ,진입가격,240.50,진입시간,142000,청산가격,240.40,청산시간,143500
2011-11-10 14:50:00 ,진입가격,240.30,진입시간,144500,청산가격,0.00,청산시간,0
2011-11-10 15:10:00 ,진입가격,240.30,진입시간,144500,청산가격,239.75,청산시간,150500
2011-11-11 9:10:00 ,진입가격,238.25,진입시간,90500,청산가격,0.00,청산시간,0
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
2011-11-11 9:25:00 ,진입가격,238.25,진입시간,90500,청산가격,237.90,청산시간,92000
==========================================================================
안녕하세요
예스스탁입니다.
Input : shortPeriod(3), longPeriod(6);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
If MarketPosition == 0 and CrossUP(value1, value2) Then
{ buy(); }
If MarketPosition == 1 and CrossDown(value1, value2) Then
{ ExitLong(); }
if BarsSinceentry == 1 Then
Print("매매일지.csv",",진입가격,%.2f,진입시간,%.f,청산가격,%.2f,청산시간,%.f",EntryPrice,EntryTime,0,0);
if BarsSinceExit(1) == 1 Then
Print("매매일지.csv",",진입가격,%.2f,진입시간,%.f,청산가격,%.2f,청산시간,%.f",EntryPrice(1),EntryTime(1),ExitPrice(1),ExitTime(1));
아래 경로에 파일이 출력됩니다.
C:₩예스트레이더31₩YesLang
또한 Print함수는 시뮬레이션 차트에서는 동작하지 않습니다.
이용에 참고하시기 바랍니다.
즐거운 하루되세요
> 하얀마음흑구 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 매매일지를 print를 통해 관리하고 싶습니다.
Input : shortPeriod(3), longPeriod(6);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
If MarketPosition == 0 and CrossUP(value1, value2) Then
{ buy(); }
If MarketPosition == 1 and CrossDown(value1, value2) Then
{ExitLong(); }
위와 같은 수식에서 진입가, 진입시간, 청산가, 청산시간 네 가지를 print되게
하려고 하는데 어떻게 사용해야 할지 몰라 질문드립니다.
2011-11-11
356
글번호 44657
답변완료
수식부탁드려요!!
1,dayclose[1] 와 dayclose(1)의 차이점은요?
2,매수,매도 하루에 한번씩만 신호&& stoploss후 2봉내에는 신호나가지않도록 하는식요
항상감사드려요!!
2011-11-11
331
글번호 44656
답변완료
조건~~
수고하십니다~~
문의
1. 주봉상 양봉,음봉인 조건식
2. 틱챠트에서 틱60 이평선과 5분봉 5이평선이 둘다 상향, 하향인 조건식
부탁드립니다..
2011-11-11
326
글번호 44654
러블리 님에 의해서 삭제되었습니다.
2011-11-11
5
글번호 44652
답변완료
재문의 드립니다
저번 답변 감사드립니다.
그런데, 저번처럼 해도 처음에 손실난 거래 뒤로는 거래가 발생하지 않습니다.
그러니깐 저번에 말씀하신 대로 하면 첫거래가 손실이면 거래는 한번으로 끝나고,
수익거래 2번뒤에 손실이 나면 거래는 3번으로 끝나는 식입니다.
손실 난 거래뒤에 진입은 하지 않더라도, 진입을 했을때의 값을 기억하고 있다가,
이게 수익이면 다음거래에는 진입으라는 식으로 처리가 되는 식으로 말이죠,
그럼 답변 부탁드립니다.
2011-11-11
346
글번호 44651
답변완료
문의드림니다
문1) 다음 수식의 구조에 오류가 없는지요? 수식구조에 문제점이 없는지 면밀히 검토 부탁 드림니다 잘적용이 안되는것 같아서요
if MarketPosition == 1 Then{
if Condition1 == false and CrossDown(value1,value2) Then{
Condition1 = true;
}
if Condition1 == true and condition2==false and CrossDown(value1,value2) Then{
Condition2 = true;
}
If MarketPosition ==1 and Condition2
then {
exitlong("청산",Atmarket);
}
}
Else{
Condition1 = false;
Condition2 = false; }
문2)아래 수식 신호가 안나오는데 어디에 오류가 있는지요?
input : shortPeriod(12),longPeriod(26),Period(9);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1,Period);
value3 = countif(crossup(value1,value2),50);
if crossup(value1,value2) Then{
value5 = value1;
}
if MarketPosition == 1 Then{
if value3[BarsSinceEntry] >= 1 Then{
Condition1 == true;
var11 = value5[BarsSinceEntry];
}
If MarketPosition == 1
and Condition1 == true then {
exitlong("청산",Atmarket);
}
}
Else{
Condition1 = false;
}
2011-11-11
389
글번호 44650
답변완료
수식을 하나만 부탁드릴께요
그리 어려운 수식은 아닌것 같고요
차트를 10분봉을 기준으로할때 현재봉의 저가가 160분봉선에 닿거나 하향돌파하면
매수주문하라(160분봉+1호가에 매수주문하면 더 좋은데 그렇게는 안되죠?)
2011-11-11
445
글번호 44649
답변완료
일주일에 한번 매매하는 어떤 로직을 추가해야 하나요?
하루에 한번 매매하는 것과
7일에 한번 매매 하거나
5일에 한번 매매 하는 로직은 어떻게 구성해야 되나요?
2011-11-11
459
글번호 44648