커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4445
글번호 230811
답변완료
수식작성 부탁드립니다.
안녕하세요?
간단한 수식하나 작성 부탁드려요.
*진입조건
1. 양봉종가가 x틱(외부변수)봉전 이내에 존재하는 음봉종가와 같을때 매수진입.
(양봉에 진입을 하는데, 그 진입봉 x틱 이내에 존재하는 음봉의 종가와 같을때만 진입입니다)
2. 진입봉 종가가 당일시가와 같거나 클때만 진입
* 청산조건
1. 익절 x틱(외부변수), 손절 x틱(외부변수)
2. TS x틱(외부변수)이상 도달후 x틱(외부변수)하락할때 청산
감사합니다.
2018-10-23
233
글번호 122933
답변완료
수식변환 부탁드립니다
일목균형표의 구름대(선행스팬1,선행스팬2)가 26봉만큼 선행해서 표시되는데 9봉만 선행하게 하는 수식 부탁드립니다.
2018-10-23
253
글번호 122932
답변완료
지표식 문의드립니다.
data1과 data2의 합의 standard deviation를 구하는 지표식을 만들고 싶습니다.
즉 standard deviation을 풀어쓴 식에다가 data1과 data2의 합을 넣고 싶습니다.
항상 감사드립니다.
2018-10-23
231
글번호 122931
답변완료
sell 문의 드립니다.
수고가 많으십니다.
if(C[0] > O[0]) then //==> 현재봉이 양봉으로 끝나면
Sell("매도", AtStop, NextBarOpen-(1*PriceScale)); //==> 다음봉 (시가 - 1틱) 발생 시 매도하려고 합니다.
여기서, 다음봉이 아래꼬리(시가-1틱)가 없는 봉이 발생하면 Sell 주문은 무시되는 것 같습니다.
문의사항)
1. 다음봉, 다다음봉 등 아무때고 시가-1틱이 발생할 때까지 위 주문을 유지해서 매도하는 수식이 궁금합니다.
2. 단, 피라미딩(모든 진입 허용) 상태에서 위 조건이 발생하면 한 번만 주문이 발생해야합니다.
감사합니다.
2018-10-22
224
글번호 122930
답변완료
문의드립니다
문의드립니다.
1. RSI식에 가격이 아닌 ma(c,p1)을 적용하여 얻은값을 AA
2. RSI식에 AA를 p2기간 적용하여 얻은값을 BB
3. RSI식에 BB를 p3기간 적용하여 얻은값을 RR
최종값인 RR을 plot하는 지표식 부탁드립니다.
2018-10-22
239
글번호 122929
답변완료
참조 데이터
제가 뭔가 참조 데이터 쓰는 법을 잘 모르나 봅니다.
다음 수식 수정 부탁드립니다 (작동을 제대로 안 합니다)
이용하는 차트 = 1분봉
참조1 (data2) = 일봉
1. 갭 메우기
오늘 시가가 어제 저가보다 낮으면 090000 매수해서 어제 저가 또는 151900 에 청산
if stime==090000 and data2(O[0]) < data2(L[1]) then buy ("B",atmarket);
if marketposition == 1 and c >= data2(L[1]) then exitlong ("Ex",atmarket);
if marketposition == 1 and stime==151900 then exitlong ("Ex1",atmarket);
2. 가격이 (오늘 시가 + 어제 고가, 저가의 평균값) 에 도달할 경우 그 시점에 매수, 151900에 청산
var : higher(0);
higher = data2(O[0]) + (data2(H[1])+data2(L[1]))/2 ;
if marketposition == 0 and c=higher then buy ("B", atmarket);
if marketposition == 1 and stime == 151900 then exitlong ("Ex", atmarket);
3.
오늘 110000 가격이 오늘 시가보다 높고 AND 130000 가격이 그때까지 오늘 고가,저가의 평균값보다 높으면 130000에 매수, 151900에 청산
if MarketPosition ==0 and (C>DayOpen and stime==110000) and (stime==130000 and C>(H+L)/2 ) then buy ("B",atmarket);
if marketposition == 1 and stime == 151900 then exitlong ("Ex", atmarket);
4. 151900 가격이 일봉 5MA 위면 매수, 090001 청산
if marketposition == 0 and stime ==151900 and data2(C[0]) > data2(MA(C[0],5)) then buy ("B", atmarket);
if marketpostion == 1 and stime ==090001 then exitlong ("Ex", atmarket);
한수 가르침 부탁드립니다^^
2018-10-23
249
글번호 122928
답변완료
문의 합니다
1번 시스템 수식
input : 시작시간(090000),종료시간(152000);
input : Period15(15),Period20(20),Period30(30),Period120(120),Period180(180),Period240(240),Period480(480),Period960(960),Period60(60),Period3(3),Period10(10),Period2(2),Period7(7),Period144(144),Period100(100),익절틱수(10),손절틱수(10);
var : mav15(0),mav20(0),mav30(0),mav120(0),mav180(0),mav240(0),mav480(0),mav960(0),mav60(0),mav1(0),mav3(0),mav10(0),mav2(0),mav7(0),mav144(0),mav100(0),Bxcond(false),Sxcond(false);
var : Tcond(false);
var : T(0);
mav15 = ma(c, Period15);
mav20 = ma(c, Period20);
mav30 = ma(c, Period30);
mav120 = ma(c, Period120);
mav180 = ma(c, Period180);
mav240 = ma(c, Period240);
mav480 = ma(c, Period480);
mav960 = ma(c, Period960);
mav60 = ma(c, Period60);
mav3 = ma(c, Period3);
mav10 = ma(c, Period10);
mav2 = ma(c, Period2);
mav7 = ma(c, Period7);
mav144 = ma(c, Period144);
mav100 = ma(c, Period100);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and (Stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간))) Then
{
Tcond = True;
BXcond = false;
SXcond = false;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if TotalTrades > TotalTrades[1] then{
BXcond = false;
SXcond = false;
if (IsExitName("bl",0) == true or IsExitName("bp",0) == true or IsExitName("bx",1) == true or IsExitName("bx",1) == true) Then
BXcond = true;
if (IsExitName("sl1",0) == true or IsExitName("sp1",0) == true or IsExitName("sx",1) == true or IsExitName("sx",1) == true) Then
SXcond = true;
}
if Tcond == true then{
if MarketPosition <= 0 and Bxcond == false and
(mav144[1] < mav144 and mav60[60] > mav60[2] and mav60[2] <= mav60[1] and mav60[1] < mav60 and mav15[1] < mav15) Then{
buy("매수",OnClose,def,1);
}
if MarketPosition == 1 Then{
if mav15[1] < mav15 and mav7 > mav15 and mav15 > mav30 and mav30[1] < mav30 and crossup(mav2, mav3) and CurrentContracts < 10 Then
buy("매수1",OnClose,def,1);
}
if MarketPosition == 1 Then{
if (mav100[2] >= mav100[1] and mav100[1] > mav100) Then
exitlong("수청산",OnClose,def,"매수");
if (mav100[2] >= mav100[1] and mav100[1] > mav100) Then
exitlong("수청산1",OnClose,def,"매수1");
ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수);
ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수);
}
if MarketPosition >= 0 and Sxcond == false and
(mav144[1] > mav144 and mav60[60] < mav60[2] and mav60[2] >= mav60[1] and mav60[1] > mav60 and mav15[1] > mav15) Then{
sell("매도",OnClose,def,1);
}
if MarketPosition == -1 then{
if mav15[1] > mav15 and mav7 < mav15 and mav15 < mav30 and mav30[1] > mav30 and CrossDown(mav2, mav3) and CurrentContracts < 10 Then
sell("매도1",OnClose,def,1);
}
if MarketPosition == -1 then{
if (mav100[2] <= mav100[1] and mav100[1] < mav100) Then
ExitShort("도청산",OnClose,def,"매도");
if (mav100[2] <= mav100[1] and mav100[1] < mav100) Then
ExitShort("도청산1",OnClose,def,"매도1");
ExitShort("sp",atlimit,AvgEntryPrice-PriceScale*익절틱수);
ExitShort("sl",AtStop,AvgEntryPrice+PriceScale*손절틱수);
}
}
2번 시스템 수식
input : ntime1(20),P(20);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum1(0),mav1(0),mav11(0),mav12(0);
Array : C1[50](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 49
{
C1[cnt] = C1[cnt-1][1];
}
mav11 = mav1[1];
mav12 = mav11[1];
}
C1[0] = C;
if C1[P] > 0 then{
sum1 = 0;
for cnt = 0 to P-1{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
if mav12 < mav11 and mav11 < mav1 and mav12 > 0 Then
buy();
if mav12 > mav11 and mav11 > mav1 and mav12 > 0 Then
sell();
}
}
1번 수식에 2번 수식 함께 적용하여 하나의 수식으로 합쳐주세요 감사합니다
1번 수식에 최초 매수진입할 때 2번 수식 매수진입 수식을 합쳐주세요
(즉 1번 최초 매수진입과 1번 매수진입 만족하면 매수 진입)
mav144[1] < mav144 and mav60[60] > mav60[2] and mav60[2] <= mav60[1] and mav60[1] < mav60 and mav15[1] < mav15 and mav12 < mav11 and mav11 < mav1 and mav12 > 0
1번 수식에 최초 매도진입할 때 2번 수식 매도진입 수식을 합쳐주세요
(즉 1번 최초 매도진입과 1번 매도진입 만족하면 매도 진입)
mav144[1] > mav144 and mav60[60] < mav60[2] and mav60[2] >= mav60[1] and mav60[1] > mav60 and mav15[1] > mav15 and mav12 > mav11 and mav11 > mav1 and mav12 > 0
2018-10-22
230
글번호 122927
답변완료
부탁 드립니다.
도움주심에 깊이 감사 드립니다.
다음 타주기 수식의 일봉 주봉 월봉지표를
분봉에 나타 나도록 부탁 드립니다.
미리 감사 드립니다..
/*
Input:P4(4);
VAR:VARQ1(0);
VARQ1=ATR(P4);
plot1(varq1);
*/
input : 타주기분(60),Period(10);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),HH(0),LL(0),CC(0),C1(0);
var : sumTR(0),ATRV(0);
Array : TH[100](0),TL[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH = H;
LL = L;
C1 = CC[1];
for cnt = 1 to 99
{
TH[cnt] = TH[cnt-1][1];
TL[cnt] = TL[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC = c;
TH[0] = max(C1,HH);
TL[0] = Min(C1,LL);
if TH[Period-1] > 0 and TL[Period-1] > 0 then
{
sumTR = 0;
for cnt = 0 to Period-1
{
sumTR = sumTR + (TH[cnt]-TL[cnt]);
}
ATRV = sumTR/Period;
plot1(ATRV);
}
}
2018-10-23
243
글번호 122926
답변완료
수식 부탁드립니다.
감사합니다. 수식부탁드립니다.
매수 포지션 일때 N개의 봉(캔들)의 시작가와 종가가 20틱 만큼 하락하면 청산
매수 포지션 일때 N개의 봉(캔들)의 최대값과 최소값이 20틱 만큼 하락하면 청산
매도 포시션 반대
2018-10-22
212
글번호 122923