커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3488
글번호 230811
답변완료
문의
안녕하세요.
일봉 이평선 5/20/60/120/240 5가지를 각각 MA1,MA2, MA3, MA4, MA5라고 했을 때,
질문1. 롱 포지션일 경우, MA1에서 5%,MA2에서 10%,MA3에서 15%,MA4에서 20%,MA5에서 30%
익절하는 수식(각각의 MA를 뚫고 올라갈 때 익절)
질문2. 숏 포지션일 경우, 롱 포지션 경우와 동일하게 익절하는 수식(각각의 MA를 뚫고 내려갈 때 익절)
질문3. 현재 피라미딘을 사용하여 CurrentEntries < 2의 조건을 걸어 2회까지 진입하는데, 질문1과2 처럼 일부 청산할 경우 CurrentEntries 값이 하나 감소(-1) 되나요? 일부 청산하더라도 2회만 진입하게 하려면 어떤 조건을 걸어야 할까요?
감사합니다.
2023-10-25
1544
글번호 173379
답변완료
rsi지표
늘 감사합니다.
아래의 지표를 수정해 주세요.
Input : Period(9);
var : Relative(0);
Relative = RSI(Period);
Plot1(Relative, "RSI");
PlotBaseLine1(30, "기준선 30");
PlotBaseLine2(70, "기준선 70"); 를
data2와 data3, data4의 3개의 신호가
하나의 지표에 나올 수 있도록 해주세요.
즉,
Plot1(Relative, "1-RSI");
Plot2(Relative, "2-RSI");
Plot3(Relative, "3-RSI");
감사합니다.
2023-10-25
1113
글번호 173378
답변완료
시스템 수식 문의드립니다.
안녕하세요.
현재 일봉으로 시/고/저/종가 기준으로 거래 시,
원단위로 끝나는 경우에 과거처럼 주가 범위에 따라 5원/10원/100원 단위 등으로 맞춰서 거래하려고 합니다.(yesspot으로 신호를 받아서 거래하고 있습니다.)
Buy("b1",OnClose,Def,Floor(1000000/C));
예를 들어, 종가가 1971원이면 상기의 경우 오류가 발생하는데 1975원으로 세팅해서 spot으로 넘길 수 있는 방법이 있을까요?
많은 도움을 주셔서 항상 감사합니다.
즐거운 하루 보내세요.
2023-10-25
1048
글번호 173377
회원 님에 의해서 삭제되었습니다.
2023-10-25
534
글번호 173376
답변완료
안녕하세요. 수식 문의 드립니다.
안녕하세요. 아래의 신호 4개를 사용하는데요...
1봉전 기준 5봉이내 4개의 신호 중 3개의 신호가 발생되면 뜨는 신호를 만들고 싶습니다.
/// 1.신호
input : 기간(10), p(6), 기준(0), B기간(20), D1(2);
var : LL(0), HH(0), NL(0), NH(0), 저상(0),저하(0), 고상(0), 고하(0), Cnt1(0), Cnt2(0),이격률1(0),이격(0);
var : M60(0), M120(0), M240(0), 주가범위(False), 근접(False),M20(0), Bu(0), BB조건(False);
M20 = WMa(C, 20);
Bu = BollBandUp(B기간, D1);
주가범위 = C >= 1000 && C <= 100000;
LL = Lowest(L[1], 기간);
HH = Highest(H[1], 기간);
if L<LL[1] Then Cnt1 = index;
if (Index-cnt1)==(기간-p) Then 저상 = HH;
if (Index-cnt1)==(기간-p) Then 저하 = NL;
if H>HH[1] Then NH = H;
if H>HH[1] Then Cnt2 = index;
if (Index-cnt2)==(기간-p) Then 고상 = NH;
if (Index-cnt2)==(기간-p) Then 고하 = LL;
if 이격 = C/저상*100-100 Then 이격률1 = 이격;
BB조건 = BU > O && BU < C;
if 주가범위 && BB조건 && M20[2] < M20[1] && M20[1] < M20 && CrossUp(이격률1, 기준) Then plot1(L*0.99, "Dar저상 기준선 Bu 돌파");
/// 2. 신호
input : 이평기간(60),이전기간(20),signal(20);
var : Ha(0),Ca(0),La(0),MM(0),Mnt_20(0),Mnt_20S(0), 주가범위(False), M20(0);
주가범위 = C >= 1000 && C <= 100000;
M20 = WMa(C, 20);
Ha = wma(H, 이평기간);
Ca = wma(C, 이평기간);
La = wma(L, 이평기간);
MM=(Ha[1]+La[1]+Ca[1])/3*2-La[1];
Mnt_20=MM/wma(MM[1],이전기간)*100;
Mnt_20S=Ema(Mnt_20,signal);
if 주가범위 && M20[2] < M20[1] && M20[1] < M20 && CrossUp(Mnt_20,Mnt_20S) Then Plot1(L*0.97, "피봇 n개 이전값");
/// 3.신호
input : 종류(3),기간1(60),기준기간(20),기준선2(50);
var : 주가범위(false), M20(0);
M20 = wma(C,20);
주가범위 = C >= 1000 && C <= 100000;
if 종류 == 1 Then
var1 = ma(c, 기간1);
if 종류 == 2 Then
var1 = ema(c, 기간1);
if 종류 == 3 Then
var1 = wma(c, 기간1);
Var2 = iff(var1 > var1[1],1,0);
Var3 = wma(Var2,기준기간)*210;
if 주가범위 && CrossUp(Var3, 기준선2) && M20[2] < M20[1] && M20[1] < M20 Then Plot1(L*0.97,"이평강도추세");
/// 4.신호
Inputs: R기간(20),TurnLen(9), StdLen(26), PrdLen(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0),MM(0), 주가범위(False),M5(0),M20(0), AA(0);
input : 기간1(20);
var : HH(0), Hc(0), LL(0), Lc(0), Cc(0),HH2(0), Hc2(0), LL2(0), Lc2(0), Cc2(0) ;
M5 = WMa(C,5);
M20 = WMa(C,20);
주가범위 = C >= 1000 && C <= 100000;
MM = Rsi(R기간);
전환선 = (Highest(MM, TurnLen) + Lowest(MM, TurnLen)) / 2;
기준선 = (Highest(MM, StdLen) + Lowest(MM, StdLen)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(MM, PrdLen) + Lowest(MM, PrdLen)) / 2;
if Index%기간1 == 1 Then
{ HH = H;
LL = L; }
if HH < H Then HH = H;
if LL > L Then LL = L;
if Index%기간1 == 1 Then {
Hc = HH[1];
Lc = LL[1];
Cc = C[1] ; }
AA = (Hc+Lc+Cc)/3;
if 주가범위 && CrossUp(선행스팬1, 선행스팬2) && C > AA Then Plot1(L*0.96, "Rsi구름대 돌파");
항상 감사합니다.
2023-10-24
1085
글번호 173374
답변완료
종목검색식 부탁드립니다.
1. 조건식 A가 있는데
현재가가 조건식 A 보다 낮고, 이전봉 종가가 조건식 A보다 높은 경우를 찾는 조건식이며,
또한 주식의 분봉60분인 경우 갭보정을 한 경우를 찾는 조건식입니다.
항상 감사드립니다.
2023-10-24
1043
글번호 173373
답변완료
문의 드립니다.
// create base on http://www.dailyfx.com/forex_forum/coding-strategy-advisors-indicators-functions/237563-ttm-squeeze-indicator.html
study("TTM Squeeze")
length = input(title="Length", type=integer, defval=20, minval=0)
bband(length, mult) =>
sma(close, length) + mult * stdev(close, length)
keltner(length, mult) =>
ema(close, length) + mult * ema(tr, length)
e1 = (highest(high, length) + lowest(low, length)) / 2 + sma(close, length)
osc = linreg(close - e1 / 2, length, 0)
diff = bband(length, 2) - keltner(length, 1)
osc_color = osc[1] < osc[0] ? osc[0] >= 0 ? #00ffff : #cc00cc : osc[0] >= 0 ? #009b9b : #ff9bff
mid_color = diff >= 0 ? green : red
plot(osc, color=osc_color, style=histogram, linewidth=2)
plot(0, color=mid_color, style=circles, linewidth=3)
트레이딩뷰 지표인데 예스로 좀 변환해주세요.
2023-10-24
1236
글번호 173372
답변완료
문의 드립니다
input : StartTime(150000),EndTime(50000),midtime(210000);
input : 익절틱수1(800),손절틱수1(0);
input : 익절틱수2(160),손절틱수2(0);
var : Tcond(False),entry(0),T(0);
Variables: Mom(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
T = 1;
}
if (sdate != sdate[1] and stime >= midtime) or
(sdate == sdate[1] and stime >= midtime and stime[1] < midtime) Then
{
Tcond = False;
T = 2;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
T = 0;
}
if Tcond == true Then
{
if L ==lowest(L,2) and highest(H,2) >= lowest(L,2)+PriceScale*1 Then
{
Buy("b",AtStop,(highest(H,2)+lowest(L,2))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 4 Then
ExitShort();
}
if H == highest(H,2) and lowest(L,2) <= highest(H,2)+PriceScale*1 Then
{
Sell("s",AtStop,(lowest(L,2)+highest(H,2))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 4 Then
ExitLong();
if L ==lowest(L,1) and highest(H,3) >= lowest(L,2)+PriceScale*10 Then
{
Buy("b1",AtStop,(highest(H,3)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 4 Then
ExitShort();
if H == highest(H,1) and lowest(L,3) <= highest(H,2)+PriceScale*10 Then
{
Sell("s1",AtStop,(lowest(L,3)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 4 Then
ExitLong();
if L ==lowest(L,1) and highest(H,3) >= lowest(L,2)+PriceScale*10 Then
{
Buy("b2",AtStop,(highest(H,3)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 4 Then
ExitShort();
if H == highest(H,1) and lowest(L,3) <= highest(H,2)+PriceScale*10 Then
{
Sell("s2",AtStop,(lowest(L,3)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 4 Then
ExitLong();
if T == 1 Then
{
SetStopProfittarget(PriceScale*익절틱수2,PointStop);
SetStopLoss(PriceScale*손절틱수2,PointStop);
}
Else
{
SetStopProfittarget(PriceScale*익절틱수1,PointStop);
SetStopLoss(PriceScale*손절틱수1,PointStop);
}
익절시 해당 캔들의 다음신호 진입금지의
수식어가 가능한지 문의 드립니다.
2023-10-25
840
글번호 173371
답변완료
수식 부탁드립니다
1. (일) 1봉전 종가대비 0봉전 종가등락률 1% 이상 10% 이하
2. (일) 1봉전 종가대비 0봉전 시가등락률 5% 이하
3. (일) 2봉전 종가대비 1봉전 종가등락률 10% 이하
세가지 부탁드립니다.
2023-10-24
953
글번호 173370