커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4446
글번호 230811
답변완료
안녕하세요
반갑습니다
아래지표에서
1.과거10 개 당겨보기
2.내용면에서 종가기준으로 price channel과같은 지표
(1.2번) 가능하면 부부탁합니다
INPUT : LENGTH(10);
VAR : TCHAN(0), BCHAN(0);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
PLOT1(TCHAN, "TOP");
PLOT2(BCHAN, "BOT");
감사합니다.
2018-10-30
180
글번호 123179
답변완료
수정
59834번 macd 변수값 순번대로 수정부탁드립니다
2018-10-29
144
글번호 123178
답변완료
부탁 드립니다.
타주기(분용) 수식 부탁 드립니다.
input : P1(20);
var : LT(0),HT(0),BOX1(false),TOP2(0),idx(0);
LT=LOWEST(L,P1);
HT=HIGHEST(H,P1);
BOX1 = Lowest(L,P1-2) > Lowest(L,P1-1);
if L < LT[1] Then
idx = 0;
Else
idx = idx+1;
if idx == P1-2 and Box1 == true then
TOP2 = HT;
참고수식)
/*
var1=LOWEST(L,P1);
var2=HIGHEST(H,P1);
*/
//타주기 분용 수식
input : 타주기분(60),P1(10);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),Hv(0),Lv(0);
Array : HH[100](0),LL[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[0] = H;
LL[0] = L;
for cnt = 1 to 99
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[P1-1] > 0 and LL[P1-1] > 0 then
{
Hv = HH[0];
Lv = LL[0];
for cnt = 0 to P1-1
{
if HH[cnt] > Hv Then
Hv = HH[cnt];
if LL[cnt] < Lv Then
Lv = LL[cnt];
}
plot1(Hv);
plot2(Lv);
}
}
2018-10-29
178
글번호 123177
답변완료
수식 해석 부탁드립니다.
답변받은 검색식입니다.
이후 나름 열심히 찾아보고 궁리해보고 해도 도저히 독해가 제대로 안되
염치불구하고 다시 한번 부탁드립니다.
옆에 주석을 달아 봤습니다.
어디가 왜 틀렸는지 자세한 도움말 부탁드립니다.
그리고 처음 수식문의를 할 때 <"최근 양봉나온날" 동시간대 대비> 였는데
아래 수식은 "전일 양봉이라면" 이라고 되있는것 같은데
그 부분도 설명부탁드립니다.
input : Per(150);
var: cnt(0),VV(0);
if sdate != sdate[1] then #봉의 시작날짜가 변경되면
{
value1 = index; #날짜가 바뀐후 첫봉번호를 value1에 저장
value2 = value1[1]; #날짜변경전날의 마지막봉번호(??)
if DayClose(1) > dayopen(1) Then #전일이 양봉이면
{
var1 = value2; #날짜변경전날의 마지막봉번호를 var1에 저장
var2 = index[1]; #??? indax[1]이 어떤봉번호를 가리키는지..
}
}
if var1 > 0 and var2 > 0 then #var1,var2 만약 어떤 봉번호라면 0보다 같거나
작은 경우가 있을수 있습니까? 결국 앞의 제 주석이
틀린것 같은데...
이후는 따라서 독해가 불가했습니다.
{
for cnt = index-var2 to index-var1
{
if stime[cnt] <= stime Then
{
VV = DayVolume[cnt];
cnt = index-var1+1;
}
}
if DayVolume >= VV*(1+Per/100) Then
find(1);
}
2018-10-29
219
글번호 123171
답변완료
문의드립니다
input : startTime(090000), endTime(092959);
if stime >= 093000 and stime < 1520000 then {
if crossUp(C, TimeHigh(startTime, endTime)) Then
buy();
if crossDown(C, TimeLow(startTime, endTime)) Then
sell();
}
SetStopLoss(3, PointStop);
SetStopEndofday(152000);
수식해석 부탁드리고 마지막에 SetStopEndofday 15시20분에 당일청산 한다고 했는데
15시20분에 청산이 이루어지지 않았습니다. 왜 차트에만 표시가 되고 실제 거래가 이루어지지 않았는지 이유가 궁금합니다
2018-10-29
145
글번호 123163
답변완료
식 작성 부탁합니다
틱차트를 사용해서 만들어 봅니다
1.틱20차트에서 60틱 이평선 20틱 이평선
2.틱30차트에서 60틱 이평선 20틱 이평선
3.틱50차트에서 60틱 이평선 20틱 이평선
4.틱60차트에서 60틱 이평선 20틱 이평선
매수조건
매수시에는 모든 차트에서 이평선 위치가 20틱 이평선이 60틱 이평선위에 있어야 하며
20틱차트에서 가격이 20틱 이평선 돌파하면 매수(종가기준)
익절은 20틱차트에서 가격이 10틱 이평선 종가상 이탈하면 정리
이렇게좀 부탁합니다
매도 조건은 반대입니다
2018-10-29
169
글번호 123152
답변완료
체크좀 부탁드림니다. ( 손절/익절발생후 5시간 지난후 정상매매되게 해주세요)
아래수식에서는 손절또는 익절발생시 1000봉후에 진입이 되도록 수식되어 있는것으로 알고 있는데요..
Condition1 = MarketPosition == 0 and ExitDate(1) == sdate and
(IsExitName("StopLoss",1) or IsExitName("StopProfitTarget",1)) and
TimeToMinutes(stime) <= TimeToMinutes(ExitTime(1))+P6;
그런데 위 차트를 보시면 매수청산후 얼마지나지않아 매수가 되어버렸네요...
혹시 뭐가 잘못된건가요??
제 의도는 손절/익절발생시 30봉인기준 5시간지난후 조건 충족시 진입되는 식을 구현하고 싶어요
===================================================================================
input : P1(-0.5),P2(0.9),P4(-0.2),P5(0.2),N1(20),N2(100),P6(1000),starttime(230000),endtime(140000),P7(1.3),P8(0.4);
input : 손절틱수(62),익절틱수(85);
var : cnt(0),sum1(0),sum2(0),avg1(0),avg2(0),T(0),mav2(0),mav3(0);
var : sum3(0),Tcond(false);
Condition1 = MarketPosition == 0 and ExitDate(1) == sdate and
(IsExitName("StopLoss",1) or IsExitName("StopProfitTarget",1)) and
TimeToMinutes(stime) <= TimeToMinutes(ExitTime(1))+P6;
#설정
if sdate != sdate[1] then
SetStopEndofday(endtime);
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
SetStopEndofday(0);#해제
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
}
if DayClose(N2) > 0 Then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to N2-1
{
if cnt < N1 Then
sum1 = sum1 + DayClose(cnt);
if cnt < N2 Then
sum2 = sum2 + DayClose(cnt+1);
}
avg1 = sum1/N1;
avg2 = sum2/N2;
T = 0;
if avg1 >= avg2 Then
T = 1;
if avg1 < avg2 Then
T = -1;
if T == 1 Then
mav2=p2 ;
if T == -1 Then
mav2=p5;
if T == 1 Then
mav3=p1 ;
if T == -1 Then
mav3=p4 ;
sum3 = 0;
for cnt = 1 to 20
{
sum3 = sum3 + (DayHigh(cnt)-DayLow(cnt));
}
value1 = sum3/20 ;
If MarketPosition == 0 and C >= (dayopen+value1*mav3) and c<c[1] and Condition1 == false Then
{
Buy("매수");
}
if MaxEntries == 1 and MarketPosition == 1 Then
{
buy("추가매수",atlimit,EntryPrice-P7);
}
If MarketPosition == 0 and C <= (dayopen-value1*mav2) and c>c[1] and Condition1 == false Then
{
sell("매도");
}
if MaxEntries == 1 and MarketPosition == -1 Then
{
Sell("추가매도",atlimit,EntryPrice+P8);
}
}
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
2018-10-29
174
글번호 123142
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
장개장후 90분까지의
ATR(14) 값의
200 평균
코딩 부탁드립니다.
2. 기타
장개장후 90분부터 240분까지의
ATR(14)의
200 평균값
3. 기타
특정시간(외부변수)부터 특정시간+n분까지의
ATR(14)의
200 평균값
2018-10-29
169
글번호 123141
답변완료
수식정리 부탁드립니다
안녕하세요!
아래수식에서
plot3 선이 plot2 라인을 상향돌파 하면 Red 칼라로 전환되고
plot3 선이 plot2 라인을 하향돌파 하면 Blue 칼라로 전환되면 좋겠습니다.
(#제가 임의로 급조한 수식이라 어줍잖습니다,아울러 수식정리 함께 부탁드립니다)
input : P(20),dv(2);
var : BBup(0),BBmd(0),BBdn(0);
BBmd = ma(V,P);
BBup = BBmd+STD(V,P)*dv;
BBdn = BBmd-STD(V,P)*dv;
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if crossup(v,BBup) Then
{
var1 = var1 + (C+O)/2;
var2 = var2 + 1;
var3 = var1/var2;
}
plot1(var3);
plot2((DayHigh(1)+daylow(1)+dayclose(1))/3,"전일기준");
Inputs: TurnLen(9), StdLen(26), PrdLen(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2;
기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(High, PrdLen) + Lowest(Low, PrdLen)) / 2;
Plot3(기준선, "일목기준선");
$$,언제나 늘 고맙습니다.
2018-10-29
197
글번호 123137