커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6520
글번호 230811
답변완료
지표 이용방법 문의 드립니다.
안녕하세요.
새로운 지표를 만들때 이동평균선과 같이 차트에 바로 나타날 수 있는 방법이 무엇인지요.
지표적용을 누르면 스토캐스틱이 나타나는 것처럼 지수 하단에 나타납니다.
이동평균선 같이 지수가 나타난 차트에 바로 보일 수 있길 원합니다.
전 이제까지 이동평균선식을 지우고 제가 만든 지표를 덮어씌워서 사용중입니다.
2015-11-13
128
글번호 92366
답변완료
시스템식 문의드립니다.
안녕하세요
에르메스입니다.
수식문의드립니다.
1.
현물 1분봉 기준
if 현재봉이 조건 충족시 then
다음날 시초가를 기준으로 트레일링스탑 시작.. 갱신되는 고가(기준가) 추적하다가 5%하락시 전량매도.
못팔면 그 다음날도 똑같이 장시작가 기준으로 트레일링스탑 시작 (위랑 같은 조건)
///////
봉 완성후 다음날 부터는
가격 따라가는거니까 봉완성전이어도 가격하락하면 바로 exitlong 되는것이 맞나요?
2.
1번 질문처럼 본완성후 다음날 부터 트레일링스탑 하고 있는데.(시장가 매도설정)
그날이 만약 단일가매매날이라서.. 하락 조건 충족시
시장가로 매도하라고 주문 나가면
실제로 매도가 어떻게 이루어 지는지 궁금합니다.
3. 같은 시스템 수식으로 종목검색을 하는데 (일봉) 차트에서는 나오는 매수신호 날짜에 신호검색에서 검색이 안되네요. 기준봉 0부터 10까지 다해봤는데 하나도 안나옵니다. 어떻게 해야 하나요?
4. 매수신호가 뜨는 봉에 매도신호가 안뜨게 할려면 어떻게 해야하나요? (사진4번)
감사합니다.
2015-11-13
149
글번호 92365
답변완료
수식요청 드립니다.
안녕하세요.
수식요청 드립니다.
오버형 시스템의 피라미딩 진입, 피라미딩 진입에만 적용되는 수익보존청산,
피라미딩 진입에만 적용되는 손절청산 수식 요청드립니다.
1. 기존시스템 수식 매수진입 -> +0.2PT 상승시마다 피라미딩 진입 -> 피라미딩 진입 손절청산 1.0PT
피라미딩진입 합계수익 3.0PT 발생 후부터 5이평이 10이평을 하향돌파시 수익보존청산
2. 기존시스템 수식 매도진입 -> -0.2PT 하락시마다 피라미딩 진입 -> 피라미딩 진입 손절청산 1.0PT
피라미딩진입 합계수익 3.0PT 발생 후부터 5이평이 10이평을 상향돌파시 수익보존청산
1. 2. 피라미팅 시스템은 기존 시스템 신호에 추가로 독립적으로 진입 청산되고 기존시스템
신호의 진행을 방해하지 않도록 피라미딩 진입명 수식으로 가능한지요, 만약 기존 시스템이
반대신호로 스위칭 할경우 미청산된 피라미딩은 청산되도록 요청 드립이다.
2015-11-13
124
글번호 92364
답변완료
문의드립니다.
안녕하세요.
5분봉에서 양봉이면서 거래량이 500이상일때, 그 캔들의 고가와 저가에 수령라인이 그려지고,
이후 또 위 조건을 만족하는 캔들이 생기면 그 캔들의 고가와 저가에 수평라인이 그려지도록
하는 지표 수식좀 부탁드립니다.
감사합니다.
2015-11-12
144
글번호 92363
답변완료
지표요청
* 항상 많은 도움 고맙습니다.
* 요청사항 : 타주기 이평식 구하기
* 2분봉 차트에 10분, 30분봉, 60분봉, 120분봉, 240분봉, 일봉
이평선을 표시하고 싶습니다.
* 매수식도 가능한가요?
→ 10분봉이 240분봉 crossup 매수
* 커뮤니티에 수십게 있는것 돌려봐도 안되네요....ㅠ.ㅠ~~~
* 좋은 주말 되십시요^^
2015-11-12
166
글번호 92362
답변완료
시스템 수식 수정 부탁드립니다.
아래의 수식 중 매도 수식 수정 부탁드립니다.
매도 조건
1. 목표수익률 도달시 보유수량의 50% 매도
2. 목표수익률 돌파시 -> 5% 단위로 수익률 체크
- 목표수익률 +5%를 도달하지 못하고 하락시 목표수익률에서 매도
- 목표수익률 +5% 돌파시 홀딩
- 목표수익률 +10%를 도달하지 못하고 하락시 목표수익률 +5%에서 매도
- 목표수익률 +10% 돌파시 홀딩
- 목표수익률 +15%를 도달하지 못하고 하락시 목표수익률 +10%에서 매도
- 목표수익률 +15% 돌파시 홀딩
- 계속 5% 단위로 체크
- 아 래 -
input : 매수진입일전일(20151105);
input : 매수가1(10000),매수가2(9000),손절가(8000);
input : 목표수익(10);
if sdate >= 매수진입일전일 Then{
if NextBarOpen >= 매수가1 Then
Buy("매수11",atlimit,매수가1);
Else
Buy("매수12",AtStop,매수가1);
if NextBarOpen >= 매수가2 Then
Buy("매수21",atlimit,매수가2);
Else
Buy("매수22",AtStop,매수가2);
}
if MarketPosition == 1 Then
Exitlong("손절",AtStop,손절가);
SetStopProfittarget(목표수익,PercentStop);
2015-11-12
125
글번호 92361
답변완료
시스템식 중 궁금한 사항이 있습니다.
안녕하세요..
질문1) 아래 전체시스템식 중 다음 일부분에서 궁금한 사항이 있습니다.
----------------------------------------------------------------
# 전일기준 일봉 120일이평
ma1 = cum1/일봉이평기간;
# 전전일기준 일봉 120일이평
ma2 = cum2/일봉이평기간;
#이평하락이면
#기간은 기존Period값+이평보정계수
#%는 기존 매수1차값에 + 이평보정계수
if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{
Period = Period + 이평보정계수;
매수1차 = 매수1차 + 이평보정계수;
}
----------------------------------------------------------------
위 식중 일부인
if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{
Period = Period + 이평보정계수;
매수1차 = 매수1차 + 이평보정계수;
}
에서 ma1 < ma2는 전일 120이평값이 전전일 120이평값보다 작으면 즉, 120이평선이 우하향하면
이평보정계수를 써서 기본 매수1차값보다 이평보정계수만큼 낮게 매수하기 위한 식으로 이것만으로도 충분한데 DayClose(일봉이평기간+1) > 0 식을 더 추가한 이유를 모르겠습니다.
DayClose(일봉이평기간+1) > 0 의 의미와 이식을 and 해서 추가한 이유를 부탁드립니다.
질문2) 예전에 보내주신 식에서는 등락율이 다음과 같이 표현해서 보내주셨는데,
#data2의 data2N일전 대비 등락율
D2rate = data2((C*CloseD(data2N))/CloseD(data2N)*100);
이식대로 적용해 보니 신호가 잡히지를 않아, 다음과 같이 수정했는데요, (*를 -로 수정)
#data2의 data2N일전 대비 등락율
D2rate = data2((C-CloseD(data2N))/CloseD(data2N)*100);
신호가 제대로 나타납니다. 제가 제대로 수정했는지 모르겠네요.
전체 시스템식은 다음과 같습니다.
--------------------------------------------------------------
input : 전략식시작일자(20150105), 전략식시작시간(090000), 전략총매수금액(3000);
input : data2N(1),Data2전일대비등락률(-3);
input : 전략식종료일자(20151231);
input : 갭하락(5), 시장보정계수(0),일봉이평기간(120),이평보정계수(0), 지수보정계수(0);
input : P(5), 매수위치1차(5), 매수위치2차(5), 매수위치3차(10);
input : 매수위치보정(1);
input : 매도위치1차(5), 매도위치2차(10);
input : 매수비중1차(30), 매수비중2차(35), 매수비중3차(35);
input : 매도비중1차(50), 매도비중2차(50);
input : 전략식진입횟수(100), 타점보유일수(5);
var : sum(0,data1),mav(0,data1),cnt(0,data1),eup(0,data1),edn(0,data1);
var : Didx(0,data1),LatestEntryDidx(0,data1),Ecnt(0,data1);
var : TimeCond(false,data1),Xcond1(false,data1),Xcond2(false,data1),Loss(0,data1),LatestEntrylow(0,data1);
var : Period(0,data1),매수1차(0,data1);
var : cum1(0,data1),cum2(0,data1),ma1(0,data1),ma2(0,data1),ma3(0,data1);
var : D2rate(0,data2);
# 일자수 계산
if date != date[1] Then
Didx = Didx+1;
# 일봉 120이평 계산(전일기준,전전일기준)
cum1 = 0;
cum2 = 0;
for cnt = 1 to 일봉이평기간{
cum1 = cum1+DayClose(cnt);
cum2 = cum2+DayClose(cnt+1);
}
# 전일기준 일봉 120일이평
ma1 = cum1/일봉이평기간;
# 전전일기준 일봉 120일이평
ma2 = cum2/일봉이평기간;
#기본값은 기간은 P, %는 매수위치1차
Period = P;
매수1차 = 매수위치1차;
#갭하락이면
#기간은 기존Period값+시장보정계수
#%는 기존 매수1차값에 + 시장보정계수
if dayopen < DayClose(1)*(1-갭하락/100) Then{
Period = Period + 시장보정계수;
매수1차 = 매수1차 + 시장보정계수;
}
#이평하락이면
#기간은 기존Period값+이평보정계수
#%는 기존 매수1차값에 + 이평보정계수
if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{
Period = Period + 이평보정계수;
매수1차 = 매수1차 + 이평보정계수;
}
#data2의 data2N일전 대비 등락율
D2rate = data2((C-CloseD(data2N))/CloseD(data2N)*100);
#지수폭락이면
#기간은 기존Period값+지수보정계수
#%는 기존 매수1차값에 + 지수보정계수
if D2rate <= Data2전일대비등락률 Then{
Period = Period + 지수보정계수;
매수1차 = 매수1차 + 지수보정계수;
}
#당일포함 일봉 Period개의 종가를 누적
sum = 0;
for cnt = 0 to Period-1{
sum = sum+DayClose(cnt);
}
#누적값을 Period로 나누어 평균값 산출
mav = sum/Period;
#상단계산
Eup = mav+mav*(매수1차/100);
#하단계산
Edn = mav-mav*(매수1차/100);
#지정일 지정시간이 되면 TimeCond는 True(그전에는 false)
if sdate == 전략식시작일자 and (stime == 전략식시작시간 or (stime > 전략식시작시간 and stime[1] < 전략식시작시간 )) then
TimeCond = true;
if sdate > 전략식종료일자 Then
TimeCond = false;
#TimeCond가 True가 된 후
if TimeCond == true then{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "1차매수" Then
Ecnt = Ecnt+1;
#무포지션 상태에서 매수위치1차에 도달하면 매수
if MarketPosition == 0 and Ecnt < 전략식진입횟수 and stime < 144200 Then
buy("1차매수",atlimit,Edn*(1+매수위치보정/100),Floor((전략총매수금액*10000/c)*(매수비중1차/100)));
#첫매수이후
if MarketPosition == 1 Then{
#추가진입이 발생하면 1차매도가 다시 발생할수 있도록 false로 초기화
if CurrentContracts > CurrentContracts[1] Then
Xcond1 = false;
#최근 진입시점의 일자수 저장
if CurrentContracts > CurrentContracts[1] Then{
LatestEntryDidx = Didx;
LatestEntrylow = L;
}
#1차매수 발생 후 매수위치2차에 도달하면 매수
if MaxEntries == 1 and stime < 144200 Then
buy("2차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략총매수금액*10000/c)*(매수비중2차/100)));
#1차매수 발생 후 매수위치3차에 도달하면 매수
if MaxEntries == 2 and stime < 144200 Then
buy("3차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략총매수금액*10000/c)*(매수비중3차/100)));
#1차매도가 한번 발생하면 더이상 발생못하도록 Xcond1은 true
if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "1차매도") then
Xcond1 = true;
#2차매도가 한번 발생하면 더이상 발생못하도록 Xcond2는 true
if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "2차매도") then
Xcond2 = true;
#Xcond1이 false일때
#진입이후 최저가에서 매도위치1차 만큼 상승하면 일부 청산
if Xcond1 == false and stime < 144200 Then
exitlong("1차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치1차/100),"",Floor(MaxContracts*(매도비중1차/100)),1);
#Xcond2가 false일
#진입이후 최저가에서 매도위치2차 만큼 상승하면 전량청산
if Xcond2 == false and stime < 144200 Then
exitlong("2차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치2차/100));
#최근 진입후 3일이상 경과(현재 일자수가 최근진입시점의 일자수보다 3이상증가)
if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then{
#최근 진입이후 3일되었을때의 최근진입일 포함3일 최저가 계산
if date != date[1] and Didx == LatestEntryDidx[BarsSinceEntry]+3 Then{
Loss = daylow(1);
for cnt = 1 to (타점보유일수-1) {
if daylow(cnt) < Loss Then
Loss = daylow(cnt);
}
}
#Loss값 이하로 가격하락하면 전량 청산
exitlong("손절",AtStop,Loss);
}
#최종 매수일 포함 5일경과되면 다음날 시가에 매도
if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{
exitlong("익절2",AtMarket);
}
# 1차매도가 발생한 상황
# 가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산
# if L < LatestEntrylow and Xcond1 == false Then
# LatestEntrylow = L;
# if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then{
# exitlong("익절1",AtStop,LatestEntrylow);
# }
}
else{ #매수포지션이 아니면 false로 초기화
Xcond1 = false;
Xcond2 = false;
}
}
2015-11-12
154
글번호 92360
답변완료
재문의드림니다.
얀녕하세요..글번호 44982 에서 5번째. 중심라인수식이 빠져네요.
부탁드림니다.
5.전주 중심가격라인(고점+저점)/2
수고하세요....꾸벅
2015-11-12
134
글번호 92359
답변완료
질문드립니다.
안녕하세요.
항상 수고 많으십니다.
질문입니다. ------------------------------
혹시, 시스템식을 USB에 저장해서 그대로 사용할 수 있는 방법이 있는지
있다면, 그 방법을 알고 싶습니다.
감사합니다.
2015-11-12
137
글번호 92358