커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5556
글번호 230811
답변완료
신호 발생하지 않아 다시 문의 드립니다.
며칠전에 알려주신 로직입니다. 신호가 발생하지 않는데 다시 확인부탁드립니다.
제가 원하는 것은
60분봉을 추세 기준으로 하여 20이평 120이평 정배열이고
60분봉에서 볼린져밴드 상단선 돌파 중이거나 또는 상단선 위에 있을 때
하위봉(예로 1분봉이나 2분봉 등) 차트에서 볼린져 상선 돌파 매수로 진입하고자 합니다.
60분봉에서 20이평 120이평 역배열이고
60분봉에서 볼린져밴드 하단선 아래로 돌파 또는 하단선 아래 있을 때
하위봉(예로 1분봉이나 2분봉 등) 차트에서 볼린져 하선 돌파 매도로 진입하고자 합니다.
감사합니다^.^
input : 타주기분(60),BBP(20),Dv(2),P1(20),P2(120);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),SumSqrt(0),Stdv(0);
var : sum(0),BBmd(0),Bbup(0),BBdn(0);
var : sum1(0),mav1(0),sum2(0),mav2(0);
Array : CC[200](0);
#기본차트 볼밴
var1 = BollBandUp(20,2);
Var2 = BollBandDown(20,2);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
for cnt = 199 downto 1
{
CC[cnt] = CC[cnt-1];
}
}
CC[0] = C;
#타분봉 볼밴계산
if CC[BBP-1] > 0 then
{
sum = 0;
for cnt = 0 to BBP-1
{
sum = sum + CC[cnt];
}
BBmd = sum/BBP;
SumSqrt = 0;
For cnt = 0 To BBP - 1
{
SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2;
}
Stdv = SquareRoot(SumSqrt / BBP);
BBup = BBmd + (Dv * Stdv);
BBdn = BBmd - (Dv * Stdv);
}
#타분봉 P1이평 계산
if CC[P1-1] > 0 Then
{
sum1 = 0;
For cnt = 0 to P1-1
{
sum1 = sum1 + CC[cnt];
}
mav1 = sum1/P1;
}
#타분봉 P2이평 계산
if CC[P2-1] > 0 Then
{
sum2 = 0;
For cnt = 0 to P1-1
{
sum2 = sum2 + CC[cnt];
}
mav2 = sum2/P1;
}
//타분봉 지표값들 계산이 된 상태에서
if mav1 > 0 and mav2 > 0 and BBmd > 0 Then
{
if mav1 > mav2 and C > BBup Then
{
if CrossUp(c,var1) Then
Buy();
}
if CrossDown(c,var1) Then
ExitLong();
if mav1 < mav2 and C < BBdn Then
{
if CrossDown(c,var2) Then
Sell();
}
if CrossUp(C,Var2) Then
ExitShort();
}
}
2023-04-03
1337
글번호 167842
답변완료
지표 작성 부탁드립니다.
트레이딩뷰에 있는 지표인데 예스트레이더에서 사용할 수 있도록 가공해 주시면 감사하겠습니다.
아래는 트레이딩뷰에 있는 지표 작성 코드입니다. 매번 성의있는 답변 주시는 덕에 도움 많이 받고 있습니다. 감사합니다. ~
//@version=4
study(title="Pocket Pivots", shorttitle="Pocket Pivots", overlay=true)
tenSMAlen = input(10, minval=1, title="SMA1 Length")
fiftySMAlen = input(50, minval=1, title="SMA2 Length")
PPlen = input(10, minval=5, title="Pocket Pivot Length")
PPVolLen = input(5, minval=5, title="Volume Pocket Pivot Length")
UpDay = close > open and close[0] > close[1]
VolUpDay = close[0] > close[1]
tenSMA = sma(close,tenSMAlen)
fiftySMA = sma(close,fiftySMAlen)
//Volume on the pocket pivot day has to be greater than the previous Pocket Pivot Length days - default is 10. PPvol1 must count up to PPlen
PPvol1 = 0
for i = 1 to PPlen
if volume[0] > volume[i]
PPvol1 += 1
else
PPvol1 := 0
//Volume on the pocket pivot day has to be greater than the previous Pocket Pivot Length days - default is 5. PPvol2 must count up to PPVollen
PPvol2 = 0
for i = 1 to PPVolLen
if volume[0] > volume[i]
PPvol2 += 1
else
PPvol2 := 0
//Check if price has crossed or gapped over 10 day or 50 day SMA
MAcross = open < tenSMA and close > tenSMA or open < fiftySMA and close > fiftySMA or close[1] < tenSMA and close[0] > tenSMA or close[1] < fiftySMA and close[0] > fiftySMA
//Will show indicator when Pocket Pivot Volume and KMA crosses have occured
PocketPivot1 = PPvol1 == PPlen and UpDay and MAcross
plotshape(PocketPivot1 ? 1 : na, style=shape.triangleup, location=location.belowbar, color=color.rgb(51,153,255), size=size.small)
//Will show Yellow Triangle Down indicator when Volume Pocket Pivot is met and current day close is greater than yesterday;s close
PocketPivot2 = PPvol2 == PPVolLen and VolUpDay
plotshape(PocketPivot1 != 1 and PocketPivot2 ==1 ? 1 : na, style=shape.triangledown, location=location.belowbar, color=color.rgb(225,225,0), size=size.small)
//Alerts Conditions
alertcondition(PocketPivot1 == 1, title='Pocket Pivot', message='Pocket Pivot Triggered!')
alertcondition(PocketPivot2 == 1, title='Volume Pocket Pivot', message='Volume Pocket Pivot Triggered!')
2023-04-03
2120
글번호 167834
답변완료
수고 부탁드립니다
안녕하세요-~ 휼륭한 지식 답변으로 많은 도움되고 있읍나다
if MarketPosition == 0 and IsExitName("매수2청",1) == true and
C <= ExitPrice(1)*0.985 Then buy("매수2진입");~~~(%단위를 틱!으로 바꾸고싶읍니다)
질문1~~
직전 청산된(매수2청산) 가격보다 50틱이 하락하고~~5 > 20 일때~~1매수
직전 청산된(매도2청산) 가격보다 80틱이 상승하고~~5 < 20 이때~~1매도
직전 진입된(매수2번) 가격보다 50틱이 하락하고~~
5 / 20 이격도 110 이상일때~~매수1청산
직전 진입된(매도2번) 가격보다 80틱이 상승하고~~
5 / 20 이격도 90 이하일때~~매도1청산
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
질문2~~~(주문설정창과 연계)~
직전 청산된(주문설정창의 강제청산 손절매 (pt) 가격보다 50틱이 하락하고~~
5 > 20 일때~~1매수
직전 청산된(주문설정창의 강제청산 손절매 (pt) 가격보다 80틱이 상승하고~~
5 / 20 이격도 90 이하일때~~1매도
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
질문3~~
위 질문1번의 가격 틱!표현과 봉!표현으로의 방식이 만약 다르면~~
부분적으로 무엇을 바꾸어 주어야 하는지요??
(예시 50틱하락--> 50봉하락) (80틱상승-->80봉상승) 부탁드립니다~~
2023-04-03
1766
글번호 167819
답변완료
수고하십니다
수식 작성 부탁드립니다
진입수식
N이평선 위에 있고, N연속 음봉시 매수
매도진입식은 반대
손절수식
1. N % 손실시 손절
2. 손절값은 포인트로 변수에 누적하여 저장
청산수식
누적손실값이 없으면 N%수익시 청산
누적손실값이 있으면 누적손실값의 N배 만큼 이익시 청산
청산시 손절값변수 0으로 초기화
위에 언급된 N값은 각기 전부 다른 인풋변수로 지정 부탁드립니다.
항상 감사드립니다.
2023-04-03
1399
글번호 167818
답변완료
수식 문의입니다
주식 현물거래 기준입니다
분봉차트 상에서
Data1 : 해당 종목의 분봉 차트
Data2 : 해당 종목의 일봉 차트
현재 종목 보유중인 상태에서, 매일
15시 10분 이전 까지는 강제청산 주문이 작동하지 않고
15시 10분 부터 장 마감때까지만 강제청산 주문이 작동하도록 하려고 합니다.
강제청산 주문은,
분봉차트에서 현재가가
"진입가 - (3 * 일봉상atr(20일) )" 보다 낮아지면
즉시 매도가 나가도록 하려고 합니다
아래와 같이 작성했더니 작동이 안되는데... 혹시 어디가 잘못된 것일까요 ㅠ
if MarketPosition==1 and stime >= 151000 and NextBarSdate == sDate Then
SetStopLoss( 3 * Data2(ATr(20)) , PointStop );
Else
SetStopLoss(0);
2023-04-03
1393
글번호 167817
답변완료
81402번 재문의 입니다.
마지막첨부는 사용한 수식입니다.
문제 없다고 생각했는데 조건에 맞지 않는 종목이 상당수 나와서
31일 기준으로 검색한 종목중 오류가 있는 부분을 몇개 정리해봅니다.
솔본-3.28일 해당신호가 발생하는데 31일에 나옵니다.
신도기연-3.30일에 신호발생인데 31일에나옴
현우산업-30일에 신호 발생인데 31일에 나옴
호텔신라-29일에 신호 발생하는데 31일에 나옴
서연 - 녹적파 순서가 아닌데도 31일 검색식에 나옴
LG전자-31일에 엘리게이터가 녹적파 순으로 조건이 만족하지만 나오지 않음
번거로우시겠지만 확인한번 부탁드리겠습니다.
input : jawPeriod(13),jawOffset(8);
input : teethPeriod(8),teethOffset(5);
input : lipsPeriod(5),lipsOffset(3);
var : hl2(0),jaw(0),teeth(0),lips(0);
hl2 = (h+l)/2;
jaw = 0;
if IsNaN(jaw[1]) == true Then
jaw = ma(hl2,jawPeriod);
Else
jaw = (jaw[1]*(jawPeriod-1) + hl2)/jawPeriod;
teeth = 0;
if IsNaN(teeth[1]) == true Then
teeth = ma(hl2,teethPeriod);
Else
teeth = (teeth[1]*(teethPeriod-1) + hl2)/teethPeriod;
lips = 0;
if IsNaN(lips[1]) == true Then
lips = ma(hl2,lipsPeriod);
Else
lips = (lips[1]*(lipsPeriod-1) + hl2)/lipsPeriod;
Condition1 = teeth and teeth > jaw;
if Condition1 == true and Condition1[1] == False Then
Find(1);
2023-04-03
1272
글번호 167816
러블리 님에 의해서 삭제되었습니다.
2023-04-03
9
글번호 167815
답변완료
rsi 타주기
rsi 지수가, 100틱 차트와 50틱 차트에서 동시에 30 이하일 때, 50틱 차트의 rsi 지수가 30을 먼저 상향 돌파하면, 10틱 차트에 동그라미 표시. (10틱 차트는 rsi와는 무관. 표시만)
10틱 차트에 안되면 50틱 차트에 동그라미 표시. 감사합니다.
2023-04-03
1142
글번호 167814
답변완료
수식 문의드립니다.
안녕하세요.
일봉 거래 중 분할 매도 관련해서 문의드립니다.
매수 후 매도가격이 오면 가격이 상승할 때 4회에 걸쳐 분할매도(당일) 후 남은 물량을 당일 종가에 매도하고 있습니다.
그런데 매도 당일 종가가 당일 분할매도가격들 보다 현저하게 하락할 경우에는 손해를 보는 경우도 발생하게 됩니다.(예, 5%,7% 매도 후 종가가 -10%인 경우 등)
따라서 1회라도 매도가 되면 당일고가보다 5%하락한 가격에서 남은 물량을 전체매도 하고자 하는데 매도 수식 문의드립니다.
많은 도움 주셔서 감사합니다.
2023-04-02
1128
글번호 167813