커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7325
글번호 230811
답변완료
수식 부탁 드립니다
식을 나름 줄여봤고요,plot30,plot31을plot60 아래로 옮기고 TEMA2 = TEMA1;도 추가해보았슴니다 그런데 plot60이 검은색일때plot31이 plot30에 일치했다가 plot60이다시 연두색이되면 plot31이 다시 원래자리로 돌아가는데요 plot60이 다시 연두색이되면 그때 plot31선의 시작이 plot30 에서 출발하게 수정좀부탁드리겠슴니다 감사합니다
Input: 시간보정(0),폭보정(1.5),지수호가테마LENGTH1(10),급변(0.05);
var : AsksMA(0),BidsMA(0), Period(1),idx(0),EP(0),E11(0),E12(0),E13(0),E21(0),E22(0),E23(0);
Var : value(0);
Var : valuec(0);
var : va71(0);
var : va91(0);
var : va93(0);
var : va96(0);
VAR : TEMA1(0);
VAR : TEMA2(0);
VAR : vmin(0);
VAR : vmax(0);
//*************************************************************
BidsMa = ma(bids,Period);
AsksMA = ma(asks,Period);
value = ma(bids,period)-ma(asks,period)+29000;
//*************************************************************
//*************************************************************
va91=((c-c[1])/c[1]*100);
va93=((value-value[1])/value[1]*1.49);
//*************************************************************
if stime == 시간보정*100 or (stime > 시간보정*100 and stime[1] < 시간보정*100) or Bdate != Bdate[1] Then
{
PLOT62(100,"시간보정");
idx = 0;
var1 = 100;
var2 = var1;
}
Else{
idx = idx+1;
var1 = var1+(var1*(va91/100));
var2 = var2+(var2*(va93/95));
}
EP = 2/(지수호가테마LENGTH1+1);
if idx == 0 Then{
E11 = var1;
E21 = var2;
}
Else{
E11 = var1 * EP + E11 * (1-EP);
E21 = var2 * EP + E21 * (1-EP);
}
if idx <= 1 Then{
E12 = E11;
E22 = E21;
}
Else{
E12 = E11 * EP + E12 * (1-EP);
E22 = E21 * EP + E22 * (1-EP);
}
if idx <= 2 Then{
E13 = E12;
E23 = E22;
}
Else{
E13 = E12 * EP + E13 * (1-EP);
E23 = E22 * EP + E23 * (1-EP);
}
TEMA1 = (3 * E11) - (3 * E12) + (E13);
TEMA2 = (3 * E21) - (3 * E22) + (E23);
//******************************
vmin = min(TEMA1 ,TEMA2 );
vmax = max(TEMA1 ,TEMA2 );
//******************************
va71 =( TEMA2 - TEMA1 )+100.3;
#####################################################################################################
PLOT60(va71,"55",iff(va71[1]-폭보정 > va71,GREEN,iff(va71[1]+폭보정 < va71,GREEN,BLACK)));
if abs (va71[1] - va71) < 폭보정 then{
PLOT64(va71-0.1,"커플링");
//var1 = 100;
TEMA2 = TEMA1;
// PlaySound("C:예스트레이더dataSoundBandi.wav");
}
PLOT30(TEMA1 ,"지수테마",iff((TEMA1 )>(TEMA1)[1]+00,BLACK,iff((TEMA1 )<(TEMA1 )[1]-00,BLACK,BLACK)));
PLOT31(TEMA2 ,"호가테마");
//PLOT31(TEMA2 ,"호가테마",iff(va71[3]-폭보정 > va71,RED,iff(va71[3]+폭보정 < va71,RED,GREEN)));
########################################################################################################
if CrossUp(( TEMA2 ),(TEMA1)) Then{
PLOT45((vmin )-0.01,"매수막대");
// PlaySound("C:UsersAdministratorDesktop효과click01.wav");
}
if CrossDown(( TEMA2 ),(TEMA1)) Then{
PLOT46((vmin )-0.01,"매도막대");
// PlaySound("C:UsersAdministratorDesktop효과click02.wav");
}
if va71[1]+급변 < va71 Then {
PLOT18((va71 )+0.01,"매도");
}
if va71[1]-급변 > va71 Then {
PLOT19((va71 )+0.01,"매수");
}
if stime == 시간보정*100 then {
PLOT62(100,"시간보정");
}
2017-04-02
315
글번호 108377
답변완료
간단 수식문의좀...
해선에서
1. 현재가가 (봉완성시) 이동평균선 120 을 크로스업 하고 (and)
이평선 120 이 360 을 크로스업 하고나서, 순방향 ( )틱 상승후에 매수
반대로 현재가가 120 이평을 크로스업 하고
120 이평이 360 이평을 크로스 다운할때
순방향 ( )틱 하락후에 매도
----------------------------------------------------------
2. 현재가가 일 중심선을 상향돌파하면 매수 볼린저밴드 상단에 닿으면 매수청산
중심선 하향 돌파시 매도, 볼린저 하단에 닿으면 매도청산
- 매뉴얼을 보고 해보려고 하는데 잘 안되네요..
2017-03-30
232
글번호 108376
답변완료
문의드립니다.
일일히 수고하심에 감사드립니다.
다음의 식을 부탁드립니다.
오늘 전일보다 거래량이 1.2배이상의 윗꼬리가 양봉 몸통의 50%이상 양봉이면서
P일 전부터 오늘까지 포함한 기간동안에 전일보다 거래량이 1.2배이상이면서
윗꼬리가 양봉 몸통의 50%이상의 양봉이 2개이상 발생한 종목 을 검색하는 식
2017-03-30
231
글번호 108375
답변완료
수식 문의 드립니다
각각 다른 내용 입니다.
하루 한국 시간 기준 오전 9시부터 새벽 3시까지 기준으로
손실 30틱이상일 경우 매매 중지 후, 9시 재시작.
----
매수 조건: 최근 15 봉이내에 틱봉상 5일선이 7일선을 상향 돌파한적있고, 현재 보유포지션 없으며, 최근 1시간이내에 30분봉 스토캐스틱 K가 D를 상향 돌파한적이 없을때,
30분봉 스토캐스틱 K 가 D를 상향돌파시매수
----
스토캐스틱 K 가 직전 3시간동안 계속 낮아졌음을 확인(60분봉 사용).
----
부탁드립니다
감사합니다
2017-03-30
268
글번호 108374
답변완료
문의드립니다
#52654 질의 답변 감사합니다
수정 부탁드릴께요
아래수식을 특정월기간 으로수정부탁드립니다
plot로 해주시면 더욱 감사합니다
예)20160901~20161231 으로
최고가= 빨간색 최저가= 파랑색 절반가액=그린색 수정부탁드립니다
-20%선 빨강-30%파랑 -50% 그린
답변주신 수식지표또한
최고가= 빨간색 최저가= 파랑색 절반가액=그린색 수정부탁드립니다
-20%선 빨강-30%파랑 -50% 그린
var : D1(0),T1(0),HH(0),LL(0),RR(0),f1(0),f2(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0);
var : TL7(0),TL8(0),TL9(0),TL10(0),TL11(0);
if sdate > sdate[1]+30 Then{
D1 = sdate;
T1 = stime;
HH = H;
LL = L;
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
RR = (HH+LL)/2;
f1 = HH-LL;
f2 = RR-LL;
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL1 = TL_New(D1,T1,HH,sdate,stime,HH);
TL2 = TL_New(D1,T1,LL,sdate,stime,LL);
TL3 = TL_New(D1,T1,RR,sdate,stime,RR);
TL_Delete(TL4);
TL_Delete(TL5);
TL_Delete(TL6);
TL_Delete(TL7);
TL_Delete(TL8);
TL4 = TL_New(D1,T1,RR-F2*(1/6),sdate,stime,RR-F2*(1/6));
TL5 = TL_New(D1,T1,RR-F2*(2/6),sdate,stime,RR-F2*(2/6));
TL6 = TL_New(D1,T1,RR-F2*(3/6),sdate,stime,RR-F2*(3/6));
TL7 = TL_New(D1,T1,RR-F2*(4/6),sdate,stime,RR-F2*(4/6));
TL8 = TL_New(D1,T1,RR-F2*(5/6),sdate,stime,RR-F2*(5/6));
TL_Delete(TL9);
TL_Delete(TL10);
TL_Delete(TL11);
TL9 = TL_New(D1,T1,LL-f1*0.2,sdate,stime,LL-f1*0.2);
TL10 = TL_New(D1,T1,LL-f1*0.3,sdate,stime,LL-f1*0.3);
TL11 = TL_New(D1,T1,LL-f1*0.5,sdate,stime,LL-f1*0.5);
2017-04-02
237
글번호 108373
답변완료
문의드립니다
안녕하세요
진입후 일정시간, 또는 일정 수의 캔들 생성후에도 특정 가격을 돌파하지 못하면 청산하는 수식을 알고싶습니다.
예를들면, 국내선물 매수진입을 한 이후 1)20분이 경과한 후, 2)5개 캔들이 생성된 후에도
진입가격 대비 0.5포인트선을 돌파하지 못하면 청산시키고자 합니다
감사합니다
2017-03-30
212
글번호 108365
답변완료
부탁드립니다
input : 분간격(60);
var : TF(0),cnt(0),S1(0),D1(0),TM(0);
Array : CC[100](0),HH[100](0),LL[100](0),OO[100](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = Bdate;
}
TF = TimeToMinutes(stime)%60;
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{
OO[0] = O;
HH[0] = H;
LL[0] = L;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if H > HH[0] then
HH[0] = H;
if L < LL[0] then
LL[0] = L;
plot1(CC[1]);
plot2(HH[1]);
}
위 지표를 data2 에 적용할수있게 부탁드립니다.
2017-03-30
215
글번호 108360
답변완료
이전에 들어갔던 포지션에 대한 조건도 설정이 가능할까요?
시초가에 진입해서 손실시 스위칭을 하려는 시스템을 만드려고 하는데
시초가에 들어가고 신호 발생시 바로 청산하는 전략인데요
청산했을때가 손실로 나면 반대 방향으로 스위칭을 하는 시스템을 만드려고 합니다.
if 손실시스위칭 then 이런 식으로 표현이 가능할까요?
2017-03-30
211
글번호 108356
답변완료
수식부탁드립니다
피라미딩중 최근 진입과 최근 직전 진입이 모두 손절(setstoploss)되는 경우
(만약 총 피라미딩 가능수량이 10개이고 실제진입이 5개 되었는데 가장 최근 진입 2개가 손절
된 경우)
추후 피라미딩 추가 진입이 가능한 경우라도, 추가 진입(피라미딩)은 하지않고 기존 진입분만
청산시점에서 청산하게 만들고 싶습니다.
라고 질문 드려 답을 주셔서 다음과 같이 식을 적용해서 시스템에 적용 했습니다
if MarketPosition == 1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "StopLoss" Then
bloss = bloss+1;
Else
bloss = 0;
}
if Bloss < 2 and MaxContracts < 20 and EntryPrice + 10.0 > LatestEntryPrice Then
buy("bb",atstop,LatestEntryPrice(0)+1.0,1);
}
Else
bloss = 0;
if MarketPosition == -1 Then
{
if CurrentContracts < CurrentContracts[1] Then
{
if LatestExitName(0) == "StopLoss" Then
sloss = sloss+1;
Else
sloss = 0;
}
if sloss < 2 and MaxContracts < 20 AND EntryPrice - 10.0 < LatestEntryPrice Then
sell("ss",atstop,LatestEntryPrice(0)-1.0,1);
}
Else
sloss = 0;
그림에서 보면 2번 손절 후 청산이 상황이 발생하여 신규 진입없이 청산만 이루어 졌는데
청산 후 동일 진입 지점이 다시오니 신규 진입이 발생했습니다
신규 진입이 없이 기존 보유분을 청산만 가능하도록 식을 수정하고 싶습니다
그림은 그림판을 사용해 작성했습니다
2017-03-30
236
글번호 108353