커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7689
글번호 230811
답변완료
진입 및 청산 수식 부탁드립니다.
안녕하세요.
늘 친절한 답변에 감사드립니다.
1. 특정지표가 50을 상향돌파했을 때 매도진입하고 다음봉에 특정지표가 50을 하향돌파하면 매도청산하고 매수진입을 하지 않습니다.
(그리고 다음 봉이 아닌 매도진입봉 이후 세번째 봉까지 50을 하향돌파한 경우에 매도청산하고 매수진입을 하지않는 식도 알고싶습니다.)
매도진입 후 다음봉에 50을 하향돌파해 매도청산되지 않은 경우에만 반대로 매수진입해서 매수포지션만을 보유한 상태에서 다시 같은 지표가 50을 하향돌파했을 때 매수청산하는 식을 어떻게 작성해야 할까요?
그리고 매수진입에만 손절을 30핍 주고자 합니다.
2. 특정지표가 50을 상향돌파 했을 때 매도진입신호가 나오고 다시 그 지표가 50을 하향돌파했을 때 매도청산하고자 할 때
매도진입신호가 나왔을 때 바로 진입하지 않고
진입신호가 나온 후 10봉이 경과 후에도 매도청산신호가 나오지 않은 경우에(지표가 50을 하향돌파하지 않은 경우에)
10봉 경과 후에 매도진입하고 50을 하향돌파했을 때 매도청산하는 식은 어찌 될까요?
3. 반대로 매도진입신호가 나온 후 10봉 경과 후에도 매도청산신호로 매도청산되지 않은 경우에 10봉 경과 후에 반대로 매수진입하고 50을 하향돌파했을 때 매수청산하는 식은 어찌 될까요?
감사합니다.
2011-12-22
461
글번호 45978
mmer02 님에 의해서 삭제되었습니다.
2011-12-21
0
글번호 45976
답변완료
재문의 드립니다.
안녕하세요
예스스탁입니다.
if date >= date[1]+30 then
var1 = O;
if C > var1 and
C > ma(C,5) and ma(c,5) > ma(C,5)[1] and
C > ma(c,20) and ma(c,20) > ma(c,20)[1] Then
buy();
if !(C > var1) Or
!(C > ma(C,5) and ma(c,5) > ma(C,5)[1]) or
!(C > ma(c,20) and ma(c,20) > ma(c,20)[1]) Then
exitlong();
즐거운 하루되세요
위 식에서
if date >= date[1]+30 then
var1 = O;
date가 끝날짜를 나타낸다고 하는데 여기서 끝날짜는 월과일 중에 일을 나타낸다는건가요? 아니면 뭐를 나타내는건지요..
그리고 date >= date[1]+30 식은 어떻게 나온것인지 설명좀 부탁드립니다.
제 머리로는 도저히 이해가 안가서요.. 부탁좀 드립니다.
2011-12-21
478
글번호 45975
답변완료
수식부탁드려요
현재봉기준으로
이전의 20~50개봉중에서 atr 3 이상의 봉(시가대비종가) 발생하면 매수를
수식으로 바꾸어 주세요 감사합니다
2011-12-21
473
글번호 45973
답변완료
rci 시스템신호및 지표 만들어주세요
[사용자함수: RCI]
input : Period(Numeric);
Var : cnt(0),Nth(0),tempmax(0), tempindex(0), X1(0),RCI1(0);
Array : VALUE1[50](0),NTHVALUE[50](0);
for cnt = 0 to 49{
VALUE1[cnt] = C[cnt];
}
For Nth = 0 to Period-1 {
tempmax = -99999999;
For cnt = 0 to Period-1{
if VALUE1[cnt] > tempmax then{
tempmax = VALUE1[cnt];
tempIndex = cnt;
NTHVALUE[cnt] = Nth+1;
}
}
VALUE1[tempIndex] = -99999999;
}
X1 = 0;
for cnt = 0 to period-1{
X1 = X1+abs((cnt+1)-NTHVALUE[cnt])^2;
}
RCI = (1-(6*X1)/(period*(period^2-1)))*100;
[지표식 : RCI]
input : P1(9), P2(13), P3(18), P4(26);
plot1(RCI(P1));
plot2(RCI(P2));
plot3(RCI(P3));
plot4(RCI(P4));
PlotBaseLine1(80, "baseLine", gray);
PlotBaseLine2(-80, "baseLine", gray);
상기자료를 이용하려고 하는데
plot1(RCI(P1)); -> rci 함수만이 입력값을 가질수 있습니다
하고 오류가 발생합니다 해결부탁드림니다
* rci 지표 에서 9 > 13 > 18 이면 매수 신호
9 < 13 < 18 이면 매도 신호 나오게 시스템 신호 부탁드림
2011-12-21
1087
글번호 45971
답변완료
수식 부탁드립니다.
안녕하세요
안녕하세요.
아래 수식에 덧붙여서 수정부탁드립니다.
아래 매수 매도 진입조건은 금일 진입횟수 제한에서는 제외
매수진입 및 청산조건
1. 금일 7번째봉부터~33봉까지
(1) 데이타8 이 연속 3봉이 음봉이고 데이타9.10이 연속 3봉이 양봉이고
데이타2,3,4 중에 양봉이 1개이상(단 데이타2,3,4 중에 3봉연속 음봉이 2개이상이면
안됨)
이면 그 이후에 7봉이내에 선물이 5이평보다
크면 매수
(2) (현재 무포이거나 or 매도후 최고 수익이 진입가대비 1.1%이상이고)
and 데이타8 이 연속 3봉이 음봉이고 데이타9.10이 3봉동안 양봉이 총
4
개이고
(단 데이타2,3,4 중에 3봉연속 음봉이
2개이상이면 안됨) and (데이타2,3,4,가 모두 양봉이거나
or 데이타2,3,4 중에서 3봉연속 양봉이 1개이상이면)
그 이후에 7봉이내에 선물이
5이평보다 크면 매수
2. 금일 3봉부터 31봉까지는
매수후 현재 수익이 종가로 진입가 대비 0.85% 이상이고
현재 종가가 시초가*1.005 보다 크고 (데이타8이 시초가보다 크다+ 데이타9가 시초가보다
작다+
데이타10 이 시초가보다 작다+ 데이타7이 시초가보다
작다+ 데이타11이 시초가보다 작다= 이렇게 5조건중에 2개이상 만족하면 ) 그 이후
10봉이내에
c가 5이평보다 작으면 청산후
금일 모든매매종료
매도진입 및 청산조건
1. 금일 7번째봉부터~33봉까지
(1) 데이타8 이 연속 3봉이 양봉이고 데이타9.10이 연속 3봉이
음봉이고 데이타2,3,4 중에 음봉이 1개이상(단 데이타2,3,4 중에 3봉연속 양봉이
2개이상이면 안됨)이면
그 이후에 7봉이내에 선물이 5이평보다
작으면 매도
(2) (현재 무포이거나 or 매수후 최고 수익이 진입가대비 1.1%이상이고)
and 데이타8 이 연속 3봉이 양봉이고 데이타9.10이 3봉동안 음봉이 총
4
개이고
(단 데이타2,3,4 중에
3봉연속 양봉이 2개이상이면 안됨) and (데이타2,3,4,가 모두 음봉이거나
or 데이타2,3,4 중에서 3봉연속 음봉이 1개이상이면)
그 이후에 7봉이내에 선물이
5이평보다 작으면 매도
2. 금일 3봉부터 31봉까지는
매도후 현재 수익이 종가로 진입가 대비 0.85% 이상이고
현재 종가가 시초가*0.9955 보다 작고 (데이타8이 시초가보다 작다+ 데이타9가 시초가보다
크다+
데이타10 이 시초가보다 크다+ 데이타7이 시초가보다
크다+ 데이타11이 시초가보다 크다= 이렇게 5조건중에 2개이상 만족하면 ) 그 이후
10봉이내에 c가 5이평보다
크면 청산후
금일 모든매매종료
input : 하루이익1(3),하루이익2(4);
var : PLR(0),XCommission(0,data1),XSlippage(0,data1),OpenPL(0,data1),dayPL(0,data1),count(0,data1),aa(0,data1);
var : mav1(0,data1),mav2(0,data1),mav3(0,data1),mav4(0,data1),cond(false,data1);
#당일누적손익계산 시작
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for aa = 0 to 10{
if sdate == EntryDate(aa) Then
count = count+1;
if aa > 0 and sdate == EntryDate(aa) Then
PLR = PLR+PositionProfit(aa);
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
cond = ExitDate(1) == sdate and (IsExitName("BP1",1) or IsExitName("BP2",1) or IsExitName("SP1",1) or IsExitName("SP2",1));
mav1 = data1(ma(c,5));
mav2 = data1(ma(c,10));
mav3 = data1(ma(c,20));
mav4 = data1(ma(c,60));
if data1(dayindex+1 >= 1 and dayindex+1 <= 30) and count < 3 and cond == false then{
if C < dayopen*1.004 And C > max(mav1,mav2,mav3,mav4) Then{
if data2(iff(C>O or (C==O and C>=C[1]),1,0))+
data3(iff(C>O or (C==O and C>=C[1]),1,0))+
data4(iff(C>O or (C==O and C>=C[1]),1,0))+
data5(iff(C>O or (C==O and C>=C[1]),1,0))+
data6(iff(C>O or (C==O and C>=C[1]),1,0))+
data7(iff(C>O or (C==O and C>=C[1]),1,0)) >= 4 Then
buy("b2_1");
}
if C > dayopen*0.996 And C < Min(mav1,mav2,mav3,mav4) Then{
if data2(iff(C<O or (C==O and C<C[1]),1,0))+
data3(iff(C<O or (C==O and C<C[1]),1,0))+
data4(iff(C<O or (C==O and C<C[1]),1,0))+
data5(iff(C<O or (C==O and C<C[1]),1,0))+
data6(iff(C<O or (C==O and C<C[1]),1,0))+
data7(iff(C<O or (C==O and C<C[1]),1,0)) >= 4 Then
Sell("s2_1");
}
If MarketPosition == 1 Then{
if data1(dayindex+1) >= 40 and C < mav2 Then
exitlong("bx4");
}
If MarketPosition == -1 Then{
if data1(dayindex+1) >= 40 and C > mav2 Then
ExitShort("sx4");
}
if MarketPosition == 1 Then{
if data1(dayindex+1 < 20) Then
ExitLong("BP1",AtLimit,EntryPrice+((하루이익1)-(PLR)));
if data1(dayindex+1 >= 20) Then
ExitLong("BP2",AtLimit,EntryPrice+((하루이익2)-(PLR)));
}
if MarketPosition == -1 Then{
if data1(dayindex+1 < 20) Then
ExitShort("SP1",AtLimit,EntryPrice+(-(하루이익1)+(PLR)));
if data1(dayindex+1 >= 20) Then
ExitShort("SP2",AtLimit,EntryPrice+(-(하루이익2)+(PLR)));
}
2011-12-22
500
글번호 45970
답변완료
임의진입금액을 기준으로 청산하는 식 부탁드립니다
수고 많으십니다
야간 CME선물차트에서 임의로 매수또는 매도한 금액을 기준으로
일정수익(1포인트이상)후 트레일링 스톱(0.8포인트 하락/상승) 큰수익 (3포이상)시(0.3포인트상승 하락)시청산과
손절청산(1.5포인트)을 넣고
위식에서 수익폭과 손절폭등을 변수화 해서 넣어주시구요
종가부분 (10분봉일 경우 4시 40분 또는 50분)에 청산하고 싶은데
수식을 부탁드립니다
청산후 추가 매매는 당현히 무포이니 없겠죠
수고 하시구요 부탁드립니다
2011-12-21
443
글번호 45969
답변완료
타종목의 전일 저점, 고점 표시 문의 드립니다.
타종목을 여러 개 불러와서 사용하고 있는데요..
다음과 같이 타종목의 전일 고점, 전일 저점을 표기하는데 나타나지가 않습니다.
뭐가 잘못되었는지요?
plot1(data2(HighD(1)),"전고",black);
plot2(data2(LowD(1)),"전저",black);
그리고 HighD(1)과 HighD[1] 처럼 () 와 []는 같은 뜻인지요?
미리 감사의 말씀을 드립니다.
2011-12-21
495
글번호 45968
답변완료
5 이평과 20 이평사이 색넣기
이평과 이평사이 색을 넣을수있도록 방법부탁합니다.
2011-12-21
460
글번호 45963