커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3741
글번호 230811
답변완료
양봉 음봉 숫자 누적
장시작시간부터 양봉과 음봉의 합을 각각 알수있는 지표를 원합니다
틱봉이고
해외선물은 보통 7시 시작인데 어느곳부터인지 시간도 제가 정할수있게해주세요
돗지봉은 냅두고
양봉이면 +1 음봉이면-1 이렇게해서 아래 지표에서 총 +- 몇인지 표시되게 부탁드립니다
그리고 시간 없이
차트가 열린 모든곳에서 양봉과 음봉 숫자의 합계를 알고싶습니다
마지막으로 저렇게 표시하고
양봉숫자와
음봉숫자 각각 나오는것도 가능하면 그것도 부탁합니다
2019-07-03
315
글번호 130012
답변완료
재 문의드립니다.
제가 문의드린 의도와 다른 결과값이 다르게 나와 재 문의드립니다.
제 문의의 의도는 예를 들면..
중심값이 5일 동안의 중심값, 20일 동안의 중심값, 60일 동안의 중심값 ..으로
중심값 라인이 만들어 지면 기간이 달라지므로..
중심값의 라인이 수평선 상으로 직선이 되면서..
라인의 상하 위치도 달라질 것으로 예상했습니다.
즉, 수평 라인의 형태가 첨부한 파일의 모양처럼
차트 상에서 기간별로 최고가와 최저가의 편차로 인해
상하 계단식으로 수평선의 형태가 높이 차이로 층이 질 것을 기대했습니다.
그러나 작성해 주신 수깅으로는..
라인이 일자형의 긴 형태의 수평선으만 표시되어 재문의 드립니다.
만약 재가 문의 드린 수식이 현재의 모양만 나온다면 어쩔 수 없지만..
첨부한 그림처럼 모양이 나올 수 있거나
또는 첨부한 그림의 라인 형태처럼 수평선이 나올 수 있는 방법이 있다면..
다시 수식 작성해주시기를 부탁드립니다.
그리고 수식의 <속성창>에서 라인의 굵기와 색상 조절이 가능하게 부탁드립니다.
문의가 정확하지 못해 번거롭게 해드려 죄송합니다.
====================================
> 태양같이 님이 쓴 글입니다.
> 제목 : 수식 문의드립니다.
> 안녕하세요
아래의 두 개의 내용을 수식으로 가능한지요.
가능하다면 수식을 만들어 주시기를 부탁드립니다.
1. 일정 기간 동안의 중심값을 직선 라인으로 표현하는 수식을 부탁드립니다.
중심값 수식은 모두 6개를 만들어 주시기 부탁드립니다.
변수 조절 가능하게도 부탁드립니다.
예를 들어
5일, 20일, 60일, 120일 등등 일정 기간 동안의 중심값을 하나의 수식에서
각각 6개의 기간 값을 외부 변수로 사용할 수 있도록 부탁드립니다.
2. 일정 기간의 동안의 중심값이 아닌 일정비율로 조정한 직선 라인으로 표현 가능한
수식 부탁드립니다.
예를 들어
5일, 20일, 60일 동안의 고저대비 60%에 해당하는 라인을 그릴 수 있는 수식을
하나의 수식에 6개의 기간을 나타낼 수 있도록 부탁드립니다.
그 기간과값과 비율값을 각각 변수 조정 가능하게 부탁드립니다.
항상 도움에 깊이 감사드립니다.
수고하세요~
------------------------
안녕하세요
예스스탁입니다.
문의하신 1번과 2번수식은 수식적으로는 같은 내용입니다.
비율을 외부변수로 처리해 드리므로 50이나 60등 원히시는 비율로 적용하시면 되는 내용입니다.
1번식은 기간을 봉수로 지정하는 식입니다.
input : P1(5),per1(50);
input : P2(10),per2(50);
input : P3(20),per3(50);
input : P4(60),per4(50);
input : P5(120),per5(50);
input : P6(240),per6(50);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0);
var1 = highest(H,P1)-(highest(H,P1)-lowest(L,P1))*(per1/100);
var2 = highest(H,P2)-(highest(H,P2)-lowest(L,P2))*(per2/100);
var3 = highest(H,P3)-(highest(H,P3)-lowest(L,P3))*(per3/100);
var4 = highest(H,P4)-(highest(H,P4)-lowest(L,P4))*(per4/100);
var5 = highest(H,P5)-(highest(H,P5)-lowest(L,P5))*(per5/100);
var6 = highest(H,P6)-(highest(H,P6)-lowest(L,P6))*(per6/100);
if var1 > 0 then
{
TL_Delete(TL1);
TL1 = TL_New(sdate[p1-1],stime[p1-1],var1,sdate,stime,var1);
TL_SetExtLeft(TL1,true);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,red);
}
if var2 > 0 then
{
TL_Delete(TL2);
TL2 = TL_New(sdate[p2-1],stime[p2-1],var2,sdate,stime,var2);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,BLUE);
}
if var3 > 0 then
{
TL_Delete(TL3);
TL3 = TL_New(sdate[p3-1],stime[p3-1],var3,sdate,stime,var3);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL3,true);
TL_SetColor(TL3,MAGENTA);
}
if var4 > 0 then
{
TL_Delete(TL4);
TL4 = TL_New(sdate[p4-1],stime[p4-1],var4,sdate,stime,var4);
TL_SetExtLeft(TL4,true);
TL_SetExtRight(TL4,true);
TL_SetColor(TL4,CYAN);
}
if var5 > 0 then
{
TL_Delete(TL5);
TL5 = TL_New(sdate[p5-1],stime[p5-1],var5,sdate,stime,var5);
TL_SetExtLeft(TL5,true);
TL_SetExtRight(TL5,true);
TL_SetColor(TL5,GRAY);
}
if var6 > 0 then
{
TL_Delete(TL6);
TL6 = TL_New(sdate[p6-1],stime[p6-1],var6,sdate,stime,var6);
TL_SetExtLeft(TL6,true);
TL_SetExtRight(TL6,true);
TL_SetColor(TL6,pink);
}
2번식은 기간을 일수로 지정하는 식입니다.
분봉에 적용해도 일간으로 최고가 최저가 계산합니다.
input : P1(5),per1(50);
input : P2(10),per2(50);
input : P3(20),per3(50);
input : P4(60),per4(50);
input : P5(120),per5(50);
input : P6(240),per6(50);
var : cnt(0),TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0);
var : H1(0),L1(0),H2(0),L2(0),H3(0),L3(0),H4(0),L4(0),H5(0),L5(0),H6(0),L6(0);
H1 = DayHigh;
H2 = DayHigh;
H3 = DayHigh;
H4 = DayHigh;
H5 = DayHigh;
H6 = DayHigh;
L1 = DayLow;
L2 = DayLow;
L3 = DayLow;
L4 = DayLow;
L5 = DayLow;
L6 = DayLow;
for cnt = 0 to max(p1,p2,p3,p4,p5,p6)-1
{
if cnt < P1 and DayHigh(cnt) > H1 Then
H1 = DayHigh(cnt);
if cnt < P1 and DayLow(cnt) < L1 Then
L1 = DayLow(cnt);
if cnt < P2 and DayHigh(cnt) > H2 Then
H2 = DayHigh(cnt);
if cnt < P2 and DayLow(cnt) < L2 Then
L2 = DayLow(cnt);
if cnt < P3 and DayHigh(cnt) > H3 Then
H3 = DayHigh(cnt);
if cnt < P3 and DayLow(cnt) < L3 Then
L3 = DayLow(cnt);
if cnt < P4 and DayHigh(cnt) > H4 Then
H4 = DayHigh(cnt);
if cnt < P4 and DayLow(cnt) < L4 Then
L4 = DayLow(cnt);
if cnt < P5 and DayHigh(cnt) > H5 Then
H5 = DayHigh(cnt);
if cnt < P5 and DayLow(cnt) < L5 Then
L5 = DayLow(cnt);
if cnt < P6 and DayHigh(cnt) > H6 Then
H6 = DayHigh(cnt);
if cnt < P6 and DayLow(cnt) < L6 Then
L6 = DayLow(cnt);
}
var1 = H1-(H1-L1)*(per1/100);
var2 = H2-(H2-L2)*(per2/100);
var3 = H3-(H3-L3)*(per3/100);
var4 = H4-(H4-L4)*(per4/100);
var5 = H5-(H5-L5)*(per5/100);
var6 = H6-(H6-L6)*(per6/100);
if var1 > 0 then
{
TL_Delete(TL1);
TL1 = TL_New(sdate[p1-1],stime[p1-1],var1,sdate,stime,var1);
TL_SetExtLeft(TL1,true);
TL_SetExtRight(TL1,true);
TL_SetColor(TL1,red);
}
if var2 > 0 then
{
TL_Delete(TL2);
TL2 = TL_New(sdate[p2-1],stime[p2-1],var2,sdate,stime,var2);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
TL_SetColor(TL2,BLUE);
}
if var3 > 0 then
{
TL_Delete(TL3);
TL3 = TL_New(sdate[p3-1],stime[p3-1],var3,sdate,stime,var3);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL3,true);
TL_SetColor(TL3,MAGENTA);
}
if var4 > 0 then
{
TL_Delete(TL4);
TL4 = TL_New(sdate[p4-1],stime[p4-1],var4,sdate,stime,var4);
TL_SetExtLeft(TL4,true);
TL_SetExtRight(TL4,true);
TL_SetColor(TL4,CYAN);
}
if var5 > 0 then
{
TL_Delete(TL5);
TL5 = TL_New(sdate[p5-1],stime[p5-1],var5,sdate,stime,var5);
TL_SetExtLeft(TL5,true);
TL_SetExtRight(TL5,true);
TL_SetColor(TL5,GRAY);
}
if var6 > 0 then
{
TL_Delete(TL6);
TL6 = TL_New(sdate[p6-1],stime[p6-1],var6,sdate,stime,var6);
TL_SetExtLeft(TL6,true);
TL_SetExtRight(TL6,true);
TL_SetColor(TL6,pink);
}
즐거운 하루되세요
2019-07-06
309
글번호 130011
답변완료
63142 재질문 부탁 드립니다.(내용 무)
감사 드립니다.
2019-07-03
315
글번호 130010
답변완료
하나더 문의해봅니다 처음이라 못하겟어서 ㅠㅠ
매수 조건
1 . 일목균형지표
15틱 차트
전환선기간 = 700
기준선기간 = 700
선행기간1 = 1
선행기간2 = 1
후행기간 = 0
선행스팬2 > 선행스팬1 매수
+ 25 익절
- 25 손절
2019-07-03
280
글번호 130009
답변완료
시스템 문의
매수 포지션 진입 2가지 조건 동시 만족
(1분봉 기준)
1 . 지수 이동 평균선 골든 크로스 단기,장기(5,15)
2 . 중심선(priceChannel) 150기간 상향 돌파
+ 25틱 익절
- 25틱 손절
부탁드릴게요!!
2019-07-03
279
글번호 130008
답변완료
분봉으로 부탁합니다.
input : HP(3),LP(3);
var : HH(0),LL(0);
HH = highest(H,HP);
LL = lowest(L,LP);
if crossup(c,HH[1]) then
buy();
if CrossDown(c,LL[1]) Then
sell();
위3일고가매수와 3일저가매도매매수식입니다.
이것을 분봉으로 부탁합니다.
감시하니다.
2019-07-03
291
글번호 130003
답변완료
63132번 다시 문의합니다
안녕하세요. 신속한 답변 감사드립니다.
답변해주신 수식을 적용해 보니 전체 차트에 전부 뿌려집니다.
일부만 나오게 안됩니다.
다시 살펴주시면 감사하겠습니다.
2019-07-03
289
글번호 130002
답변완료
수식 문의드립니다.
안녕하세요
아래의 두 개의 내용을 수식으로 가능한지요.
가능하다면 수식을 만들어 주시기를 부탁드립니다.
1. 일정 기간 동안의 중심값을 직선 라인으로 표현하는 수식을 부탁드립니다.
중심값 수식은 모두 6개를 만들어 주시기 부탁드립니다.
변수 조절 가능하게도 부탁드립니다.
예를 들어
5일, 20일, 60일, 120일 등등 일정 기간 동안의 중심값을 하나의 수식에서
각각 6개의 기간 값을 외부 변수로 사용할 수 있도록 부탁드립니다.
2. 일정 기간의 동안의 중심값이 아닌 일정비율로 조정한 직선 라인으로 표현 가능한
수식 부탁드립니다.
예를 들어
5일, 20일, 60일 동안의 고저대비 60%에 해당하는 라인을 그릴 수 있는 수식을
하나의 수식에 6개의 기간을 나타낼 수 있도록 부탁드립니다.
그 기간과값과 비율값을 각각 변수 조정 가능하게 부탁드립니다.
항상 도움에 깊이 감사드립니다.
수고하세요~
2019-07-03
281
글번호 129999
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
외부변수 : 특정수익
특정수익(포인트) 이상 수익 생기면 롱 숏가던 것을 반대로 진입하도록 부탁드립니다.
Inputs: InitMin(90);
Variables: SessStartMin(0), TradeTime(0), SetHigh(0), SetLow(0), LongFlag(False), ShortFlag(False);
#conversion of hour-based time to minute-based time
SessStartMin = TimeToMinutes(90000);
TradeTime = TimeToMinutes(sTime);
input :
진입횟수(1),
손절률(1),
익절률(1)
;
var : count(0),T1(0);
input : 진입시간(90000),제한시간(150000),청산시간(153400);
var : Tcond(false);
SetStopLoss(손절률,PercentStop);
SetStopProfittarget(익절률,PercentStop);
if (sdate != sdate[1] and stime >= 청산시간) or
(sdate == sdate[1] and stime >= 청산시간 and stime[1] < 청산시간) then
{
Tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) then
{
Tcond = true;
T1 = TotalTrades;
}
if (sdate != sdate[1] and stime >= 제한시간) or
(sdate == sdate[1] and stime >= 제한시간 and stime[1] < 제한시간) then
{
Tcond = false;
}
if MarketPosition == 0 Then
count = TotalTrades-T1;
Else
count = TotalTrades-T1+1;
if Count < 진입횟수 and Tcond == true then
{
#Setup - establishment of the initial range
If TradeTime <= SessStartMin + InitMin Then Begin
If Date <> Date[1] Then Begin
SetHigh = High;
SetLow = Low;
LongFlag = True;
ShortFlag = True;
End
Else Begin
If High > SetHigh Then
SetHigh = High;
If Low < SetLow Then
SetLow = Low;
End;
End
Else Begin
#Entries once the initial period has ended
If LongFlag AND CrossUp( Close , SetHigh) Then
Buy();
If ShortFlag AND CrossDown(Close , SetLow) Then
Sell();
End;
}
#Long Protective Exit
If MarketPosition == 1 Then Begin
LongFlag = False;
ExitLong("",atstop,SetLow );
End;
#Short Protective Exit
If MarketPosition == -1 Then Begin
ShortFlag = False;
ExitShort("",atstop,SetHigh );
End;
input: TsValue(80);
var: Hvalue(0),Lvalue(0);
If MarketPosition() == 1 Then {
Hvalue = Highest(H,BarsSinceEntry+1);
ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale);
}
If MarketPosition() == -1 Then {
Lvalue = Lowest(L,BarsSinceEntry+1);
ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale);
}
2. 기타
1번 본수식을 이전 진입이 수익이면 반대로 손실이면 그대로 진입하도록 수정 부탁드립니다.
3. 기타
1번 본수식에서
-If LongFlag AND CrossUp( Close , SetHigh) Then
-이 조건(sell도 마찬가지)에서 고가셋업(sell이면 저가)하고 그 지점에서 n틱만큼 반대방향으로 갔을 때(Long이면 떨어지고 숏이면 올라가고) 그 방향 진입(매수면 매수, 매도면 매도)
2019-07-03
297
글번호 129997