커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3732
글번호 230811
답변완료
시스템식 문의
input : N(5);
if SwingHigh(1,h,N,N,N*2+1) != -1 Then{
plot1(H[N],"1",RED);
}
if SwingLow(1,L,N,N,N*2+1) != -1 Then{
plot1(L[N],"1",blue);
}
위의 보조지표식을 이용하면, 스윙하이 스윙로우를 이은 선이 나타납니다.
시스템식에서 스윙하이, 스윙로우를 필터링의 한 방식으로 이용하여,
1분봉을 기준으로 하는 진입조건에서 손익절틱의 경우,
익절 100틱, 손절 100틱을 설정하고
'1분봉에서 롱진입시 10분봉 가장 최근 스윙하이값보다 높게 목표익절가가 설정된경우 진입하지 않음.'
'1분봉에서 숏진입시 10분봉 가장 최근 스윙로우값보다 낮게 목표익절가가 설정된경우 진입하지 않음.'
조건을 추가하려면, 시스템식에서 어떤식으로 수식을 추가해야 할까요?
2020-05-08
892
글번호 138702
답변완료
수익률 별로 청산 수식을 다르게 설정하는 수식 부탁드릴께요~~
해외선물입니다.
수익율 상태별 청산 조건이 다른 수식을 적용하고 싶어서요
수익이 1% 미만과 1~2% 사이 2~3% 사이일때와 3% 초과일때 각각 적용 변수를 두고 싶습니다.
수익이 1% 미만일때 청산 수익1 및 하락1 (아래 트레일링 청산)
if MarketPosition == 1 then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익1 Then
ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락1);
}
수익이 1-2% 미만일때 청산 수익2 및 하락2 (아래 트레일링 청산)
if MarketPosition == 1 then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익2 Then
ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락2);
}
수익이 2-3% 미만일때 청산 수익3 및 하락3 (아래 트레일링 청산)
if MarketPosition == 1 then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익3 Then
ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락3);
}
수익이 3% 초과일때 청산 수익4 및 하락4 (아래 트레일링 청산)
if MarketPosition == 1 then
{
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익4 Then
ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락4);
}
2020-05-08
950
글번호 138697
답변완료
함수요청
안녕하세요?
스토케스틱을 활용한 15분봉 전략에 대해 스크립트 작성 요청드립니다.
// 매수 진입 : SlowK 가 SlowD 를 상한선 위에서 상향 돌파
// 매도 진입 : SlowK 가 SlowD 를 하한선 아래에서 하향 이탈
// 매수 청산 : SlowK 가 SlowD 를 상한선 위에서 하향 이탈
// 매도 청산 : SlowK 가 SlowD 를 하한선 아래에서 상향 돌파
// 봉완성 익봉 시가 거래입니다.
// 거래시간은 진입기준으로 신호생성을 오전 9시부터 23시까지 입니다.
// 거래횟수는 진입기준 일간 5회 이하입니다.
2020-05-08
983
글번호 138696
답변완료
질문드립니다.
안녕하세요?
buy에서 atstop은 지정한 가격이상 가격발생하면 매수
로 알고있습니다.
예를들어
현재가가 전봉의 종가+2틱이 되면 매수한다고 할때,
buy("b",atstop,C+PriceScale*2); 이라 수식을 작성하지 않습니까!
저는 무조건 전봉의 종가+2틱의 가격에서 매수를 하고싶은데,
위 atstop 수식은, 종가+3틱, 종가+4틱에서도 매수될 가능성이 있는거죠? ('이상'이니깐)
만약 그렇다면, 무조건 그가격에서만 사고싶으면 어떤 명령어를 사용해아하나요?
감사합니다.
2020-05-08
875
글번호 138695
답변완료
문의드립니다.
var : emac(0),emah(0);
emac = ema(close,x);
emah = ema(high,y);
plot1(emac-emah,"plot1",blue);
PlotBaseLine1(1.5);
plot1이 PlotBaseLine을 돌파하는 종목을
검색하고 싶습니다.
감사합니다.
2020-05-08
948
글번호 138691
답변완료
시스템식 문의
#ma위 롱진입
if
롱진입 조건
Then buy("롱",AtStop,C[0]);
#ma아래 숏진입
if
숏진입 조건
Then sell("추세숏",AtStop,C[0]);
이와같은 형태의 수식을 통해 시스템식을 구성한다고 할때,
ma위에서 롱진입하고, ma아래에서 숏진입을 하게 됩니다.
청산조건을
롱진입의 경우, ma를 (위에서 아래로)터치할경우 '시장가 청산'
숏진입의 경우, ma를 (아래에서 위로)터치할경우 '시장가 청산'
의 방식으로 하고 싶을때, 청산수식을 어떤식으로 해야 할까요?
종가기준 크로스업 크로스다운이 아닌, 장중 가격이 ma를 터치하기만 하면 시장가로 청산하고 싶습니다.
2020-05-08
1117
글번호 138686
답변완료
수식 감사합니다. (수정 부탁 드립니다)
아래 수식 감사합니다.
그런데 수정을 좀 부탁 드려야 할것 같습니다.
지금 수식을 넣어보니 전고점을 갱신하지 않았는데도 고점의 위치가 바뀌네요.
고점을 갱신하지 못하면 기존 고점을 유지하게 부탁 드립니다.
저점도 저점을 갱신하지 못하면 기존 저점을 유지하게 부탁 드립니다.
고점이 생기고 그 고점을 돌파하면 최고점이 생겨서 2줄이 나오게 되는데..
그다음 최고점을 돌파하면 전 최고점은 고점이 되고 현재 고점이 최고점이 되게
부탁 드립니다.
그리고 최고점이 갱신이 안되면 계속 지존값을 유지하려고 합니다.
저점도 같은 방법으로 부탁 드립니다.
감사합니다.
안녕하세요
예스스탁입니다.
#data2 : 선물매수호가총건수
#data3 : 선물매도호가총건수
var : TL1(0,data1),TL2(0,data1),TL3(0,data1),TL4(0,data1);
var : diff(0,data1),hh(0,data1),ll(0,data1);
diff = data2(c)-data3(c);
if bdate != bdate[1] Then
{
hh = diff;
ll = diff;
TL_Delete(TL1);
TL_Delete(TL2);
TL1 = TL_New(sdate,stime,H,NextBarSdate,NextBarStime,H);
TL2 = TL_New(sdate,stime,L,NextBarSdate,NextBarStime,L);
TL_Delete(TL3);
TL_Delete(TL4);
TL3 = TL_New(sdate,stime,H,Sdate,Stime,H);
TL4 = TL_New(sdate,stime,L,Sdate,Stime,L);
}
else
{
if diff > hh Then
{
hh = diff;
TL_SetBegin(TL3,sdate,stime,TL_GetValue(TL1,sdate,stime));
TL_Setend(TL3,NextBarSdate,NextBarStime,TL_GetValue(TL1,sdate,stime));
TL_SetBegin(TL1,sdate,stime,h);
TL_Setend(TL1,NextBarSdate,NextBarStime,h);
}
if diff < ll Then
{
ll = diff;
TL_SetBegin(TL4,sdate,stime,TL_GetValue(TL2,sdate,stime));
TL_Setend(TL4,NextBarSdate,NextBarStime,TL_GetValue(TL2,sdate,stime));
TL_SetBegin(TL2,sdate,stime,l);
TL_Setend(TL2,NextBarSdate,NextBarStime,l);
}
}
TL_SetExtRight(TL1,true);
TL_SetExtLeft(TL1,true);
TL_SetExtRight(TL2,true);
TL_SetExtLeft(TL2,true);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,BLUE);
TL_SetExtRight(TL3,true);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL4,true);
TL_SetExtLeft(TL4,true);
TL_SetColor(TL3,RED);
TL_SetColor(TL4,BLUE);
plot1(hh,"최고건수차",RED);
plot2(ll,"최저건수차",blue);
즐거운 하루되세요
> 오늘도수익 님이 쓴 글입니다.
> 제목 : Re : Re : 지표 수정 부탁 드립니다.
> 수식 감사합니다.
현재 최저점과 최고점만 표시해서 챠트에 표시가 되는데..
고점과 저점을 2개로 표시해서 차트에 표시 부탁 드립니다.
첫번째 고점이 생기고 그다음 고점이 생기면 첫번째 고저도 표시하고
새로 갱신한 고점도 표시를 했으면 합니다.
즉 2개를 다 표시했으면 합니다.
새로운 고점이 생기면 전고점과 현재의 고점 이렇게 2개를 표시했으면 합니다.
저점도 같은 방법으로 2개를 표시했으면 합니다.
부탁 드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 지표 수정 부탁 드립니다.
>
안녕하세요
예스스탁입니다.
#data2 : 선물매수호가총건수
#data3 : 선물매도호가총건수
var : TL1(0,data1),TL2(0,data1);
var : diff(0,data1),hh(0,data1),ll(0,data1);
diff = data2(c)-data3(c);
if bdate != bdate[1] Then
{
hh = diff;
ll = diff;
TL_Delete(TL1);
TL_Delete(TL2);
TL1 = TL_New(sdate,stime,H,NextBarSdate,NextBarStime,H);
TL2 = TL_New(sdate,stime,L,NextBarSdate,NextBarStime,L);
}
else
{
if diff > hh Then
{
hh = diff;
TL_SetBegin(TL1,sdate,stime,h);
TL_Setend(TL1,NextBarSdate,NextBarStime,h);
}
if diff < ll Then
{
ll = diff;
TL_SetBegin(TL2,sdate,stime,l);
TL_Setend(TL2,NextBarSdate,NextBarStime,l);
}
}
TL_SetExtRight(TL1,true);
TL_SetExtLeft(TL1,true);
TL_SetExtRight(TL2,true);
TL_SetExtLeft(TL2,true);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,BLUE);
plot1(hh,"최고건수차",RED);
plot2(ll,"최저건수차",blue);
즐거운 하루되세요
> 오늘도수익 님이 쓴 글입니다.
> 제목 : 지표 수정 부탁 드립니다.
> 2
호가잔량건수이면 참조데이타를 이용하셔야 합니다.
차트에 선물매수호가총건수와 선물매도호가총건수를 참조데이타로 차트에 추가하고 아래식 적용하시면 됩니다.
참조데이타는 차트왼쪽 상단의 종목선택버튼 중 오른쪽 버튼 클릭하면 차트에 추가하실 수 있습니다.
참조데이타는 차트에 추가되는 순서로 data2부터 data99까지 데이타번호가 부여됩니다.
선물매수호가총건수를 먼저 추가하고 선물매도호가총건수를 나중에 추가하시면 됩니다.
해당 데이타는 종목선택화면 참조탭에 있습니다.
#data2 : 선물매수호가총건수
#data3 : 선물매도호가총건수
var : diff(0,data1),hh(0,data1),ll(0,data1);
diff = data2(c)-data3(c);
if bdate != bdate[1] Then
{
hh = diff;
ll = diff;
}
if diff > hh Then
hh = diff;
if diff < ll Then
ll = diff;
plot1(hh,"최고건수차",RED);
plot2(ll,"최저건수차",blue);
제가 설명을 잘못 한것 같습니다.
최고건수차와 최저건수차가 나왔을때 90틱 지표에 수평선으로 표시하고 싶습다.
최고건수가 나온 시간에 90틱 챠트에 수평선으로표시하고
최저건수가 온 시간에 90틱 차트에 수평선으로 표시하고 싶습다.
2020-05-08
1263
글번호 138685
답변완료
문의드립니다.
prd = input(60, title="Period", minval=5)
src = input(close, title="Source")
threshold = input(80, title="Threshold %", minval =0 )
mkt = 0
for i = 0 to prd-1
for j = i + 1 to prd
mkt := mkt + iff(src[i] > src[j], 1, iff(src[i] < src[j], -1, 0))
col = iff(mkt > (prd * (prd-1)) / 200 * threshold, red, iff(mkt < (prd * (prd-1)) / 200 * -threshold, lime, gray))
plot(mkt, color=col, style=columns)
변환 문의드립니다. 감사합니다.
2020-05-08
1152
글번호 138678
답변완료
수평선
5분봉차트에서
오늘을 기준으로 직전일 최고점(전고점)을
오늘만 5분봉 차트에 수평선으로 표시했으면 좋겠습니다.
2020-05-08
993
글번호 138677