커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5426
글번호 230811
답변완료
종목검색식 요청드립니다.
N봉 이내에 15%이상 상승했던 종목을 검색하는 검색식을 만들고 싶습니다. 도움 부탁드립니다.
N봉과 상승률(15%)는 조정가능하도록 부탁드립니다.
감사합니다.
2024-10-24
759
글번호 184558
답변완료
문의 드립니다
안녕하세요
1. 다음 슈퍼트랜드 지표에 일목 기준선을 추가하고 uptrand가 기준선위에 있으면
노랑색으로 채우고 downtrand가 기준선 아래 있으면 파랑색으로 두선사이을 색으로
채우고자합니다
input : Periods(10);
input : Multiplier(3.0);
input : changeATR(1);#1:SMA 0:RMA
var : src(0),alpha(0),source(0),ATR1(0),ATR2(0),ATRV(0);
var : up(0),up1(0),dn(0),dn1(0),trend(0),tx(0);
src = (H+L)/2;
alpha = 1 / Periods;
atr1 = IFf(IsNan(atr1[1]) == true , ma(TrueRange, Periods) , alpha * TrueRange + (1 - alpha) * atr1[1]);
atr2 = ATR(Periods);
atrv = IFf(changeATR == 1 , atr1 , atr2);
up=src-(Multiplier*atrv);
up1 = IFf(IsNan(up[1]) == False,up[1],up);
up = iff(close[1] > up1 , max(up,up1) , up);
dn=src+(Multiplier*atrv);
dn1 = IFf(IsNan(dn[1]) == False,dn[1], dn);
dn = iff(close[1] < dn1 , min(dn, dn1) , dn);
trend = 1;
trend = IFf(IsNan(trend[1]) == False,trend[1], trend);
trend = IFf(trend == -1 and close > dn1 , 1 , iff(trend == 1 and close < up1 , -1 , trend));
if trend == 1 Then
plot1(up,"UpTrend",White);
Else
NoPlot(1);
if trend == -1 then
Plot2(dn,"Down Trend",Black);
Else
NoPlot(2);
if trend == 1 and trend[1] == -1 Then
{
tx =Text_New(sDate,sTime,up,"●");
Text_SetStyle(tx,1,1);
Text_SetColor(tx,Red);
}
if trend == -1 and trend[1] == 1 Then
{
tx =Text_New(sDate,sTime,dn,"●");
Text_SetStyle(tx,1,1);
Text_SetColor(tx,Blue);
}
2.다음 트레이딩뷰 지표 전환입니다
period=input(title="Period", defval=10)
len=input(title="Period", defval=10)
smaHigh=sma(high, len)
smaLow=sma(low, len)
Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=red)
plot(sslUp, linewidth=2, color=lime)
감사합니다
2024-10-24
769
글번호 184551
답변완료
문의드립니다
Input : Period(20), MultiD(2);
var : MAv(0),BBup(0),BBdn(0);
MAv = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
Plot1(MAv, "이평");
Plot2(BBup, "상단밴드");
Plot3(BBdn, "하단밴드");
............................................................
1.
Plot2(BBup, "상단밴드")를 증감을 표현할 수 있는 막대그래프(상단 밴드값이 증가하면 빨간색, 감소하면 파란색 막대)로 구현하고 싶습니다
2.
Plot3(BBdn, "하단밴드");를 증감을 표현할 수 있는 막대그래프(하단 밴드값이 증가하면 빨간색, 감소하면 파란색 막대)로 구현하고 싶습니다
상단밴드, 하단밴드 각각 단독의 지표로 구현해주세요
감사합니다.
2024-10-24
865
글번호 184550
답변완료
문의
항상 감사드립니다.
아래 지표를 주식이나 선물과 연동해서 다이버전스 신호를 만들고 싶습니다.
부탁 드립니다.
감사합니다.
Input : Period(1);
Var : value(0);
value = ma(bids,period)-ma(asks,period);#호가잔량이동평균오실레이터
if date != date[1] Then{
value1 = value;
value2 = value;
}
if value > value1 Then
value1 = value;
if value < value2 Then
value2 = value;
If value > value[35] Then
Plot1(value, "호가잔량이평오실레이터",RED);
Else
Plot1(value, "호가잔량이평오실레이터",BLUE);
plot2(value1,"당일최고");
plot3(value2,"당일최저");
PlotBaseLine1(0,"기준선");
2024-10-24
697
글번호 184549
답변완료
문의
평균 30일 거래량보다 3000% 많은 거래량이 생기면 다음날 매수
하는 식을 구하고 싶은데 ㅠㅠ 아래 코딩에서 문제가 있는 부분이 있는걸까요?
// 변수 설정
avg_vol = MovingAverage(Volume, 30); // 30일간의 평균 거래량
current_vol = Volume; // 현재 거래량
condition = 0; // 조건을 저장할 변수
// 조건: 현재 거래량이 30일 평균 거래량보다 3000% 이상일 때
if (current_vol > avg_vol * 30) {
condition = 1; // 조건이 만족되면 1로 설정
}
// 다음날 조건이 충족된 경우 매수 실행
if (condition[1] == 1) {
Buy(); // 매수 신호 발생
condition = 0; // 매수 후 조건 초기화
}
2024-10-24
832
글번호 184548
답변완료
진입 수량 관련 질문
어느덧 가을이네요. 항상 건강하시길 바랍니다.
진입 수량 관련 도움 요청드립니다.
수식은 아래와 같습니다.
----
2
input :
AccountCapital(1000000); //KRW
var :
x(0);
x = AccountCapital * (floor( TRIX(12)*100 )/100);
if MarketPosition <= 0 and x > 0 Then
Buy("b",OnClose,Def,x);
if MarketPosition >= 0 and x < 0 Then
Sell("s",OnClose,Def,abs(x));
if MarketPosition == 1 Then
{
if x >= 0 Then
{
if x > CurrentContracts Then
Buy("bb",OnClose,Def,x-CurrentContracts);
if x < CurrentContracts Then
ExitLong("bx",OnClose,Def,"",CurrentContracts-x,2);
}
}
if MarketPosition == -1 Then
{
if x <= 0 Then
{
if abs(x) > CurrentContracts Then
Sell("ss",OnClose,Def,abs(x)-CurrentContracts);
if abs(x) < CurrentContracts Then
ExitShort("sx",OnClose,Def,"",CurrentContracts-abs(x),2);
}
}
----
보시면 아시겠지만, Trix 값(X)에 따라서 수량을 늘리더나 줄이고 있습니다.
해당 전략은 Daily봉에서 사용할 예정입니다.
해당 전략을 복리로 구현하고 싶습니다.
AccountCapital을 100만원으로 했으니 시작 금액이 100만원입니다.
그러나 각 Dailby bar가 끝날 때 현재 손익 기준(미실현이든 실현이든)으로 AccountCapital이 재정산 되었으면 좋겠습니다.
롱 포지션 잡은 상태에서 가격이 올라가면 미실현 손익도 올라가니 해당 값이 AccountCapital에 반영될 수 있도록 수식 변경 부탁드립니다 (__)
2024-10-24
1021
글번호 184547
답변완료
종목검색식 부탁드려요
양=C>O;
음=C<O;
도=C==O;
Hc=CountSince((양(1) or 도(1)) && 음, 음);
A=Valuewhen(1, Hc>=3 && 음(1) && 양, Highest(H(1), Hc));
B=MA(C,5);
최종=CROSSUP(B,A);
안녕하세요
항상 도움 주셔서 감사드립니다.
위의 수식에 추가하여
일목균형표의 구름. 양운 또는 음운..이든 구름위에 있을때만 검색되는
종목검색식을 부탁드립니다
2024-10-24
1032
글번호 184546
답변완료
챠트 제공 여부 또는 작성 수식 요청
안녕하세요
첨부는 어느 주식정보제공 업체의 선물체결거래량(당일누적) 그래프입니다(10.23일자)
같은게 예트 기본제공 챠트에 있는지요?
없다면 어떻게 구현할수 있는지 수식 부탁드립니다.
2024-10-24
1092
글번호 184545
답변완료
시스템식으로 변환 요청
안녕하세요
아래의 지표를 시스템매수식으로 변환하여 주시면 감사하겠습니다.
plot3 이면 매수 plot4면 매도하는 식으로 변경 부탁 간곡히 드립니다.
(참고페이지) https://blog.naver.com/chartist/222656653057
답변 미리 감사드립니다.
----------------------------------------------------------------------------------
input : SwingPeriod(2), AtrPeriod(10), ATrMult(3);
var : PH(0), PL(0), lastpp(0), center(0), alPHa(0), source(0), ATrV(0);
var : UpCh(0), DnCh(0), Trend(0), TuP(0), Tdown(0), TrailingSL(0);
# 스윙하이와 스윙로우를 이용하여 중심선 계산
PH = swingHigh(1,H,SwingPeriod,SwingPeriod,SwingPeriod*2+1);
PL = swingLow(1,L,SwingPeriod,SwingPeriod,SwingPeriod*2+1);
if PH <> -1 Then lastpp = PH;
if PL <> -1 Then lastpp = PL;
if PH <> -1 or PL <> -1 Then center = (center*2 + lastpp)/3;
# ATR계산(True Range를 RMA로 평균)
if CurrentBar > 0 Then {
alPHa = 1 / AtrPeriod ;
source = max(H - L, abs(H - C[1]), abs(L - C[1]));
ATrV = alPHa * source + (1 - alPHa) * ATrV[1];
}
# 상하단 채널과 추세에 따른 추세채널
UpCh = center - (ATrMult * ATrV);
DnCh = center + (ATrMult * ATrV);
Tup = IFf(C[1] > TUp[1],max(UpCh, TUp[1]),UpCh );
Tdown = IFf(C[1] < TDown[1],min(DnCh, TDown[1]),DnCh );
if C > TDown[1] Then Trend = 1;
if C < TuP[1] Then Trend = -1;
Trailingsl = IFf(Trend == 1, Tup, Tdown);
# 지표 출력
if C > Trailingsl Then {
Plot1(Trailingsl,"UpTrend", RED, 0, 1);
NoPlot(2);
}
Else {
Plot2(Trailingsl,"DnTrend", BLUE, 0, 1);
NoPlot(1);
}
if Trend == 1 and Trend[1] == -1 Then
plot3(Trailingsl,"BuyStart", RED,0,8);
if Trend == -1 and Trend[1] == 1 Then
plot4(Trailingsl,"SellStart", BLUE,0,8);
====================================================================================
swingHigh 와 swingLow 지표 설명
input : Length(5);
var : HighV(0), LowV(0);
var : Hdate0(0), Hdate1(0), Htime0(0), Htime1(0), Hval(0), TL1(0);
var : Ldate0(0), Ldate1(0), Ltime0(0), Ltime1(0), Lval(0), TL2(0);
HighV = SwingHigh(1, H, Length, Length, Length*2+1);
LowV = SwingLow(1, L, Length, Length, Length*2+1);
if HighV == -1 Then
HighV = HighV[1];
if LowV == -1 Then
LowV = LowV[1];
# 그래프 종류 속성 점그래프
Plot1(HighV,"swHigh",MAGENTA,0,4);
Plot2(LowV,"swLow",GREEN,0,4);
Plot3(HighV,"swHigh확장",MAGENTA,0,4);
Plot4(LowV,"swLow확장",GREEN,0,4);
FixPlotShift(1,-Length);
FixPlotShift(2,-Length);
2024-10-24
907
글번호 184544