커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3489
글번호 230811
회원 님에 의해서 삭제되었습니다.
2023-08-11
738
글번호 171429
답변완료
시가청산_추가
하기 답변 감사합니다.
의도가 잘못 전달된듯하여 재질문드립니다.
현재 9시 시가 수신시 바로청산을 적용해서 사용하고 있고
질문드린 사항은, 1분봉차트에서 시가수신시 청산보다는 느리고 9:01분 이전에는 청산하고싶은데, 방법이 없는지를 문의드렸습니다~
-----------------------------------------------
안녕하세요
예스스탁입니다.
아래와 같이 작성하시면
9시봉시가수신시 바로 청산됩니다.
if (NextBarSdate != sDate and NextBarStime >= 90000) or
(NextBarSdate == sDate and NextBarStime >= 90000 and sTime < 90000) Then
ExitLong("bx",AtMarket);
즐거운 하루되세요
> 건곤대 님이 쓴 글입니다.
> 제목 : 시가청산 시간차
> 안녕하세요.
실전 1분봉차트에서 익일 시가에 바로 청산하는 전략을 쓰고 있는데요,(nextbaropne활용)
사정상, 09:00~09:01 사이에도 청산을 추가로 시키고 싶은데요,
(9:01분이후부터는 신규진입신호가 발생해서 주문거부되는 현상 피하고자 함)
혹시 방법이 없을까요? 1분봉차트를 사용하니, 조건식으로 해보려 해도
가장 최소로 구분되는 시간텀이 1분인듯하여 문의드립니다.
2023-08-11
1269
글번호 171426
답변완료
수식 부탁드립니다.
안녕하세요
다름이 아니라 아래수식을 사용자 함수로 만들어 고정되게 쓰고 싶습니다.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var: yjp(0),forcast(0),CHA(0);
var : X1(0), X2(0), X3(0), X4(0), X5(0), X6(0), X7(0), X8(0), X9(0),X10(0);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
X1=0.009341;
X2=0.009773;
X3=0.009342;
X4=-0.00043;
X5=-0.00125;
X6=-0.00096;
X7=-0.00201;
X8=-0.00565;
X9=-0.00809;
X10=8.18E-06;
forcast=yjp+x1*Data2(c)+x2*Data3(c)+x3*Data4(c)+x4*Data5(c)+x5*Data6(c)+x6*Data7(c)+x7*Data8(c)+x8*Data9(c)+x9*Data10(c)+x10*Data15(c);
CHA=(C-forcast);
CHA 를 모든 로직에 데이타로 쓰고 싶습니다.
2023-08-11
1568
글번호 171415
답변완료
시가청산 시간차
안녕하세요.
실전 1분봉차트에서 익일 시가에 바로 청산하는 전략을 쓰고 있는데요,(nextbaropne활용)
사정상, 09:00~09:01 사이에도 청산을 추가로 시키고 싶은데요,
(9:01분이후부터는 신규진입신호가 발생해서 주문거부되는 현상 피하고자 함)
혹시 방법이 없을까요? 1분봉차트를 사용하니, 조건식으로 해보려 해도
가장 최소로 구분되는 시간텀이 1분인듯하여 문의드립니다.
2023-08-11
1385
글번호 171412
답변완료
안녕하세요
안녕하세요
선물매매식
1,
Period20(20ma)와 Period60(60ma)이 정배열이고
볼린져 밴드 하단선 보다 크면 매수
Period60(60ma) 보다 작거나
or 볼린져 밴드 Period(20)의 하단선 보다 작으면 (돌파시) 매도
2,
선물지수가
볼린져 밴드 Period(20)의 상단선 보다 크면 (돌파시) 매수
선물지수가
볼린져 밴드 Period(20)의 상단선 보다 작으면 (이탈시) 매도
3,
선물지수가
볼린져 밴드 Period(20)의 하단선 이탈후 5ma 상승 전환시 매수
선물지수가
볼린져 밴드 Period(20)의 상단선 돌파후 5ma 하락 전환시 매도
감사합니다
2023-08-11
1015
글번호 171411
푸른 님에 의해서 삭제되었습니다.
2023-08-11
1
글번호 171410
답변완료
함수요청
안녕하세요?
국내선물 분봉으로 거래를 하고자 합니다 .
MACD오실레이터 상승다이버전스, 하락다이버전스를 이용해서 매매에 활용하고 싶습니다.
샘플 부탁드립니다.
감사합니다.
2023-08-11
890
글번호 171409
답변완료
수식추가
Inputs : Period(20), Sence(1.5), CC_DN(Yellow);
var : 기준선기간(26);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),/
JustChanged(FALSE),
VLine(0), DBN(0),T(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
.
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
#Plot1(VLineUp,"VLineUp");
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
#Plot2(VLineDn,"VLineDn");
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
if UpWave[1] then T = 1;
else if DnWave[1] then T = -1;
end;
Inputs: TurnLen(9), StdLen(26), PrdLen(52),P(60);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0),mav(0);
전환선 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2;
기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2;
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(High, PrdLen)[25] + Lowest(Low, PrdLen)[25]) / 2;
mav = ma(C,P);
if CrossUp(C,mav[25]) and 선행스팬1 > 선행스팬2 and T == 1 Then
Buy();
if CrossDown(C,mav[25]) and 선행스팬1 < 선행스팬2 and T == -1 Then
Sell();
안녕하세요.
위식에 추가부탁 드려요
시간설정 변수처리 오후 15시~익일02시
당일 수익 100틱 청산 매매중지
2023-08-11
1152
글번호 171408
답변완료
부탁드립니다
항상 도움을 주셔셔 감사드립니다.
1.if T == 1 and (CrossUp 이라고 할때 1의 고점을 기준봉으로 잡고 조정후 10봉이내에서 재돌파 할때의 추가 수식을 알고 싶습니다.
---------------------------------------------------------------------
2,이러한 시스템식을 운영한다고 과정할때 지표식으로 변환하고자 합니다.
input :N1(1),카운팅시작일자(1), 카운팅시작시간(0);
input : n(1),x(1);
var : Tcond(false),T(0),상승량(0), 하락량(0), 이평선(0), 상승(0), 하락(0),cnt(0);
Array : V1[0](0),V2[0](0);
var : idx(1),hh(2),ll(3),dd(4),tt(1);
var : tl1(1),tl2(2),tl3(3),tl4(4);
if sdate >= 카운팅시작일자 and stime >= 카운팅시작시간 Then
Tcond = true;
if Tcond == true Then
{
if (sdate != sdate[1] and stime >= 카운팅시작시간) or
(sdate == sdate[1] and stime >= 카운팅시작시간 and stime[1] < 카운팅시작시간) Then
{
var1 = 1;
var2 = 1;
상승량 = 1;
하락량 =1;
}
Condition1 = 상승량+V >상승량+V[1];
for cnt = 0 to N1-1{
IF O[cnt] < C[cnt] Then {
IF H[cnt]-C[cnt] >=1 AND
H[cnt]-C[cnt] > Abs(O[cnt]-C[cnt]) AND
H[cnt]-C[cnt] >= O[cnt]-L[cnt]
Then
하락량 = V[cnt];
ELse
상승량 = V[cnt];
}
ELse IF O[cnt] > C[cnt] Then {
IF C[cnt]-L[cnt] >=3AND
C[cnt]-L[cnt] > Abs(O[cnt]-C[cnt]) AND
C[cnt]-L[cnt] >= H[cnt]-O[cnt]
Then
상승량 = V[cnt];
ELse
하락량 = V[cnt];
}
ELse {
IF H[cnt]-C[cnt] < C[cnt]-L[cnt] Then
상승량 = V[cnt];
ELse IF H[cnt]-C[cnt] > C[cnt]-L[cnt] Then
하락량 = V[cnt];
ELse{
하락량 = V[cnt];
상승량 = V[cnt];
}
}
if dayindex >= 0 Then{
if C > O or (C == O and C >= C[1]) Then
value1 =상승량;
Else
value1 = 하락량;
value13=상승량-하락량;
if value13 > value13[1] Then
T = 1;
if value13 < value13[1] Then
T = -1;
var21 = highest(H,n);
var22 = lowest(L,n);
Condition21 = C <= var21[1] and C >= var22[1];
if Condition21 == true and Condition21[1] == false Then
{
idx = 0;
hh = c;
ll = c;
dd = sdate;
tt = stime;
}
if Condition21 == true Then
{
idx = idx+1;
if c > hh Then
hh = c;
if c < ll Then
ll = c;
if idx == x Then
{
tl1 = TL_New(dd,tt,hh,dd,tt,ll);
tl2 = TL_New(dd,tt,hh,sdate,stime,hh);
tl3 = TL_New(dd,tt,ll,sdate,stime,ll);
tl4 = TL_New(sdate,stime,hh,sdate,stime,ll);
}
if idx > x Then
{
TL_SetBegin(tl1,dd,tt,hh);
TL_SetEnd(tl1,dd,tt,ll);
TL_SetBegin(tl2,dd,tt,hh);
TL_SetEnd(tl2,sdate,stime,hh);
TL_SetBegin(tl3,dd,tt,ll);
TL_SetEnd(tl3,sdate,stime,ll);
TL_SetBegin(tl4,sdate,stime,hh);
TL_SetEnd(tl4,sdate,stime,ll);
value21 = HH;
value22 = LL;
}
}
If hh <= C Then
{
TL_SetColor(TL1,WHITE);
TL_SetColor(TL2,WHITE);
TL_SetColor(TL3,WHITE);
TL_SetColor(TL4,WHITE);
}
Else
{
TL_SetColor(TL1,WHITE);
TL_SetColor(TL2,WHITE);
TL_SetColor(TL3,WHITE);
TL_SetColor(TL4,WHITE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,1); //상단가로선 굵기
TL_SetSize(TL3,1); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
if Condition1[1]==(-----------------)
buy();
if Condition1[1]==(------------------)
sell();
}}}
------------------------------------------------------------------------
3.지표식으로 부탁드리겠습니다.
input : 기간(1),비율(1);
var : 시작조건(False),시작위치(0),폭(0),bs(0),k(0),비율선(0);
시작조건 = Highest(H, 기간)[1]<H;
if 시작조건 Then
{
시작위치 = H;
bs = 0;
}
Else
{
if 시작위치 > 0 Then
bs = bs+1;
}
폭 = 시작위치*(비율/100);
K = iff(시작조건, 시작위치, 시작위치 + 폭*Bs);
비율선 = iff(K<K[1], K, 0);
---------------------------------------------------------------------------
4, (1 or 2 or 3) =>>> (1,2 or 1,3 or 2,3 ) 으로 부탁드립니다.
if (CrossUp(c,EMA1)or CrossUp(c,Ema2) or CrossUp(C,Ema3)) Then
{
Find(1);
}
만들어 주신거 응용할라고 세벽부터 몇시간째 해도 제자리 걸음 입니다..ㅎㅎ
부탁드립니다.
수고 하세요.
2023-08-11
1401
글번호 171407