커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7438
글번호 230811
답변완료
문의드립니다.
1분봉에서
if then buy("a");
로 하면 종가끝나고 형성되는데
at c stop; 같이
조건이해당되면 종가끝나기전에 바로 진입할수 있도록 하는 식을 알려주세요
if then buy("a") ~~~?;
2. 매주 월요일 090000시 부터 금요일 150000시 이전까지만 진입할수있게 하고싶습니다.
매주 금요일 1500시엔 종가청산을 하고싶습니다.
2015-12-18
126
글번호 93585
답변완료
재 문의 드립니다
아래 작성해 주신 수식 재 문의 드립니다
2015-12-18
150
글번호 93583
답변완료
문의드립니다
Input : Period1(00);
input : stime1(00);
input : stime2(00);
var : Stok(0);
StoK = StochasticsK(Period1,5);
input : B1(70),B1X(30),S1(30),S1X(70) ;
if MarketPosition == 0
and sTime >= stime1
and sTime <= stime2
and StoK > B1
Then
buy("B1");
if MarketPosition == 1
and IsEntryName("B1") == true
and StoK < B1X
Then
exitlong("B1X");
if MarketPosition == 0
and sTime >= stime1
and sTime <= stime2
and StoK < S1
Then
sell("S1");
if MarketPosition == -1
and IsEntryName("S1") == true
and StoK > S1X
Then
ExitShort("S1X");
if MarketPosition == 1
Then
Buy("B999");
if MarketPosition == -1
Then
Sell("S999");
위 식에서
피라미딩 모든진입 허용을 클릭하고
if MarketPosition == 1
Then
Buy("B999");
if MarketPosition == -1
Then
Sell("S999");
여기 부분을 1봉 마다 신호가 나오는게 아니라
N봉 마다 진입신호가 나오게 하고 싶습니다
2015-12-18
132
글번호 93579
답변완료
부탁 드립니다.
항상 도움 주셔서 감사 드립니다.
다음 수식에서 지정된 시간내에
2번째 최대 거래량의
고가선과 저가선을 표시하고 싶습니다.
미리 감사 드립니다.
수식)
INPUT:시작시간(213000),끝시간(070000);
var : HV(0);
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then{
Condition1 = true;
Hv = 0;
}
if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간) Then
Condition1 = false;
if Condition1 == true Then{
if V > HV Then{
Hv = V;
var1 = H;
var2 = L;
}
plot1(var1,"고가선");
plot2(var2,"저가선");
}
2015-12-18
148
글번호 93576
답변완료
문의드립니다
다음의 조건을 만족하는 식을 부탁드립니다.
현재의 5일 이평가격이 직전의 5개봉중에서 가장 큰 이평가격보다 크면 매수
현재의 5일 이평가격이 직전의 5개봉중에서 가장 작은 이평가격보다 작으면 매도 하는 식을 구현해 주시기 바랍니다.(이평가격을 비교하는 식입니다.)
2015-12-18
129
글번호 93571
답변완료
수식작성 부탁드립니다.
수식작성 부탁드립니다^^
매수조건 : 2015년 12월 18일 기준으로
1차매수 : (전일시가+전일종가)의 평균가격 + 2% 시세보다 밑으로 내려오면 완성봉 기준이
아니라 즉시매수 (5백만원) - 조건만족시 즉시매수
2차매수 : (전일시가+전일종가)의 평균가격 가격 시세보다 밑으로 내려오면 즉시 매수(5백만원)
3차매수 : (전일시가+전일종가)의 평균가격 보다 - 2% 밑으로 내려오면 즉시매수(5백만원)
매도조건 : 1차매수만 되었다면 목표수익률 +2%
2차매수까지 되었다면 1차, 2차 평균가격의 +1.5%(목표수익)
3차매수까지 되었다면 1차,2차,3차 평균가격의 +1.0% (목표수익)
손절조건 : 3차 매수가격보다 -3% 더 떨어지면 전량매도
감사합니다
2015-12-18
156
글번호 93570
답변완료
지표 및 시스템 문의
한결같은 답변에 진심으로 감사드리며 남은 한해 잘 마무리 하시기 바랍니다.
현물용으로 사용할 지표와 수식 부탁드립니다.
(지표작성)
10분봉에서 가장 최근의 상한가 발생후 최고가를 기준선(기준선)을 만들고,
기준선을 아랫방향으로 N% 만큼 평행이동한 선을(1차하락선) 만들고
기준선으로 아랫방향으로 2N% 만큼 평행이동한 선을(2차하락선)을 만듬
이를 지표로 만드는 방법을 부탁드립니다.
(수식작성)
매수금액은 100만원
10분봉 현재가가 2차 하락선을 하향돌파한 후 다시 상향 돌파할 때 매수하고
(수익청산) 수익이 5% 발생시 현물 수익청산
(손절청산) 손실이 5% 발생시 현물 손절청산
매매횟수는 1회입니다.
추가)지표를 첨부물처럼 만들고 싶습니다
수고하세요~~~
2015-12-18
211
글번호 93569
답변완료
시스템 수식 부탁드립니다.
매수가 1 : 전일 종가
매수가 2 : 전일 시가
손절가 : 전일 저가 -1%
매도가
* 평단가대비 +5%를 돌파하면 홀딩후 5% 단위로 주가 체크
* +10%를 도달하지 못하고 하락하면 +5%에서 매도
* +15%를 도달하지 못하고 하락하면 +10%에서 매도
* +20%를 도달하지 못하고 하락하면 +15%에서 매도
* +25%를 도달하지 못하고 하락하면 +20%에서 매도
* +30%를 도달하지 못하고 하락하면 +25%에서 매도
* 상한가 매도
* 144500
2015-12-18
140
글번호 93568
답변완료
함수수정요청(11-호, 하루 n개봉)
안녕하세요?
함수수정요청드립니다.
해외선물 거래를 하고자 합니다.
아래는 최근 10일 동안 해외선물의 일중 움직임(시가와 고가, 고가와 저가, 시가와 저가)을 관찰하여 매매의 전략을 세우고자 했었습니다.
이를, 10일 동안의 움직임이 아닌
장개시 후 분봉상으로 5개봉의 움직임으로 대체하여 6개째 봉의 시가를 기준으로 변수를 짜고 싶습니다.
var : entry1(0);
var : ho1(0),OL1(0),HL1(0);
var : maho1(0),maOL1(0),maHL1(0);
var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0);
var : EntryCnt1(0);
var : V1(0),V2(0),V3(0),V4(0),V5(0);
var : V6(0),V7(0),V8(0),V9(0),V10(0);
if bdate != bdate[1] Then
entry1 = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry1 = entry1+1;
ho1 = Dayhigh-Dayopen;
OL1 = DayOpen-DayLow;
HL1 = DayHigh-DayLow;
sumho1 = 0;
sumOL1 = 0;
sumHL1 = 0;
for cnt1 = 1 to 10{
sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1));
sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1));
sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1));
}
maho1 = sumho1/10;
maOL1 = sumOL1/10;
maHL1 = sumHL1/10;
V1 = dayopen(0)+maho1;
V2 = DayOpen(0)-maOL1;
V3 = DayOpen(0)+maHL1;
V4 = DayOpen(0)-maHL1;
V5 = NthMaxList(1,V1,V2,V3,V4);
V6 = NthMaxList(2,V1,V2,V3,V4);
V9 = NthMaxList(3,V1,V2,V3,V4);
V10 = NthMaxList(4,V1,V2,V3,V4);
V7 = (V5+V10)/2;
V8 = (V6+V9)/2;
if MarketPosition == 0 and entry1 == 0 Then{
if V7 > V8 Then
sell("s1",AtStop,v7);
if V7 < V8 Then
sell("s2",Atlimit,v8);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9);
ExitShort("sl2",AtStop,V6);
}
var : TF(0);
var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 050000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/2;
var2 = (HV1+LV1)/2;
var3 = (HV2+LV2)/2;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
2015-12-18
168
글번호 93567