커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7171
글번호 230811
답변완료
지표 수정부탁드립니다.
안녕하세요.
아래 수식을 그림파일에 표시한대로 오른쪽에 수치가 표시되도록 부탁드립니다.
수식에서 H2, L2 두가지의 수치가 맨 오른쪽에 표시 되도록 부탁드립니다.
예스트레이더에서 종목수치가 검정색으로 나오기에 잘 구별할수 있게끔 H2, L2는 파란색으로 표현되면 좋겠구요.
다른색상으로 안되면 그냥 검정색으로라도 부탁드립니다.
항상 감사드립니다.
INPUT : LENGTH(30),N(0);
VAR : TCHAN(0),BCHAN(0),T180(0),t(0);
TCHAN = HIGHEST(High, LENGTH)[0];
BCHAN = LOWEST(low, LENGTH)[0];
t180 = HIGHEST(High, LENGTH)-LOWEST(low, LENGTH);
PLOT1(TCHAN-PriceScale*N,"H1");
PLOT2(TCHAN+PriceScale*N,"H2");
PLOT3(BCHAN+PriceScale*N,"L1");
PLOT4(BCHAN-PriceScale*N,"L2");
PLOT5(tchan-t180*0.618,"0.382");
var1 = Highest(h,LENGTH);
var2 = Lowest(L,LENGTH);
var3 = var1-var2;
value1 = var1-var3*0.618;
value2 = var1-var3*0.382;
value3 = var1-var3*1.0;
if value2 > value2[1] Then
T = 1;
if value2 < value2[1] Then
T = -1;
if T == 1 then{
plot6(value1,"1");
plot7(value2,"2");
}
else{
plot6(value3,"1");
plot7(value2,"2");
}
2020-02-13
417
글번호 135898
답변완료
안녕하세요^^문의드립니다~
Input : shortPeriod(3), longPeriod(15);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
*1) 매수신호/매도신호값 신호옆에 나타나게 부탁드립니다
2)매수신호나타나면~동시에-10틱에 손절(지지선)값과 점선으로(손절지지선)도
다음신호(매도신호)나올때까지만 선이 나타나게 해주세요
매도신호나타나면~동시에+10틱에 손절(저항선)값과 점선으로(손절저항선)도
다음신호(매수신호)나올때까지만 선이 나타나게 해주세요
첨부파일 올립니다(EX)
★부탁드립니다^^ 수고하세요~
2020-02-12
403
글번호 135897
답변완료
문의드립니다
1.해외선물입니다.강제청산수식은 다음과 같습니다
Inputs : vProfit(41), vLoss(40), vTrailTick(12), vBaseTick(17) ;
SetStopLoss(vLoss * TickSize ,PointStop);
SetStopProfitTarget(vProfit * TickSize ,PointStop);
SetStopTrailing(MaxPositionProfit - (vTrailTick * TickSize ),
vBaseTick * TickSize ,PointStop);
2.계약수를 2계약으로 하게되면 수정해야할부분이 있나요?
트레일링스탑에서 작동하는 부분이 틀려서 동일한시간에 1계약과 2계약 차트첨부합니다
2020-02-12
480
글번호 135896
답변완료
문의드립니다.
질문 65995에서
1. if MarketPosition <= 0 and
value1 < value1[1] and value1[1] == value1[2] then 의 매수식에서
** value1의 가격이 ( 내려간 value1의 가격 ) 전봉의 value1 가격과의 폭이
전봉의 value2 가격과의 폭보다 커야 매수
if MarketPosition >= 0 and
value2 > value2[1] and value2[1] == value2[2] then 의 매도식에서
** value2의 가격이 ( 올라온 value2의 가격 ) 전봉의 value1 가격과의 폭이
전봉의 value2 가격과의 폭보다 작아야 매도
2. if MarketPosition(1) != 0 and
MarketPosition == 0 and
value1 > value1[1] and value1[1] == value1[2] and
value2 == value2[1] Then 의 매수식에서
** value1 전봉의 가격을확인해서 전 10봉이상이 같은 가격이면 매수금지
10봉 이하면 매수
if MarketPosition(1) != 0 and
MarketPosition == 0 and
value1 < value1[1] and value1[1] == value1[2] and
value2 == value2[1] Then 의 매도식에서
** value2 전봉의 가격을확인해서 전 10봉이상이 같은 가격이면 매도금지
10봉 이하면 매도
3.매수공통조건 : 종가가 plot1 보다 커야한다.
매도공통조건 : 종가가 plot2 보다 작아야한다.
는 조건식을 추가부탁드립니다.
미리 감사드립니다.
2020-02-13
421
글번호 135895
답변완료
지표 요청 드립니다.
* 소리는 덕분에 많이 찾아서 잘쓰고 있습니다. 정말 고맙습니다. ^.^
* 켄들 꼬리가 몸통의 2배 이상 이면 그캔들 정보는 제외 하고 계산 하는 요청 좀 드립니다.
→ (Lowest(L,20)
var1 = abs(C-O); # 몸통크기
var2 = ma(var1,n1); # 몸통크기의 n1개봉 평균
일경우 분봉에서 갑자기 꼬리가 길어서 선이 아래로 가는데 이것은 빼고 표현 하고 싶습니다.
Var : TX1(0);
If C < (Lowest(L,20) Then
{
Tx1 = Text_New(sdate,stime, H, "●" ); Text_SetColor(Tx1,BLACK); Text_SetSize(tx1,20); Text_SetStyle(tx1,2,0);
}
<문의 사항>
혹시 아래 지표가 가능 한가요?
"BBup1" 가격을 기준으로 스토케스틱처럼 시그널선을 만들수 있을까요???
## 볼린저 밴드
input : P(20),dv1(1),dv2(2),dv3(3);
var : BBmd(0),BBup1(0),BBup2(0),BBup3(0),BBdn1(0),BBdn2(0),BBdn3(9);
BBup3 = BollBandUp(P,dv3) ;
BBup2 = BollBandUp(P,dv2) ;
BBup1 = BollBandUp(P,dv1) ; ## 요가격 기준으로 시그널선
Bbmd = ma(c,P);
BBdn1 = BollBandDown(P,dv1);
BBdn2 = BollBandDown(P,dv2);
BBdn3 = BollBandDown(P,dv3);
* 고맙습니다.
2020-02-13
432
글번호 135894
답변완료
부탁드립니다.
도움에 감사 드립니다.
예를 들어 var30을 100틱차트에서 300틱 차트의
지표(타주기)를 볼수 있도록 부탁 드립니다.
미리 감사 드립니다.
Var : SS(0),TS(0),second(0);
var1 = TimeToMinutes(stime)*60;
var2 = FracPortion(stime/100)*100;
SS = var1+var2;
value1 = TimeToMinutes(time)*60;
value2 = FracPortion(time/100)*100;
TS = value1+value2;
if sdate == date Then
Second = TS-SS;
Else
Second = 86400-SS + TS;
var30=v/Second;
2020-02-13
433
글번호 135893
답변완료
부탁드립나다
수고하십니다
아래수식을 (적색,청색,노랑.검정화살표시로 부탁드립니다)
Input : shortPeriod(12), longPeriod(26), Period(9);
Var : value(0), macdosc(0),Direction(0),Direction1(0) ;
value = MACD(shortPeriod, longPeriod);
macdosc =ema(value,Period);
if value > value[1] Then
Direction = 1;
if value < value[1] Then
Direction = -1;
if Direction == 1 and Direction[1] != 1 Then
plot1(L-PriceScale*4,"MACD",RED);
if Direction == -1 and Direction[1] != -1 Then
plot1(H+PriceScale*4,"MACD",BLUE);
if macdosc > macdosc [1] Then
Direction1 = 1;
if macdosc < macdosc [1] Then
Direction1 = -1;
if Direction1 == 1 and Direction1[1] != 1 Then
plot2(L-PriceScale*4,"시그널",YELLOW);
if Direction1 == -1 and Direction1[1] != -1 Then
plot2(H+PriceScale*5,"시그널",BLACK);
2020-02-12
486
글번호 135888
답변완료
분봉에서의 이동평균선
지난 Q&A를 참고해서 아래와 같이 수식을 사용하고 있습니다.
분봉에서 이동평균선(20일, 60일, 120일)을 보여주는 수식입니다.
input : P1(20), P2(60), p3(120);
var : count(0),sumV1(0),sumV2(0),sumV3(0),mav1(0),mav2(0),mav3(0);
if DayClose(max(P1,P2,p3)) > 0 then
{
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
for count = 0 to P3{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
if count < P3 Then
sumV3 = sumV3+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
maV3 = sumV3 / P3;
plot1(mav1, "20일 이평선");
plot2(mav2, "60일 이평선");
plot3(mav3, "120일 이평선");
}
그런데 위의 수식으로 지표를 실행하면 첨부 이미지와 같이 당일 분봉 캔들 하나하나까지 평균에 합산하는 것 같습니다.
이미지의 초록색 선(당일 시가선)과 같이
전일까지의 이동평균선을 당일에는 단순하게 직선으로 표현했으면 합니다.
어떻게 하면 될까요?
2020-02-12
797
글번호 135886
답변완료
문의드립니다
아래 작성해 주신 수식인데요..
지표로 하니 너무 복잡합니다 ㅠ..ㅠ
검색으로 고점과 저점이 표현되게 변경 부탁드립니다..
고점은 봉 위 3틱... 저점은 봉 아래 3틱에 검색식으로 변경 부탁드립니다
================
안녕하세요
예스스탁입니다.
올려주신 수식과 같이는 시간이 많이 소모되어 작성해 드릴수 없습니다
아래식은
50돌파후 50이탈까지 최고가
50이탈후 50돌파까지 최저가
80이탈후 50이탈하지 않고 다시 80돌파시 해당 구간의 최저가
20돌파후 50돌파하지 않고 다시 20이탈시 해당 구간의 최고가
4개의 선을 그립니다.
Input : sto1(10),sto2(5),sto3(5);
Var : SK(0),SD(0),h1(0),l1(0),ll(0),l2(0),hh(0),h2(0);
SK = StochasticsK(sto1,sto2);
SD = StochasticsD(sto1,sto2,sto3);
if crossup(sk,50) Then
{
h1 = h;
Condition2 = false;
}
if CrossDown(sk,50) Then
{
l1 = h;
Condition1 = false;
}
if SK > 50 and h1 > 0 and h > h1 Then
h1 = h;
if SK < 50 and l1 > 0 and l < l1 Then
l1 = l;
if CrossDown(sk,80) Then
{
ll = l;
Condition1 = true;
}
if Condition1 == true and L < LL Then
ll = l;
if Condition1 == true and crossup(sk,80) Then
l2 = ll;
if CrossUp(sk,20) Then
{
hh = h;
Condition2 = true;
}
if Condition2 == true and h > hh Then
hh = h;
if Condition2 == true and CrossDown(sk,20) Then
h2 = hh;
if h1 > 0 then
plot1(h1);
if l1 > 0 then
plot2(l1);
if h2 > 0 then
plot3(h2);
if l2 > 0 then
plot4(l2);
즐거운 하루되세요
> 삼족오 님이 쓴 글입니다.
> 제목 : 문의드립니다
>
지그재그 파동식인데요
스토캐스틱을 기준으로 하여
50선 위로 스코K가 상승하여... 50선 아래로 떨어지는 구간까지를 최고가격을 고점으로
50선 아래로 스토K나 하락하여 ... 50선 위로 올라오는 구간까지를 최저가격을 저점으로
하며.
또한.. 과열권<80> 하락 이후.. 51선을 이탈하지 않고 다시 과열권 진입시
직전 하락한 51에서 79사이의 최저가격을 저점으로 하고
다시 진입한 과열권에서 최고가격을 고점으로 표현
침체권<20> 돌파 이후 49선을 돌파하지 않고 다시 침체권 진입시
직전 상승한 21에서 49 사이의 최고가격을 고점으로 하고
다시 진입한 침체권에서 최저가각을 저점으로 표현이 되게 부탁드립니다
즉. 고점의 기준이 2개이며 .. 저점의 기준도 2개입니다
위 내용에 맞게 수식을 작성 하여 주셔도 되구요
2020-02-12
563
글번호 135883