커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4372
글번호 230811
답변완료
시스템 식 정의한대로 익절이 되지 않는 이유와 해결방법 문의
시스템식으로 정의한대로
진입 'updown-sell-01' (익절 정의 : +0.07 / 손절 : -0.19)이
익절이 되지 않고 '매도손절1'이 발생한 이유와 해결방법 문의입니다.
해당 식이 적용되어 진입이 완료 된 후
익절, 손절에 대한 시스템 정의식 대로 진행되지 않았습니다.
그 이유와 해결책을 부탁드립니다.
2017-06-12
146
글번호 110319
답변완료
문의
LS=LOWESTSINCE(1,CROSSDOWN(SP1,SP2),SP1);
HS=HIGHESTSiNCE(1,CROSSUP(SP1,SP2),SP1);
키음으로 표현된것입니다
예스로 변환부탁드릴게요
2017-06-11
116
글번호 110317
답변완료
수식 부탁드립니다.
주식 매매 일봉에서
매수식
매수1: 스토캐스티K 선이 80% 돌파시 1천만원매수
매수2: 20일최저가 때 1천만원 매수
매수3: 25일최저가 때 1천만원 매수
매도식
30일최고가 돌파시 보유수량의 절반매도
40일최고가 돌파시 전량매도
10%손실시 손절매
30% 수익발생시 매도
최종매수일로 부터 30일 경과시 보유물량 전량 매도
2017-06-11
112
글번호 110316
답변완료
문의드립니다
항상 감사드립니다.
한개의 시스템을 만들어서 여러종목에 적용할 경우....
매수종목의 매수량 및 수익율 등을 고려하여 시스템 거래할때는 잔고조회때문에 종목코드를 각각입력한 시스템을 종목갯수만큼 만들어서 사용해야하는 저의 개인적인 불편함이 있습니다.
그래서...
input: "종목코드" 와 같이 사용할 수 있으면 종목코드를 시스템을 챠트에 적용할때 입력해서 사용할 수 있으므로 1개의 시스템으로 여러종목에 손쉽게 적용할 수 있을것 같습니다.
그런데 input에는 "문자열"을 사용할 수가 없는것 같은데 혹시 해결할 수 있는 다른방법이 있겠습니까?
2017-06-11
107
글번호 110315
답변완료
문의드립니다.
주식 종목별 프로그램 매수 현황을 차트에 나타낼 수 있나요???
2017-06-11
113
글번호 110314
답변완료
수정바랍니다.
안녕하세요.
아래수식에서 타주기 이평 하나더 (3과5이평)추가해주시고
3분차트에서 타주기3이평 5이평이 정배열이고 60분종가가 60분타주기5이평 위에 있으면 60분봉 새로운봉시작시 매수
타주기3이평 5이평이 역배열이고 60분종가가 60분타주기5이평 아래 있으면 60분봉 새로운봉시작시 매도 매매시간은 17시--새벽02시 까지입니다.
input : 분간격(60),P(5);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum(0),mav(0);
Array : CC[100](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = Bdate;
}
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
if D1 > 0 then{
TF = TM%분간격;
if Bdate != Bdate or (Bdate == Bdate and TF < TF[1]) Then{
for cnt = 1 to 99{
CC[cnt] = CC[cnt-1][1];
}
if C[1] > mav[1] and mav[1] > 0 and (stime >= 170000 or stime < 020000) Then
buy();
if C[1] < mav[1] and mav[1] < 0 and (stime >= 170000 or stime < 020000) Then
sell();
}
CC[0] = C;
if CC[P] > 0 then{
sum = 0;
for cnt = 0 to P-1{
sum = sum + CC[cnt];
}
mav = sum/P;
}
}
if MarketPosition == 1 Then{
ExitLong("bp",atlimit,EntryPrice+PriceScale*30);
ExitLong("bl",AtStop,EntryPrice-PriceScale*15);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*28 Then
ExitLong("btr",AtStop,highest(H,BarsSinceEntry)-PriceScale*24);
}
if MarketPosition == -1 Then{
ExitShort("sp",atlimit,EntryPrice-PriceScale*30);
ExitShort("sl",AtStop,EntryPrice+PriceScale*15);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*28 Then
ExitShort("str",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*24);
}
SetStopProfittarget(PriceScale*30,PointStop);
SetStopLoss(PriceScale*15,PointStop);
수고하십시요.
2017-06-11
117
글번호 110313
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
해외선물 오일 30분봉의 경우 입니다.
예1) 오일 50.00에 매수 포지션 진입
→ 49.89까지 하락(11틱 하락)
→ 49.89에서 청산
예2) 오일 50.00에 매수 포지션 진입
→ 49.90까지 하락(49.89까지 하락하면 청산)
→ 50.30까지 상승 → 다시 50.10까지 하락하면
→ 50.10에서 청산
예3) 오일 50.00에 매수 포지션 진입
→ 50.30까지 상승 → 다시 50.10까지 하락하면
→ 50.10에서 청산
설명) 위 3가지 예처럼 포지션 진입이후 손실이 -10틱까지는 청산되지 않고,
수익이 +30틱 이상까지 갔을 경우만 진입값 +10틱에서 청산하는 시스템식
부탁드립니다.
2017-06-11
123
글번호 110312
답변완료
cme 야간장 시간오류
고쳐주신 수식에서
1번과 3번은 cme시간적용이 정확합니다.
그런데
2번째 수식(자정 00시 ~ 새벽 3시45분)에서 오류가 있습니다.
대부분 위 시간대로 거래하는데 반복적으로 월요일과 가끔 다른 날에도
start time이 당겨지는 18시 이후 시간대가 포함되는 거래를 합니다 _ 그림1참조
자정부터 하는 거래이므로 월요일 오후는 거래를 안해야 합니다.
오류일
6월 7일 수요일
5월22일 월요일
5월15일 월요일
5월10일 수요일
5월 8일 수요일
5월 4일 목요일
4월24일 월요일
4월17일 월요일
살펴주세요.
****************************
안녕하세요
예스스탁입니다.
종료시간에 청산되게 추가해 드립니다.
강제청산 당일청산은 사용하시면 안됩니다.
당일청산은 당일 청산후 진입을 막기때문에 새벽에 청산하면
그날 밤 0시까지 진입을 하지 못하게 됩니다.
야간장과 같이 거래에서는 당일청산은 사용하면 안되고
if문으로 시간을 지정해 청산되게 하셔야 합니다.
1.
input : 당일최대진입횟수(5),시작시간(180000),종료시간(0);
var : C2(0,data1),T1(0,data1),entry(0,data1);
var : Tcond(False,data1);
if 시작시간 == 0 and date != date[1] Then{
tcond = true;
T1 = TotalTrades;
}
if 시작시간 > 0 and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) Then{
tcond = true;
T1 = TotalTrades;
}
if 종료시간 == 0 and date != date[1] Then{
tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
if 종료시간 > 0 and (stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간)) Then{
tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
C2 = data2(C);
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
if Tcond == true then{
if entry < 당일최대진입횟수 and data2(Bdate == Bdate[1] and HighD(0) > HighD(0)[1] and HighD(0)-LowD(0) >= 0.55) Then{
buy("b");
}
if entry < 당일최대진입횟수 and data2(Bdate == Bdate[1] and Lowd(0) < LowD(0)[1] and HighD(0)-LowD(0) >= 0.65) Then{
sell("s");
}
}
2
input : 당일최대진입횟수(5),시작시간(0),종료시간(034500);
var : C2(0,data1),T1(0,data1),entry(0,data1);
var : Tcond(False,data1);
if 시작시간 == 0 and date != date[1] Then{
tcond = true;
T1 = TotalTrades;
}
if 시작시간 > 0 and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) Then{
tcond = true;
T1 = TotalTrades;
}
if 종료시간 == 0 and date != date[1] Then{
tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
if 종료시간 > 0 and (stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간)) Then{
tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
C2 = data2(C);
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
if Tcond == true then{
if entry < 당일최대진입횟수 and data2(Bdate == Bdate[1] and HighD(0) > HighD(0)[1] and HighD(0)-LowD(0) >= 0.55) Then{
buy("b");
}
if entry < 당일최대진입횟수 and data2(Bdate == Bdate[1] and Lowd(0) < LowD(0)[1] and HighD(0)-LowD(0) >= 0.65) Then{
sell("s");
}
}
3
input : 당일최대진입횟수(5),시작시간(180000),종료시간(034500);
var : C2(0,data1),T1(0,data1),entry(0,data1);
var : Tcond(False,data1);
if 시작시간 == 0 and date != date[1] Then{
tcond = true;
T1 = TotalTrades;
}
if 시작시간 > 0 and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) Then{
tcond = true;
T1 = TotalTrades;
}
if 종료시간 == 0 and date != date[1] Then{
tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
if 종료시간 > 0 and (stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간)) Then{
tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
C2 = data2(C);
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = TotalTrades-T1+1;
if Tcond == true then{
if entry < 당일최대진입횟수 and data2(Bdate == Bdate[1] and HighD(0) > HighD(0)[1] and HighD(0)-LowD(0) >= 0.55) Then{
buy("b");
}
if entry < 당일최대진입횟수 and data2(Bdate == Bdate[1] and Lowd(0) < LowD(0)[1] and HighD(0)-LowD(0) >= 0.65) Then{
sell("s");
}
}
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 53143건 cme day 트레이딩 오류
> 제가 요청드린 내용은 cme day 트레이딩입니다.
금일 야간 18시00분01초부터 금일 오후 11시59분59초까지
익일 오전 00시00분01초부터 익일 오전 03시44분59초까지
금일 야간 18시00분01초부터 익일 오전 03시44분59초까지
그런데
정리해 주신 수식은 모두 다 오버나잇하면서 리버스를 거래하고 있습니다.(그림1,2,3 참조)
현재 시스템설정창 당일청산 기능으로는 cme 당일 거래가 한계가 있어
시간함수를 세팅하기 위해 요청드린 내용이오니 다시 살펴주시기 바랍니다.
항상 고맙습니다.
2017-06-12
156
글번호 110311
답변완료
수익률 저점추세선을 수동으로 추적함
첨부파일의 누적수익률 곡선에서 수익률 두번째 저점(A)의 시간 및 수익값과
수익률 첫번째 저점(B)의 시간 및 수익값을 각각 수동으로 정해주고
현재시점의 저점추세선값(C)를 찾는 지표를 구하고 싶습니다.
그러니까 새로운 수익저점값이 만들어지면 같은방법으로 A점값과 B점값을
수동으로 입력하여 C점을 찾아나가면됩니다.
부언하면 수익값의 저점추세선을 수동으로 계속 모니터링하고 싶어서 지표를 알고싶습니다.
또하나는 현재의 누적수익률을 표시하는 지표도 구하는 식을 알려주세요
2017-06-10
258
글번호 110310