커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3233
글번호 230811
답변완료
수식 작성 요청
죄송합니다만, 말씀하신 수식을 아래의 수식중 어디에 넣어야 하는건가요?
Inputs: TurnLen(9), PrdLen1(26);
if PrdLen1 > TurnLen Then
{
value1 = (Highest(High, TurnLen) + Lowest(Low, TurnLen)) / 2; //전환
Value2 = (Highest(High, PrdLen1) + Lowest(Low, PrdLen1)) / 2; //기준
If crossup(value1,Value2) Then
{
Buy ("LE") ;
}
If crossdown(value1,Value2) Then
{
Sell ("SE");
}
}
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 작성 요청
>
안녕하세요
예스스탁입니다.
시스템식의 진입조건에 아래 내용 추가하시면 됩니다.
PrdLen1 >= TurnLen*2
즐거운 하루되세요
> minve 님이 쓴 글입니다.
> 제목 : 수식 작성 요청
> 안녕하세요
프로그램 제공수식에서 조금 수정할 수 있는지 문의드리고자 합니다.
시뮬레이션 차트 활용시 효율성 제고를 위해,
일목균형(ver2) 시스템에서 PrdLen1 변수값이 TurnLen 변수값에 비해 최소 2배 이상(같거나 큰)인 경우만 검증하도록 수식을 설정할 수 있나요?
2024-04-29
825
글번호 179051
답변완료
수식전환
수고많으십니다 항상감사합니다 아래 타사수식을 예스랭귀지로 변환 부탁드립니다 근데 타사 조건검색식을 제가 신호수식으로 전환한것인데 자꾸 수식에 )가 필요하다고 나오는데 가능할지요ㅠㅠ
A=CrossUp(h,BBandsUp(40,2));
B=CrossUp(macd(9,52),0);
C1=CrossUp(h,BBandsUp(40,2));
D=CrossUp(macd(9,52,26),sig1(26));
E=CrossUp(macd(9,52),0);
F=CrossUp(macd(9,52,26),sig1(26));
G=CrossUp(
StochasticsSlow(Period1,Period2),
eavg(StochasticsSlow(Period1,Period2),Period3));
H=CrossUp(macd(12,26,9),sig2(9));
((A and B) or (C1 and D) or (E and F)) and G and H
지표변수 sig1 26 ,sig2 9 period1 20 period2 12 period3 12 입니다 죄송합니다^^
2024-04-30
836
글번호 179050
답변완료
부탁드립니다.
1. 종가가 양봉이면서최근 5일 이내 최고가 위로 오르면 파란색으로, 종가가 음봉이면서 최근 5일 이내 최저가 아래로 내려가면 빨강색으로 구현해 주세요
2. 종가가 양봉이면서 최근 5시간이내 최고가 위로 오르면 파란색으로, 종가가 음봉이면서 최근 5시간 이내 최저가 아래로 내려가면 빨강색으로 구현해 주세요
고맙습니다.
2024-04-29
656
글번호 179048
답변완료
수식 변환 부탁 드립니다.
안녕하세요.
다음은 파인스크립트로 작성된 지표식입니다.
예스로 변환 부탁드립니다.
감사합니다.
/@version=5
indicator("Hybrid EMA AlgoLearner", shorttitle="Hybrid EMA AlgoLearner", overlay=false)
// Parameters for EMAs
shortTermPeriod = 50
longTermPeriod = 200
// k-NN parameter
k = input.int(5, 'K - Number of neighbors')
// Calculate EMAs
shortTermEma = ta.ema(close, shortTermPeriod)
longTermEma = ta.ema(close, longTermPeriod)
// Custom k-NN Algorithm for weighted EMA
var float[] distances = array.new_float(0)
array.clear(distances)
for i = 1 to 100 by 1 // Loop through past 100 data points
distance = math.abs(shortTermEma - longTermEma[i])
array.push(distances, distance)
array.sort(distances)
k_distances = array.new_float(0)
for i = 0 to k - 1 by 1
array.push(k_distances, array.get(distances, i))
// Calculate weighted EMA based on closest k distances
weightShortTermEma = 0.0
totalWeight = 0.0
for i = 0 to k - 1 by 1
weight = array.get(k_distances, i)
weightShortTermEma += shortTermEma[i] * weight
totalWeight += weight
weightShortTermEma /= totalWeight
// Scale weightShortTermEma between 0 - 100
var float minEma = na
var float maxEma = na
// Instead of all the history, only look at the last N bars.
lookbackPeriod = input.int(400, 'lookbackPeriod')
minEma := ta.lowest(weightShortTermEma, lookbackPeriod)
maxEma := ta.highest(weightShortTermEma, lookbackPeriod)
scaledWeightShortTermEma = (weightShortTermEma - minEma) / (maxEma - minEma) * 100
//== plot
emaplot = plot(scaledWeightShortTermEma, title='Scaled Weighted Short-Term EMA', color = color.new(#a6a8a3, 0), linewidth = 1)
midLinePlot = plot(50, color = na, editable = false, display = display.none)
// Fill between plots and add horizontal lines
fill(emaplot, midLinePlot, 105, 85, top_color = color.new(#057ec4, 0), bottom_color = color.new(#6ca800, 100), title = "Overbought Gradient Fill")
fill(emaplot, midLinePlot, 15, -5, top_color = color.new(#a83c91, 100), bottom_color = color.new(#fcf801, 0), title = "Oversold Gradient Fill")
hline(15, color = color.new(#8b3131, 50))
hline(50, color = color.new(color.gray, 49))
hline(85, color = color.new(#2c5c2e, 50))
2024-04-29
875
글번호 179043
답변완료
분봉에서 타주기 MACD지표 응용
안녕하세요!
질문게시판을 통하여 여러 도움을 받고 있어요!
매번 도움 주심에 항상 감사드립니다!! ㅇ ㅂㅇ//
오늘 부탁드리고 싶은 부분은 아래의 지표식중에서
"MACDsig" 부분을
지수계산이 아닌
단순계산으로 변경하는 하여 plot하고 싶어서요.
즉_ [ 타분봉의 지수이평선에 대한 MACD ]이지만 ,
<시그널 선의 계산>은 '지수값'이 아닌 '단순값'으로 변경하여 사용하고자 합니다.
지표식에 어떤부분을 손대야 할지 도움 부탁드립니다! ㅠ _ㅠ
//=========================================================//
//분봉에서 타주기 분봉macd 호출 수식 ↓
//=========================================================//
Input : Ntime(5),Period1(17),Period2(60),Period3(12);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0);
Var : Ep2(0), JISU2(0), PreJISU2(0);
Var : Ep3(0), JISU3(0), PreMACDSIG(0),TF(0);
var : MACDVal(0),MACDSig(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
TF = TimeToMinutes(stime)%Ntime;
if dayindex == 0 or (TF < TF[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDsig = MACDsig[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
MACDVal = JiSu1-Jisu2;
MACDsig= MACDVal;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDsig= MACDVal * EP3 + PreMACDsig * (1-EP3);
}
plot1(MACDVal);
plot2(MACDsig); #←←←←
2024-04-29
816
글번호 179032
답변완료
안녕하세요, 수식을 문의드립니다
안녕하세요,
수식을 문의드립니다
Input : Period(12), Period1(5), Period2(5);
value1 = StochasticsK(Period,Period1);
value2 = StochasticsD(Period,Period1,Period2);
위의 value1 이
1, 1 직전봉 80 이상에서
- 10 하락시 매도 수식을
부탁드립니다
감사합니다
2024-04-29
696
글번호 179029
답변완료
문의드립니다.
늘 노고에 감사드립니다.
rsi 매매에서 rsi가 30 이하로 내려갔다가 40 이상 올라오면 매수, 그 반대는 매도되는 시스템식 부탁드립니다.
이때 40 이상 올라온 봉의 종가가 아니라 40 이상 수치가 올라오면 봉이 완성되기 전에도 바로 매수신호가 나오게 할 수 있는지도 궁금합니다.
2024-04-29
626
글번호 179028
2wnwn 님에 의해서 삭제되었습니다.
2024-04-29
24
글번호 179026
답변완료
다시한번 검토 부탁드립니다
사용자함수명 : FFF
반환값형 : 논리형
input : filter(Numeric);
Array : Arr[6](False);
if (h[1]-l[1]) <> 0 Then
{
Arr[1] = c < ma(c,5);
Arr[2] = c > ma(c,5);
Arr[3] = c < ma(c,10);
Arr[4] = c > ma(c,10);
Arr[5] = c < ma(c,15);
}
FFF = Arr[filter];
/////////////////////////////////////////////////////////////////
위 내용까지가 사용자 함수용이고
/////////////////////////////////////////////////////////////////
전략수식
inpit: Filter(1);
if FFF(Filter)==false then { 매수 매도 };
이걸 전략수식에 작성에서 진행하면 되는거죠?
2024-04-29
697
글번호 179025