커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6343
글번호 230811
답변완료
수식문의 드립니다.
안녕하세요.
수식문의 드립니다.
1.당일 최고가 에서 80% 로 계산한 가격 + 당일가 포함한 10일 ATR 1.2 배 가격 표시
당일 최저가 에서 80% 로 계산한 가격 - 당일가 포함한 10일
ATR 1.2 배 가격 표시
당일가 포함된 1.2배 ATR 가격을 "은하수" 라 쓰고 가격을 표시해 주세요, "은하수" 바로 옆에 붙여서 당일최고가를 더헌 가격을 빨간색 글씨로 표시, 아래칸 같은 라인에 당일 최저가 에 1.2배 ATR을 뺀 가격을 파란색 글씨로 표시 부탁 드립니다.
당일 최고가나, 최저가를 를 갱신 하면 가격이 변동 돱니다.
가격을 종목 호가에 맞춰서 끝자리 단위가 50% 이상이면 절상
50% 이허면 절사로 부탁 드립니다.
초보라서 매수, 매도 추가는 다음에 요청드리겠습니다.
2023-03-20
955
글번호 167317
답변완료
수식 문의 드립니다
sTime 사용법이 이게 맞을까요?
만약 이게 아니라면, 제가 적어놓은, 의도하는 의미대로 수식을 작성하려면 어떻게 수정해야할지 좀 부탁드리겠습니다 ㅠ
당일 특정 시간대를 넘겼을때만(15시 10분 이후) buy나 sell등의 주문이(at stop으로) 작동하게끔 하고 싶습니다.
1번
if MarketPosition == 0 and sTime >= 151000 Then
{
Buy("진입", AtStop, highest(c, 20), Floor(수량));
}
제가 원하는 의미 :
16일 목요일(어제) 기준으로 마켓 포지션이 0이면서,
17일 금요일(오늘) 기준으로 15시 10분이 넘었을때, 15시 10분부터 장마감전까지 실시간 현재가격이 <어제인 16일 목요일로부터 과거 20일간의 최고가>보다 크다면, 그 가격에 즉시 매수주문
2번
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] and sTime >= 151000 Then
Buy("추가진입", AtStop, LatestEntryPrice(0)*1.1, Floor(수량) );
}
제가 원하는 의미 :
16일 목요일(어제) 기준으로 MarketPosition == 1 이면서,
16일 목요일(어제) 기준으로 CurrentContracts > CurrentContracts[1] 이면서
17일 금요일(오늘) 기준으로 15시 10분이 넘었을때, 15시 10분부터 장마감전까지 실시간 현재가격이 <이전 진입가격의 1.1배>보다 크다면, 그 가격에 즉시 매수 주문
3번
If MarketPosition==1 and sTime >= 151000 Then
{
SetStopLoss(cut_n*ATr(20),PointStop);
}
Else
SetStopLoss(0);
제가 원하는 의미 :
16일 목요일(어제) 기준으로 마켓 포지션이 1이면서,
17일 금요일(오늘) 기준으로 15시 10분이 넘었을때, 15시 10분부터 장마감전까지 실시간 현재가격이 진입가격-cut_n*ATr(20) 보다 작다면, 그 가격에 즉시 매도주문
4번
If MarketPosition==1 and RSI(20) >= 60 and sTime >= 151000 Then
{
ExitLong("청산", atstop, Highest(C,20)-3*ATR(20) );
}
제가 원하는 의미 :
16일 목요일(어제) 기준으로 마켓 포지션이 1이면서 RSI(20) 값이 60 이상이고,
17일 금요일(오늘) 기준으로 15시 10분이 넘었을때, 15시 10분부터 장마감전까지 실시간 현재가격이 ( Highest(C,20)-3*ATR(20) ) 보다 작다면, 그 가격에 즉시 매도주문
----------------------------
아니면
아래와 같이 맨 처음에 sTime조건을 먼저 설정해주는게 맞는지....
If sTime >= 151000 Then
{
if MarketPosition == 0 Then
{
Buy("진입", AtStop, highest(c, 20), Floor(수량));
}
}
2023-03-20
961
글번호 167316
2wnwn 님에 의해서 삭제되었습니다.
2023-03-19
14
글번호 167315
답변완료
수식 변경 부탁드립니다
안녕하세요
도와주시는 지표는 고맙게 잘 쓰고 있습니다
감사합니다
키움 지표입니다
예스 지표로 변경 부탁 드립니다
제목 : 월 이평 고가, 저가 (일목 균형표)
수식1 - 가격 채널 고가
highest(H, 26,1)
수식2 - 가격 채널 저가
Lowest(L, 26, 1)
수식3 - 가격 채널 중심선
A=highest(H, 26,1);
B=Lowest(L, 26, 1);
(a+b)/2
수식4 - 월이평 고가선
M=floor(date/100)%100; //date=20221106/100--->202211, %100--->11
Sh=sum(H);
A=countsince(M!=M(1),c>0);//숫자 0
Bh=Sh-valuewhen(1, M!=M(1),Sh(1));
D=Bh/A;
E=avg((D + D(1)*2 +D(2)*2 +D(3)*2 + D(4))/8, 5); //삼각가중평균
eavg(E,3)
수식5 - 월이평 저가선
M=floor(date/100)%100;
SL=sum(L);
A=countsince(M!=M(1),c>0);
BL=SL-valuewhen(1, M!=M(1),SL(1));
F=BL/A;
G=avg((F + F(1)*2 +F(2)*2 +F(3)*2 + F(4))/8, 5);
eavg(G,3)
2023-03-19
2111
글번호 167314
답변완료
문의드립니다
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
수식 사운드 부분에서 alert.wav 를 다른 소리로 바꾸고 싶습니다
간단한 수식이 있다면 부탁 드립니다
2023-03-19
1171
글번호 167313
답변완료
이평 20선 수식
아래 조건으로 수식/시스템 가능한지요?
부탁드립니다.
0. 9시 30분 부터 11시 30분 사이에만 작동
1. 틱챠트에서 종가가 지수이평 20 위이고 기울기가 양이면 다음봉 시가 매수 진입
아래이고 기울기가 음이면 다음봉 시가 매도 진입
이때, 매수/도 시 익절 20틱, 손절 12틱
11시30분 되면 포지션 강제 청산
11시25분 부터는 진입안함
2. 손절이 나면서 위 1번 상황이되면, 반대 신호 진입.
2023-03-19
1334
글번호 167312
답변완료
식 수정부탁드립니다
안녕하세요, 아래식 수정 부탁드립니다.
1. 매수
시초가(900원)가 지정한 매수가격(1000원)보다 낮을때 매수가격에서 매수작동
시초가(1000원)가 지정한 매수가격(1000원)보다 같을때 매수가격에서 매수작동
시초가(1100원)가 지정한 매수가격(1000원)보다 높으면 해당일 매수 작동 안함
2. 매도,손절
매도,손절 지정가격이 되었거나 그 이상으로 갭상승이나 갭하락시 시장가 청산작동
(분봉적용)확인부탁드립니다.
---------------------------------------------------------------------
안녕하세요
예스스탁입니다.
input : 날짜(20230302),매수가격(1000),익절가격(1200),손절가격(800);
if sDate >= 날짜 and DayOpen < 매수가격 then
Buy("b",AtStop,매수가격);
if MarketPosition == 1 Then
{
ExitLong("bp",AtLimit,익절가격);
ExitLong("bl",AtStop,손절가격);
}
즐거운 하루되세요
> 스누피독 님이 쓴 글입니다.
> 제목 : 식 부탁드립니다.
> 식 부탁드립니다.
0.지정한 날자부터 조건에 부합하면 계속 자동매수 진행
1.지정한가격 돌파시 매수
2.이후 설정한 가격으로 매도, 손절
매수조건 :시초가가 지정한 돌파매수가격보다 낮을것
매수안하는조건: 당일 가격이 매도설정가격보다 낮게되면
매수안한다
매도,손절 :지정한 가격 이상이면 매도, 이하면 손절
시장가 매수 매도 손절
부탁드립니다
2023-03-18
1756
글번호 167311
답변완료
수정부탁드립니다
하락만표시되데 상승도표시 부탁드립니다.
input : Period(120);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0);
Array: HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
var : tx1(0),tx2(0),tx3(0),tx4(0);
var : tx99(0),tx99count(0),l1(0),l2(0),l3(0),l4(0),A2(0),A3(0);
Plot1(value12);
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
Condition99 = False;
tx99count = 0;
}
Else
{
If LoVal[0] >= L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date22 = date[0];
time22 = stime[0];
Condition99 = False;
}
Else
{
if Condition99 == False and value12 <= value11-0.5 and H >= value12+PriceScale*3 Then
{
Condition99 = true;
l1 = value12;
l2 = l1[1];
l3 = l2[1];
l4 = l3[1];
tx99count = tx99count+1;
A2 = 0;
if tx99count >= 2 Then
{
if max(L1,L2) <= min(L1,L2)+PriceScale*2 Then
{
A2 = 1;
tx2 = Text_New(date12,time12,L1-PriceScale*0,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Cyan);
Text_SetSize(tx2,30);
}
}
A3 = 0;
if tx99count >= 3 Then
{
if max(L1,L2,L3) <= min(L1,L2,L3)+PriceScale*5 Then
{
A3 = 1;
tx3 = Text_New(date12,time12,L1-PriceScale*0,"●");
Text_SetStyle(tx3,2,2);
Text_SetColor(tx3,Black);
Text_SetSize(tx3,25);
}
}
if A2 == 1 and A3 == 1 Then
{
tx4 = Text_New(date12,time12,L1-PriceScale*0,"●");
Text_SetStyle(tx4,2,2);
Text_SetColor(tx4,Gray);
Text_SetSize(tx4,40);
}
}
}
}
}
2023-03-18
1542
글번호 167310
답변완료
피라미딩별청산1
2월7일
b1 진입 xb1로 청산 ok
b2 진입 xb2로 청산 ok
2월8일
b1 진입 xb1로 청산 ok
b2 진입 xb1로 청산 <---------- xb2로 청산되어야 함
b1 진입 xb1 청산은 답변하여 주신 수식이고
b2 진입 xb2는 제가 추가한 수식입니다.
추가한 수식의 오류를 수정하여 주시기 바랍니다.
********************************************************************************
input:butd41(99999),butd42(99999),fly(0.95);
input : exst(103000),ex하락1(700),ex하락2(200);
input : ls(0.4),tr(0.8);
var : T1(0),Entry(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if data2(c)>data3(c) and entry==0 and
!(data4(c<highd(0)-butd41)) then
Buy("b1");
if data2(c)>data3(c)+fly and entry==1 and
!(data4(c<highd(0)-butd42)) then
Buy("b2");
var : Tcond(false,Data2),h2(0,Data2),L2(0,Data2);
if Data2(Bdate != Bdate[1]) Then
Tcond = False;
if Data2((sdate != sdate[1] and stime >= exst) or
(sdate == sdate[1] and stime >= exst and stime[1] < exst)) Then
{
Tcond = true;
h2 = Data2(h);
l2 = Data2(l);
}
if Tcond == true Then
{
if Data2(H) > h2 Then
h2 = Data2(h);
if Data2(L) < l2 Then
l2 = Data2(l);
if IsEntryName("b1") and data4(c<h2-ex하락1) then
exitlong("xb1");
if IsEntryName("b2") and data4(c<h2-ex하락2) then
exitlong("xb2");
}
SetStopLoss(ls,PercentStop);
SetStopTrailing(tr,0,PercentStop,1);
2023-04-24
1129
글번호 167309