커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8142
글번호 230811
답변완료
수식 수정문의합니다
var : Diff2(0,data2),diff3(0,data3),sum(0,data2);
diff2 = data2((C-OpenD(0))/PriceScale);
diff3 = data3((C-OpenD(0))/PriceScale);
sum = diff2+diff3;
plot1(Diff2,"data2콜");
plot2(Diff3,"data3풋");
plot3(sum,"양합");
안녕하세요
지난번 만들어주신 양합차트입니다
전체적으로 아주 만족합니다
감사합니다
그런데
콜과풋 양합차트를 실제 변화한 틱수만큼만 적용해서 만들었더니
한가지 문제가 생긴게
3.00을 넘어서 부터는 1틱에 0.05씩 증가해서 차트에 오류가 발생합니다
3.05부터 1틱에 * 5를 해서 적용할 수 있을까요
해결할 방법좀 찾아주세요
부탁드립니다
2015-01-09
215
글번호 82077
답변완료
문의드립니다(피라미딩)
39827번과 관련해서 식을 넣으려고 했는데 잘 안되네요^^;;
아래식을 피라미딩 진입 들어갈때 전에 진입한 것이 1포인트 이상 이익났을때만
추가 진입이 될수 있도록 수정 부탁드립니다..
=============================================================
var:피봇(0),저항1(0),저항2(0),지지1(0),지지2(0),
ilmok1(0), ilmok2(0), ilmok3(0), sunhang1(0), sunhang2(0),
emaV(0),중기(0),중장기(0),장기(0), MacdV(0), MacdS(0), MacdOsc(0),
LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0),adxv(0),atrv(0),atrstop(0),cnt(0),posHigh(0), posLow(0);
피봇 = (DayHigh(1)+daylow(1)+dayclose(1))/3 ;
저항1 = 2 * 피봇 - daylow(1);
저항2 = 피봇 + DayHigh(1)-DayLow(1);
지지1 = 2 * 피봇 - DayHigh(1);
지지2 = 피봇 - DayHigh(1) + DayLow(1);
중기=ema(c,15);
중장기=ema(c,30);
장기=ema(c,400);
adxv=adx(20);
atrv=atr(10);
atrstop=iff(adxv>25 and adxv>adxv[1],atrv*2,atrv*10);
var1 = Highest(h,BarsSinceEntry+1);
var2 = Lowest(L,BarsSinceEntry+1);
#1 macd + ema
emaV = ema(C,300);
MacdV = macd(20,76);
MacdS = ema(MacdV,190);
MacdOsc = MacdV-MacdS;
#2 #1을 다시 변형
LemaV = ema(C,300*1.8);
LmacdV = macd(20*1.8,76*1.8);
LmacdS = ema(MacdV*1.8,190*1.8);
LmacdOsc = (LmacdV-LmacdS)*1.8;
If sTime>=090500 and CrossUp(c, 저항2) then Buy("일번buy");
If sTime>=091500 and CrossDown(C,지지2) then Sell("사번sell");
if stime>=092000 and CrossUp (c, 지지1) then Buy("삼번buy");
if stime>=092000 and CrossDown(c, 저항1) then Sell("이번sell");
if IsEntryName("일번buy") Then
{ExitLong("일번atrEL", AtStop, Var1-ATRstop);
If c<ema(c,20) and ema(c,20)[1]>Ema(c,20) then ExitLong("일번2EL");
}
if IsEntryName("사번sell") Then
{ ExitShort("사번atrES",AtStop, Var2+ATRstop);
if CrossUp(c,중기) then ExitShort("사번2ES");
}
if IsEntryName("삼번buy") then {
ExitLong("삼번atrEL", AtStop, Var1-ATRstop);
If CrossDown(c,저항1) then ExitLong("삼번2EL");
}
if IsEntryName("이번sell") then {
ExitShort("이번atrES", AtStop, Var2+ATRstop);
If CrossUp(c,피봇)and c<EntryPrice then ExitShort("이번2es");
}
ilmok1 = (highest(H,15)+lowest(L,15))/2;
ilmok2 = (highest(H,15*3)+lowest(L,15*3))/2;
ilmok3 = (highest(H,15*3*2)+lowest(L,15*3*2))/2;
sunhang1 = (ilmok1+ilmok2)/2 ;// "선행스팬1"
sunhang2 = ilmok3; // "선행스팬2"
if dayindex() == 23+1 then {
if accumN(iff( C > max(sunhang1, sunhang2),1,0),24) == 24 then buy("오번Buy");
if accumN(iff( C < min(sunhang1, sunhang2),1,0), 14) == 14 then sell("육번Sell");
}
if isEntryname("오번Buy") Then {
if CrossDown(C, max(sunhang1, sunhang2)) then ExitLong("오번el1");
if MarketPosition == 1 then ExitLong("5익절", atlimit, EntryPrice+4);
}
if isEntryname("육번Sell") then {
if CrossUp(C, min(sunhang1, sunhang2)) Then exitshort("육번es1");
if MarketPosition == -1 then ExitShort("6익절", atlimit, EntryPrice-4);
}
if CrossUp(중기, 장기) then buy("칠번Buy");
if CrossDown(ema(c,30), ema(c,580)) then sell("팔번Sell");
if IsEntryName("칠번Buy") then {
ExitLong("칠번atrel", AtStop, Var1-ATRstop);}
if IsEntryName("팔번Sell") Then {
ExitShort("팔번atres",AtStop, Var2+ATRstop);}
# 매수진입
If stime >=090500 and LemaV > LemaV[1] then {
if CrossUp(C, emaV) Then
buy("구번buy");
}
# 매도진입
If stime >=090500 and LemaV < LemaV[1] then {
if Crossdown(C, emaV) Then
sell("십번sell");
}
if IsEntryName("구번buy") Then
{ExitLong("구번atrel", AtStop, Var1-ATRstop);
}
if IsEntryName("십번sell") Then
{ExitShort("십번atres",AtStop, Var2+ATRstop);
}
SetStopLoss(0.6,PointStop);
SetStopEndofday(144200);
2015-01-09
220
글번호 82075
답변완료
시스템 수식 2개 부탁드립니다.
매수조건은 동일하고 매도조건이 다른 2개의 수식을 부탁드립니다.
매수조건이 시초가가 전일종가와 같은때 갭상승때 갭하락때의 경우의 수가 다 있으므로
거의 매수가 될거 같습니다. 그리고 [2-2]의 매도조건은 분봉이 다른 챠트에서의
조건입니다.
질문: 이 두개의 수식을 운영할 때 A로직으로 매수후 B로직으로 수식을 바꿔서
매도가 가능한지요?? 매수 포인트(포지션)이 같으므로 가능할지도 모르겠다는 생각이 드네요.
[1] 5분봉 – 매수조건
1.전일종가 = 시초가 : 시초가 매수
2.전일종가 < 시초가(갭 상승)
1)시초가 이후 처음 발생하는 Stochastic(20,12,12) GoldenCross 매수
2)시초가 이후 하락하다가 전일종가대비 +1%와 시초가 사이에 도달하였다가 반등하는 저점에서 매수
3.전일종가 > 시초가(갭 하락)
1)-2% 보다 높게 갭 하락시: 전일 종가 도달시 매수
2)-2% 보다 낮게 갭 하락시: 최저가 대비 +2% 구간에서 매수
[2-1] 5분봉 - 매도조건
1.120이평 하향이탈
2.20이평과 60이평 DeadCross
두 조건 모두 만족시 매도
[2-2] 30분봉 - 매도조건
Stochastic(20,12,12) DeadCross
[3] 익절조건
최고가 대비 5% 하락시 매도
[4] 손절조건
진입가격 대비 3% 하락시 매도
[5] 기타조건
1.피라미딩 설정의 진입횟수 조정에 의해서 매수가 가능해야 함
2.하루 이내에 매수 후 매도가 된다면 더 이상 진입 제한되어야 함.
2015-01-09
204
글번호 82074
aaace 님에 의해서 삭제되었습니다.
2015-01-09
0
글번호 82073
aaace 님에 의해서 삭제되었습니다.
2015-01-09
22
글번호 82072
답변완료
시간 누적 지표
틱차트의 경우는 틱봉이 언제 완성되는지 알수있는데...
분봉 차트에서 캔들완성까지 시간이 얼마 남았는지 알수있는 지표 소개 부탁 합니다.
틱차트는 ticks 로 누적상황을 알 수 있고요.
5 분봉에서는 5분봉의 완성시점을 어케 알수있을까요 ?
2015-01-08
237
글번호 82071
답변완료
수식 문의 드려요...
첨부파일은 메리츠화재 2015년 1월 8일 까지의 차트입니다..
if CrossUp(c,ma(c,120)) Then
find(1);
if crossup(c,highest(h,20)[1]) and c > ma(c,120) then
find(1);
위 두가지의 검색식에서 검색이 되야하는거 아닌가요??
제가 수식을 잘못 이해하고있는 건가요??
2015-01-08
201
글번호 82070
답변완료
수식문의 드립니다.
덕분에 공부 잘하고 있습니다.
항상 감사드립니다.
어제 문의 드린 내용입니다
-------------------------------------------------------------------------------
> HI_ki**** 님이 쓴 글입니다.
> 제목 : 문의
> 안녕하세요
만들어주신 수식으로 공부 잘하고 있습니다.
실전 시스템을 만들기 앞서
지난 차트의 검증을 해봐야 하는데 수식이 실전에 쓰이는 부분과 검증의 부분이
차이가 나는부분은 관리자님께서도 더 잘아시리라 믿습니다.
제가 생각하는 부분은 현재가가 이평선부근 약 1%이격도 보이면 매수시점을 나타내려
하는데 실전에 쓰일 수식은 그냥 현재가로 개념을 세우면 될것 같습니다만,
지난 차트의 검증은 현재가 설정을 하면 , 진행되는 과정인 실전수식은 매수가 되지만
지난차트의 경우는 완성된 봉이 이평선에 제가 원하는 이격을 넘어가 버리면 매수가
안됩니다. 이런경우는 어떻게 수식을 짜야 할까요?
그래서 다른분께서 올려주신 부분을 검색을 하니 캔들의 고가와 저가 사이를 해놓으셨
던데 그러면 캔들이 큰 경우는 매수가 캔들의 종가로 되어서 제가 원하는 매수가격
과는 편차가 너무 심합니다. 어떻게 해야 할까요?
너무 어렵습니다.. 도와주세요 ㅜㅜ
혹시 캔들의 매수시점을 종가가 아닌 저가로 할수는 있나요?
감사합니다 !!!!
------------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
if문은 모두 봉완성시입니다.
문의하신 내용은 터치할때 신호가 발생하게 작성해 드립니다.
시스템에서 터치 즉시 신호가 발생하는 타입은 atstop과 atlimit이 있습니다
atstop은 매수주문에서는 지정한 값 이상의 시세가 발생하면 신호가 발생하고
매도주문에서는 지정한 값이하의 시세가 발생하면 신호가 발생합니다.
atlimit은 매수주문에서는 지정한 값 이하의 시세가 발생하면 신호가 발생하고
매도주문에서는 지정한 값이상의 시세가 발생하면 신호가 발생합니다.
------------------------------------------------------------------------------------
이렇게 답변을 주셨네요 감사합니다. 꾸벅~
봉의 완성신호가 아닌 터치할때 신호가 발생하게 작성 부탁드립니다. 과거 검증용으로
쓰려 합니다.
과거 시세가 진행형일때 아래 가격구간을 터치할때 매수수식을 부탁드립니다.
5선 -1% ~ 1% 구간 or 10선 -1% ~ 1% 구간 and
120선의 -1% ~ 1% 구간 or 240선 -1% ~ 1% 구간
터치할때 매수
atlimit문을 쓰려니 동시만족을 구하기가 힘들더라구요. 만약 위의 조건이 안된다면
보통 과거시점에 동시만족하는 터치구간을 매수수식을 어떻게 하나요?
행복한 하루 보내세요~ 감사합니다.
2015-01-09
298
글번호 82069
답변완료
점검 부탁드립니다
수식점검 부탁드립니다.
var : value1(0), value2(0), value3(0);
var : sindex1(0), sindex2(0), Lindex1(0), Lindex2(0), sindex3(0), sindex4(0), Lindex3(0), Lindex4(0);
value1 = stochasticsD(12,5,5);
Condition1 = value1 < value1[1] and value1[1] > value1[2];
Condition2 = H < H[1] and H[1] >= H[2];
Condition3 = value1 > value1[1] and value1[1] > value1[2];
Condition4 = L > L[1] and L[1] >= L[2];
sindex1 = MRO(Condition1,15,1);
sindex2 = MRO(Condition1,15,2);
Lindex1 = MRO(Condition2,15,1);
Lindex2 = MRO(Condition2,15,2);
sindex3 = MRO(Condition3,15,1);
sindex4 = MRO(Condition3,15,2);
Lindex3 = MRO(Condition4,15,1);
Lindex4 = MRO(Condition4,15,2);
if
value1[sindex1+1] < value1[sindex2+1] and
H[Lindex1+1] > H[Lindex2+1] and
Condition1 and
Highest(H,5) == highest(H,15)
then
var1 = 1;
else
var1 = 0;
plot1(var1);
if
value1[sindex3+1] > value1[sindex4+1] and
L[Lindex3+1] < L[Lindex4+1] and
Condition1 and
Lowest(L,5) == lowest(L,15)
then
var1 = -1;
else
var1 = 0;
plot2(var1);
2015-01-08
212
글번호 82064