커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5492
글번호 230811
답변완료
수식 의뢰 부탁드립니다.
개발자님의 노고에 항상 감사드립니다.
전략1)
3회 연속손실 발생 시 당일 매매정지, 익일 재개
하지만 3회 연속손실 이후 매매신호에 의해 이익이 1회 발생하면 다시 매매재개
이 전략을 구현하려면 매매정지 이후에도 가상의 매매(?)가 계속 되어야 합니다
가능할까요?
안된다면 3회 연속손실 시 당일 매매정지, 익일 재개로 하고 싶습니다.
전략2)
아래와 같이 수식을 작성했는데 의도대로 되지 않습니다
봉수조건은 잘 되는데 최근 5개봉 동안 상승 또는 하락이 안 맞습니다
수정 부탁드립니다
#매수조건 양봉수 < 음봉수 and 최근 5개봉 동안 상승
if AccumN(iff(C> O,1,0),5) < AccumN(iff(C< O,1,0),5) and ( C[1] > C[6] ) Then
buy("long",AtMarket);
#매도조건 양봉수 > 음봉수 and 최근 5개봉 동안 하락
if AccumN(iff(C> O,1,0),5) > AccumN(iff(C< O,1,0),5) and ( C[1] < C[6] ) Then
sell("short",AtMarket);
#매수청산조건 양봉수 < 음봉수
if MarketPosition == 1 and AccumN(iff(C>0,1,0),5) < AccumN(iff(C<0,1,0),5) Then
exitlong("exitlong");
#매도청산조건 양봉수 > 음봉수
if MarketPosition == -1 and AccumN(iff(C>0,1,0),5) > AccumN(iff(C<0,1,0),5) Then
exitshort("exitshort");
2020-06-04
2023
글번호 139531
답변완료
문의드립니다
var : tx1(0),tx2(0);
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if C > O Then
var1 = var1+v;
if C < O Then
var2 = var2+v;
plot1(var1,"당일양봉총거래량",iff(var1 >var2 ,MAGENTA,BLUE));
plot2(var2,"당일음봉총거래량",iff(var1 >var2,MAGENTA,BLUE));
Text_Delete(tx1);
Text_Delete(tx2);
위수식으로 30초마다 계산되도록 하고십습니다 ~~항상감사드립니다
2020-06-04
2003
글번호 139530
답변완료
문의 드립니다.
주문 방식중에 atstop과 atlimit에 대해 문의 드립니다.
1. atstop과 atlimit은 if조건식을 충족하는 봉의 다음 봉에서
설정된 가격조건에 도달해야 신호가 발생하는 것으로 알고 있습니다.
2. 이때 atlimt은 매수의 경우 직전봉 280이라면 - 10틱 설정하면
279.5 이하에서 주문이 나가는 것으로 이해하고 있습니다.
그러니까 atlimit은 유리하게 진입하고 싶을 때 이용하는 것으로 알고
있습니다.
여기까지 맞나요?
3. 이렇게 이해하고 슬리피지를 줄여 볼 생각으로 오늘 위의 그림처럼
설정하고 체결을 시켜봤습니다.
4. 그런데 오히려 1틱 불리하게 체결이 되었습니다.
300틱 챠트에서 오늘 아침 첫봉 종가278.65에 조건만족하여
다음캔들에서 278.60에 진입이 되어야 했는데
278.7에 진입이 되었습니다. 이때 봉의 최저점은 278.6 이었기
때문에 체결이 안 될 수는 있어도 278.7에 주문이 나가는 것은
이해가 되지 않았습니다. 그래서 내가 개념을 잘못 알고 있는 것인지
궁굼하기도 하고, 또 설정창에서 올려 드린 대로 설정하는 것이
나의 의도와 맞는 것인지도 알고 싶어 문의하게 되었습니다.
5. 아.. 추가로 저렇게 설정한 atlimt으로 설정한 상태에서 시간지연 5초를
선택했다면, 가격조건 만족 후 가격조건 이상으로 반등하는 경우에
5초 후에 가격조건 이상으로 반등한 현재가로 주문이 나가는 것인지,
아니면 가격조건대로 나가는 것인지도 궁굼합니다.
감사합니다.
2020-06-03
2820
글번호 139529
답변완료
신고가 돌파후 매수 진입인데요.. 신고가를 종가기준으로 돌파했을때 진입하는 수식으로 부탁
해외선물 오일 10분봉 매매를 하고 있는데요
아래식을 적용하니 신고가발생시 진입하는 수식은 맞는데...
보니까 최고가가 신고가일때 다음봉에 진입하더라고요...
실제로 보면 신고가 돌파하지 않는 상태에서도 진입하네요...
신고가를 종가로 돌파시 다음봉에 진입하는 수식으로 변경이 가능할가요?
input :신고가평균봉수(100);
input : 신고가거래제한봉수(50);
input : 거래량(1000);
#청산 조건
input : 청산이평(50);
input : 손절이평(100);
input : 터치익절(1.5),즉시손절(0.7);
var : hi1(0),hi2(0),mav1(0),mav2(0);
mav1 = ma(C,청산이평);
mav2 = ma(C,손절이평);
Condition1 = H > highest(H,신고가평균봉수)[1];
if Condition1 == true Then
{
hi1 = index;
hi2 = hi1[1];
if (hi2 == 0 or (hi2 > 0 and hi1 > hi2+신고가거래제한봉수)) and V >= 거래량 Then
buy("매수진입",AtMarket);
}
if MarketPosition == 1 then
{
if c < EntryPrice and CrossDown(c,mav2) Then
exitlong("손절");
if c > EntryPrice and CrossDown(c,mav1) Then
exitlong("이익실현");
}
SetStopLoss(즉시손절 , PercentStop);
SetStopProfittarget(터치익절 , PercentStop);
2020-06-03
2338
글번호 139528
답변완료
지표수식 부탁드립니다.
항상 도움 주셔서 감사합니다.
종목 해외선물
타임 60분봉
요청 지표식 :
과거 100개 캔들의 고가나 저가가 가장 밀집해 있는 가격을 라인으로 표현하고 싶습니다.
즉 캔들 10의 고가와 저가가 아래와 같다고 가정할 경우
캔들1 : 고가 10, 저가 5
캔들2 : 고가 12, 저가 7
캔들3 : 고가 13, 저가 8
캔들4 : 고가 9, 저가 6
캔들5 : 고가 8, 저가 5
캔들6 : 고가 11, 저가 9
캔들7 : 고가 12, 저가 10
캔들8 : 고가 15, 저가 13
캔들9 : 고가 12, 저가 9
캔들10 : 고가 11, 저가 7
최빈값을 구해서 최빈값을 라인으로 구하고 싶습니다.
첨부한 이미지를 보면 예의 경우 최빈값은 9이므로
가격 9를 라인으로 표현하고 싶습니다.
도움 부탁드립니다.
2020-06-03
2659
글번호 139527
답변완료
시스템식 부탁드립니다.
선물 양방향으로 진입하려고 하는데요,
어제종가보다 오늘 종가가 높으면 매수방향
낮으면 매도방향으로 바꾸는 시스템식을 부탁드립니다.
2020-06-03
2373
글번호 139526
답변완료
검색수식 부탁드립니다.
안녕하세요.
검색수식 하나 부탁드립니다.
조건
1. 현재봉 포함 12봉동안 양봉(양도지 포함)이 8개이상이고 12봉의 각각 봉들이 모두 5이평위(현재봉 기준 5이평위를 말하는 것이 아님)이고 12봉동안의 총 거래대금이 50억 이상인 종목을 검색하는 수식 부탁드립니다.
미리 감사드립니다.
2020-06-03
2153
글번호 139525
답변완료
문의 드립니다.
안녕하세요
바쁜 업무에 수고 많습니다. 파동선 지표2개 또는 3개를
하나의 지표로 만드는 것이 시간이 많이 걸리고 힘드시다고 하여
개인적으로 아래 지표와 같이 지그재그 파동선을 단기, 중기, 장기로
3개를 한 지표에 만들어 보았습니다. 혹시 잘못된 부분은
없는지 아님 더 간단하게 수정은 가능한지 틀린 부분과 수정이 가능한 부분이
있으면 수정 부탁 드리며 첨부한 차트 그림과 같이 단기,중기,장기
파동선 꼭지점이 서로 같이 만날때 시스템 신호가 나오게
할 수 있으면 부탁드립니다. 감사합니다.
++++++++++++++++++
input: period1(60),period2(20),period3(5),
선두께1(5),상승색1(green),하락색1(cyan),
선두께2(3),상승색2(red),하락색2(blue),
선두께3(1),상승색3(black),하락색3(black);
Var:j1(0),J2(0),J3(0),T1(0),T2(0),T3(0);
Var: date11(0),time11(0),date12(0),time12(0),TL1(0);
Var: date21(0),time21(0),date22(0),time22(0),TL2(0);
Var: date31(0),time31(0),date32(0),time32(0),TL3(0),Tx(0),Tx1(0);
Array:HiVal1[20](0),LoVal1[20](0),HiBar1[20](0),LoBar1[20](0);
Array:HiVal2[20](0),LoVal2[20](0),HiBar2[20](0),LoBar2[20](0);
Array:HiVal3[20](0),LoVal3[20](0),HiBar3[20](0),LoBar3[20](0);
Array:r[7](0),fr[7](0);
For j1 = 0 To 19
{
HiBar1[j1] = HiBar1[j1] + 1;
LoBar1[j1] = LoBar1[j1] + 1;
}
if crossup(c,highest(c,Period1)[1]) Then
T1 = 1;
if CrossDown(c,Lowest(c,Period1)[1]) Then
T1 = -1;
If T1 == -1 Then
{
If T1[1] != -1 Then
{
For j1 = 18 DownTo 0
{
LoVal1[j1+1] = LoVal1[j1];
LoBar1[j1+1] = LoBar1[j1];
}
LoVal1[0] = close;
LoBar1[0] = 0;
date11 = date[HiBar1[0]];
time11 = stime[HiBar1[0]];
Value11 = HiVal1[0];
date12 = date[LoBar1[0]];
time12 = stime[LoBar1[0]];
Value12 = LoVal1[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색1);
}
If LoVal1[0] > close Then
{
LoVal1[0] = close;
LoBar1[0] = 0;
date12 = date[LoBar1[0]];
time12 = stime[LoBar1[0]];
Value12 = LoVal1[0];
TL_SetEnd(TL1, date12,time12,Value12);
}
}
If T1 == 1 Then
{
If T1[1] != 1 Then
{
For j1 = 18 DownTo 0
{
HiVal1[j1+1] = HiVal1[j1];
HiBar1[j1+1] = HiBar1[j1];
}
HiVal1[0] = close;
HiBar1[0] = 0;
date11 = date[LoBar1[0]];
time11 = stime[LoBar1[0]];
Value11 = LoVal1[0];
date12 = date[HiBar1[0]];
time12 = stime[HiBar1[0]];
Value12 = HiVal1[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색1);
}
If HiVal1[0] < close Then
{
HiVal1[0] = close;
HiBar1[0] = 0;
date12 = date[HiBar1[0]];
time12 = stime[HiBar1[0]];
Value12 = HiVal1[0];
TL_SetEnd(TL1, date12,time12,Value12);
}
}
TL_SetSize(tL1,선두께1);
For j2 = 0 To 19
{
HiBar2[j2] = HiBar2[j2] + 1;
LoBar2[j2] = LoBar2[j2] + 1;
}
if crossup(close,highest(close,Period2)[1]) Then
T2 = 1;
if CrossDown(close,Lowest(close,Period2)[1]) Then
T2 = -1;
If T2 == -1 Then
{
If T2[1] != -1 Then
{
For j2 = 18 DownTo 0
{
LoVal2[j2+1] = LoVal2[j2];
LoBar2[j2+1] = LoBar2[j2];
}
LoVal2[0] = close;
LoBar2[0] = 0;
date21 = date[HiBar2[0]];
time21 = stime[HiBar2[0]];
Value21 = HiVal2[0];
date22 = date[LoBar2[0]];
time22 = stime[LoBar2[0]];
Value22 = LoVal2[0];
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetColor(TL2,하락색2);
}
If LoVal2[0] > close Then
{
LoVal2[0] = close;
LoBar2[0] = 0;
date22 = date[LoBar2[0]];
time22 = stime[LoBar2[0]];
Value22 = LoVal2[0];
TL_SetEnd(TL2, date22,time22,Value22);
}
}
If T2 == 1 Then
{
If T2[1] != 1 Then
{
For j2 = 18 DownTo 0
{
HiVal2[j2+1] = HiVal2[j2];
HiBar2[j2+1] = HiBar2[j2];
}
HiVal2[0] = close;
HiBar2[0] = 0;
date21 = date[LoBar2[0]];
time21 = stime[LoBar2[0]];
Value21 = LoVal2[0];
date22 = date[HiBar2[0]];
time22 = stime[HiBar2[0]];
Value22 = HiVal2[0];
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetColor(TL2,상승색2);
}
If HiVal2[0] < close Then
{
HiVal2[0] = close;
HiBar2[0] = 0;
date22 = date[HiBar2[0]];
time22 = stime[HiBar2[0]];
Value22 = HiVal2[0];
TL_SetEnd(TL2, date22,time22,Value22);
}
}
TL_SetSize(tL2,선두께2);
r[0] = 0;
r[1] = 0.25;
r[2] = 0.375;
r[3] = 0.5;
r[4] = 0.625;
r[5] = 0.75;
r[6] = 1;
For j3 = 0 To 19
{
HiBar3[j3] = HiBar3[j3] + 1;
LoBar3[j3] = LoBar3[j3] + 1;
}
if crossup(close,highest(close,Period3)[1]) Then
T3 = 1;
if CrossDown(close,Lowest(close,Period3)[1]) Then
T3 = -1;
If T3 == -1 Then
{
If T3[1] != -1 Then
{
For j3 = 18 DownTo 0
{
LoVal3[j3+1] = LoVal3[j3];
LoBar3[j3+1] = LoBar3[j3];
}
LoVal3[0] = close;
LoBar3[0] = 0;
date31 = date[HiBar3[0]];
time31 = stime[HiBar3[0]];
Value31 = HiVal3[0];
date32 = date[LoBar3[0]];
time32 = stime[LoBar3[0]];
Value32 = LoVal3[0];
TL3 = TL_New(date31,time31,Value31,date32,time32,Value32);
TL_SetColor(TL3,하락색3);
Tx = Text_New(date31,time31,Value31,"▼");
Text_SetColor(Tx,blue);
Text_SetStyle(Tx,2,1);
Text_SetSize(tx,11);
tx = Text_New(date31,time31,Value31,NumToStr(value31,2)+NewLine);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,11);
date31 = date[HiBar3[0]];
time31 = stime[HiBar3[0]];
date32 = date[0];
time32 = stime[0];
for j3 = 0 to 6
{
fr[j3] = LoVal3[1] + ((HiVal3[0] - LoVal3[1]) * r[j3]);
}
}
If LoVal3[0] > close Then
{
LoVal3[0] = close;
LoBar3[0] = 0;
date32 = date[LoBar3[0]];
time32 = stime[LoBar3[0]];
Value32 = LoVal3[0];
TL_SetEnd(TL3, date32,time32,Value32);
}
}
If T3 == 1 Then
{
If T3[1] != 1 Then
{
For j3 = 18 DownTo 0
{
HiVal3[j3+1] = HiVal3[j3];
HiBar3[j3+1] = HiBar3[j3];
}
HiVal3[0] = close;
HiBar3[0] = 0;
date31 = date[LoBar3[0]];
time31 = stime[LoBar3[0]];
Value31 = LoVal3[0];
date32 = date[HiBar3[0]];
time32 = stime[HiBar3[0]];
Value32 = HiVal3[0];
TL3 = TL_New(date31,time31,Value31,date32,time32,Value32);
TL_SetColor(TL3,상승색3);
Tx1 = Text_New(date31,time31,Value31,"▲");
Text_SetColor(Tx1,red);
Text_SetStyle(Tx1,2,5);
Text_SetSize(tx1,11);
tx = Text_New(date31,time31,Value31,NewLine+NumToStr(value31,2));
Text_SetStyle(tx,2,0);
Text_SetSize(tx,11);
date31 = date[LoBar3[0]];
time31 = stime[LoBar3[0]];
date32 = date[0];
time32 = stime[0];
for j3 = 0 to 6
{
fr[j3] = LoVal3[0] + ((HiVal3[1] - LoVal3[0]) * r[j3]);
}
}
If HiVal3[0] < close Then
{
HiVal3[0] = close;
HiBar3[0] = 0;
date32 = date[HiBar3[0]];
time32 = stime[HiBar3[0]];
Value32 = HiVal3[0];
TL_SetEnd(TL3, date32,time32,Value32);
}
}
TL_SetSize(tL3,선두께3);
2020-06-03
2377
글번호 139524
답변완료
문의
데이트레이딩
Data2 외인 선물 순매수 수량을 참고하여 kp200선물 진입
외인 선물 순매수 수량 당일 최저점에서 1000개 상승하면 buy
0 에서 1000 되면 매수
-500 갔다 500 되면 매수
-1000 갔다 0 되면 매수
외인 선물 순매수 수량 당일 최고점에서 1000개 하락하면 sell
0 에서 -1000 되면 매도
500 갔다 -500 되면 매도
1000 갔다 0 되면 매도
수식 부탁드립니다.
2020-06-05
2180
글번호 139523