커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3505
글번호 230811
답변완료
갭관련 검색식좀 부탁드립니다
일봉상에서 현재봉기준 최근 갭이 가장 만이 뜬 순위를
1위부터 5위까지 알려주는 검색식을 부탁드립니다
상승갭 하락갭 각각 하나씩 검색식 짜주시면 감사하겠습니다
감사합니다
2021-02-15
607
글번호 146308
답변완료
수식 좀 다시 요청 드립니다.(줄)
* 새해복 많아 받으시기 바랍니다.
* 아래 줄긋기가 안되는데 수식 수정 좀 요청 드립니다.
<기준> 30분봉전 가격(C[30]) 을 기준으로 현재봉(C[1]) 까지
30분봉전 가격(C[30]) 보다 크면 BLUE
30분봉전 가격(C[30]) 보다 작으면 BLACK 입니다.
## 30봉 전가격 기준 현재봉 연결선
Input: H7(30) ;
Var : TL51(0),TL52(0),TL53(0),TL54(0);
TL_Delete(TL51);
TL_Delete(TL52);
var1 = c[H7];
if c > var1 then {
TL51 = TL_New_Self(sdate,stime,h,sdate,stime,L);
TL_SetColor(TL51,BLUE);
TL_SetColor(TL52,BLUE);
TL_SetSize(TL51,5);
TL_SetSize(TL52,5); }
if c < var1 then {
TL51 = TL_New_Self(sdate,stime,h,sdate,stime,L);
TL_SetColor(TL51,BLACK);
TL_SetColor(TL52,BLACK);
TL_SetSize(TL51,5);
TL_SetSize(TL52,5); }
* 새해에도 항상 건강 하십시요.
2021-02-14
524
글번호 146307
234fsdae 님에 의해서 삭제되었습니다.
2021-02-14
70
글번호 146306
답변완료
문의 드립니다
if MarketPosition <= 0 Then
{
if 조건수식1 Then
{
if CurrentContracts < 1 Then
buy("매수1",OnClose,def,1);
}
Else
{
if 조건수식2 and CurrentContracts < 2 Then
buy("매수2",OnClose,def,1);
}
}
if MarketPosition == 1 Then
{
if 조건수식3 Then
{
if CurrentContracts < 1 Then
buy("수1",OnClose,def,1);
}
Else
{
if 조건수식4 and CurrentContracts < 2 Then
buy("수2",OnClose,def,1);
}
}
if MarketPosition == 1 Then
{
if 조건수식1 Then
{
exitlong("청산1",OnClose,def,"매수1");
}
Else
{
if 조건수식1-2 and
exitlong("청산1-1",OnClose,def,"매수1");
}
if 조건수식2 Then
{
exitlong("청산2",OnClose,def,"수1");
}
Else
{
if 조건수식2-1 and
exitlong("청산2-1",OnClose,def,"수1");
}
if 조건수식3 Then
{
exitlong("청산3",OnClose,def,"매수2");
}
Else
{
if 조건수식3-1 and
exitlong("청산3-1",OnClose,def,"매수2");
}
if 조건수식4 Then
{
exitlong("청산4",OnClose,def,"수2");
}
Else
{
if 조건수식4-1 and
exitlong("청산4-1",OnClose,def,"수2");
}
ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수);
ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수);
}
1. 위 수식에서 진입별 청산수식이 맞나요
2. 익절 및 손절방법을 각가 별도로 할 수 있도록 변경하여 주시면 감사드립니다
(매수1, 수1, 매수2, 수2)
2021-02-15
524
글번호 146305
답변완료
함수문의 드립니다
명절 잘 쉬셨는지요~~
1. 예트 스토캐스틱 지표 >지표속정>일반 에 기본적k가 fast %k와 같은건지요?
2. 아래의 논리는 맞는건지요?
fast %K = (종가-na일rks 저가) / (na일간 고가 - na일간 저가) x 100 (변수 1개)
fast %D = fast %K 의 nb일간 평균(변수 2개 / na, nb)
slow %K = fast %D
slow %D = slow %K 의 nc일간 평균(변수 3개 / na, nb, nc)
3. 상기 논리가 맞다면 fast %K 함수 요청드립니다.
2021-02-14
481
글번호 146304
답변완료
수정부탁드립니다
안녕하세요...글번호70565 (시간지표)수정부탁드립니다.
수정1..위그림은30초차트입니다.시간라인이 정시보다30초늧게 그려지네요 1분차트에적용
해보니 9/31분 10시1분그려지네요,정시에그려지게 부탁드립니다.(9/30분 10/00)
수정2..지표라인이 데이터1 에서만 그려지은것을 데이터3 까지그려지게요.그것이안되면
데이터2 데이터3 각각의 지표수식으로될수있게 부탁드립니다.
수정3..지표라인의 기존두께가 1 이면 2로수정. 라인색은검정색으로요.
수고하세요...꾸벅
2021-02-14
743
글번호 146303
답변완료
시스템 부탁드립니다. 감사합니다.
외국 사이트에 있는 Heikin Ashi 수식과 다비스 박스입니다.
매수는 Heikin Ashi 수식에서 buy신호만을 이용하고 싶고
청산은 설정한 이격도에서 70프로를 청산하고 나머지 30프로는 다비스 박스 bottom box 보다 종가가 아래 있으면 나머지 30프로를 청산하는 시스템을 만들고 싶습니다.
복잡한걸 의뢰해드려 죄송합니다. 천천히 해주셔도 됩니다. 감사합니다.
1. Heikin Ashi
study("Heikin Ashi Smoothed Buy Sell ", overlay=true)
EMAlength=input(55,"EMA LENGTH?")
src=ohlc4
haOpen=0.0
haOpen := (src + nz(haOpen[1]))/2
haC=(ohlc4+nz(haOpen)+max(high,nz(haOpen))+min(low,nz(haOpen)))/4
EMA1=ema(haC,EMAlength)
EMA2=ema(EMA1,EMAlength)
EMA3=ema(EMA2,EMAlength)
TMA1=3*EMA1-3*EMA2+EMA3
EMA4=ema(TMA1,EMAlength)
EMA5=ema(EMA4,EMAlength)
EMA6=ema(EMA5,EMAlength)
TMA2=3*EMA4-3*EMA5+EMA6
IPEK=TMA1-TMA2
YASIN=TMA1+IPEK
EMA7=ema(hlc3,EMAlength)
EMA8=ema(EMA7,EMAlength)
EMA9=ema(EMA8,EMAlength)
TMA3=3*EMA7-3*EMA8+EMA9
EMA10=ema(TMA3,EMAlength)
EMA11=ema(EMA10,EMAlength)
EMA12=ema(EMA11,EMAlength)
TMA4=3*EMA10-3*EMA11+EMA12
IPEK1=TMA3-TMA4
YASIN1=TMA3+IPEK1
mavi=YASIN1
kirmizi=YASIN
longCond=mavi>kirmizi and mavi[1]<=kirmizi[1]
shortCond=mavi<kirmizi and mavi[1]>=kirmizi[1]
trendState = kirmizi < mavi ? true : kirmizi > mavi ? false : trendState[1]
closePlot = plot(kirmizi, title = "Close Line", color = #009900, linewidth = 10, style = line, transp = 90)
openPlot = plot(mavi, title = "Open Line", color = #CC0000, linewidth = 10, style = line, transp = 90)
closePlotU = plot(trendState ? kirmizi : na, transp = 100, editable = false)
openPlotU = plot(trendState ? mavi : na, transp = 100, editable = false)
closePlotD = plot(trendState ? na : kirmizi, transp = 100, editable = false)
openPlotD = plot(trendState ? na : mavi, transp = 100, editable = false)
fill(openPlotU, closePlotU, title = "Up Trend Fill", color = #009900, transp = 1)
fill(openPlotD, closePlotD, title = "Down Trend Fill", color = #CC0000, transp = 1)
last_signal = 0
long_final = longCond and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == -1)
short_final = shortCond and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1)
alertcondition(long_final, title="buy alarm", message="buy signal!!!")
alertcondition(short_final, title="sell alarm", message="sell signal!!!")
last_signal := long_final ? 1 : short_final ? -1 : last_signal[1]
plotshape(long_final, style=shape.labelup,
location=location.belowbar, color=green,size=size.tiny,title="buy label",text="BUY",textcolor=white)
plotshape(short_final, style=shape.labeldown,
location=location.abovebar, color=red,size=size.tiny,title="sell label",text="SELL",textcolor=white)
2. Darbis box
//@version=4
study("Darvas Box Buy Sell", overlay=true)
boxp = input(defval=5, title="Length", minval=1, maxval=500)
LL = lowest(low, boxp)
k1 = highest(high, boxp)
k2 = highest(high, boxp - 1)
k3 = highest(high, boxp - 2)
NH = valuewhen(high > k1[1], high, 0)
box1 = k3 < k2
TopBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, NH, 0)
BottomBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, LL, 0)
plot(TopBox, linewidth=3, color=#00FF00, title="TBbox")
plot(BottomBox, linewidth=3, color=#FF0000, title="BBbox")
Buy = crossover(close, TopBox)
Sell = crossunder(close, BottomBox)
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
plotshape(Buy, style=shape.labelup, location=location.belowbar, transp=0, color=#00FF00, size=size.tiny, title="Buy Signal", text="Buy", textcolor=color.black)
plotshape(Sell, style=shape.labeldown, location=location.abovebar, transp=0, color=#FF0000, size=size.tiny, title="Sell Signal", text="Sell", textcolor=color.white)
2021-02-13
757
글번호 146302
답변완료
수정 부탁드립니다.
안녕하세요? 아래의 수식에서 수정과 추가하고싶은 부분이 있습니다.
1) 진입봉 양봉(외부변수) / 진입봉 음봉(외부변수) 각각 몸통길이 외부변수
2) 현재 골든 및 데드크로스에 청산이 되고있는데, 설정한 익절/손절 이 먼저 도닫하게된다면, 설정한 익절/손절에 청산이 되었으면 좋겠습니다.
매수 포지션일시, 데드크로스 또는 설정해놓은 익손절 중에 먼저 도달하는것에 청산.
매도 포지션일시, 골든크로스 또는 설정해놓은 익손절 중에 먼저 도달하는것에 청산.
이런식으로 되었으면 좋겠습니다.
명절 잘보내시고 복많이받으세요.
부탁드립니다.감사합니다.
input : P1(5),P2(20);
input : 익절틱수(50),손절틱수(50),진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
var1 = ma(C,P1);
Var2 = ma(C,P2);
if MarketPosition == 0 and var1 > Var2 and C < O and entry < 진입횟수 Then
Sell();
if MarketPosition == 0 and var1 < Var2 and C > O and entry < 진입횟수 Then
Buy();
if MarketPosition == -1 and CrossUp(var1,Var2) Then
ExitShort();
if MarketPosition == 1 and CrossDown(var1,Var2) Then
ExitLong();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2021-02-13
621
글번호 146301
답변완료
오류 해결 좀 부탁드립니다.
실전 돌리고 있는 전략 중 하나가, 한번 진입하면 무조건 이틀 보유하는 전략입니다.
(정확히 말하면 아침에 사서, 하루 오버나잇 후 다음날 종가 무렵에 파는 전략입니다)
그런데 제가 짧은 초봉을 이용하다보니 10000봉을 불러와봐야 고작 1주일 정도만 이용 가능합니다.
그러다보니 하루 하루 지날때마다 진입된 상태가 변경되는 문제가 발생하고 있습니다.
예를 들어 설명드리면:
어제는 5일입니다.
그리고 어제까지 1, 2, 3, 4, 5일의 데이터를 불러와서 신호가 나왔습니다.
1일에서 사서 2일에 팔고, 3일에서 사서 4일에 팔고, 다시 5일에 사서 오버나잇을 했습니다.
오늘은 6일입니다.
오늘 불러와진 데이터는 2, 3, 4, 5, 6일입니다.
그러다보니 가져온 데이터의 첫날인 2일날 신호가 발생하여,
2일에 사서 3일에 팔고, 4일에 사서 5일에 팔고, 6일 오전에 다시 진입한 것으로 되어 있습니다.
어제 이미 사서 오버나잇을 했는데, 오늘 다시 열어서 데이터를 다시 불러오다보니 어제 사둔 신호는 시스템 차트 상에서 사라지고, 오늘 새로운 신호가 나옵니다.
이런 문제는 어떻게 해결하면 좋을지 궁금합니다.
감사합니다.
그런데 문제는
2021-02-12
682
글번호 146299