커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1345
글번호 230811
답변완료
90699 수식 추가 부탁드립니다
Plot1(hh+b);......hh+b 의 당일 최저가,당일 최고가 표시
plot2(ll-b);........ll-b 의 당일 최저가,당일 최고가 표시
감사합니다
----------
input : Period(20),dv(2);
var : BBup(0),BBmd(0),BBdn(0);
var : A(0),B(0),hh(0),ll(0);
BBup = BollBandUp(Period,dv);
BBmd = ma(c,Period);
BBdn = BollBandDown(Period,dv);
A = BBup-BBdn;
if Bdate != Bdate[1] Then
{
B = A;
hh = bbup;
ll = bbdn;
}
else
{
if A > B Then
{
B = A;
}
if bbup > hh Then
{
hh = bbup;
}
if bbdn < ll Then
{
ll = bbdn;
}
}
Plot1(hh+b);
plot2(ll-b);
2024-12-30
771
글번호 186756
답변완료
지난 질문에서요~
지난 답변 주신 내용에서 2번 질문에 대한 답변이 누락된 부분이 있어서 부탁드리겠습니다
그리고 아래와 같을때
var1 = Index; #현재 만족봉 봉번호
Var2 = var1[1]; #직전 만족봉 봉번호
var3 = var2[1]; #전전 만족봉 봉번호
var4 = var3[1]; #전전전 만족봉 봉번호
만약에 10봉 전 봉번호까지 구해야 하는 경우처럼 반복적으로 작성해야 하는 내용은 혹시 for 문으로 만들 수 있을까요? 아니면 다 입력을 해얗하나요??
지난글 2번 질문 ::
만일 조건만족봉 사이 간격이 5봉 미만이라면 평균을 일단 구하지 않고,
새로운 만족봉이 나왔을때 간격이 5봉 이상이라면 모든 봉들을 이용해서 평균을 구하고 싶습니다
예를들어 a3,a2,a1,a0 가 조건 만족했을때의 봉이라고 했을때
a3와 a2 (조건만족봉 a3, a2 까지 포함해서) 사이가 2개 , a2 와 a1 사이가 3봉이고 (조건만족봉 a2,a1 까지 포함해서 3개)
새로운 조건봉 a0 가 나타났을때
a1와 a0 사이가 10개봉 (a1,a0 까지 포함해서 10개)이라면 2봉+3봉+10봉 해서 15개봉의 평균을 a0에 나타내고 싶습니다
아래는 기본 수식입니다
새해 복 많이 받으세요~
var: cnt(0), sum1(0), sumi(0);
if h>l*1.05 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1= Index;
Var2= var1[1];
sum1=0;
sumi=0;
For cnt = 0 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
Plot11(value1);
}
2024-12-30
602
글번호 186748
살빼고싶다 님에 의해서 삭제되었습니다.
2024-12-30
118
글번호 186742
답변완료
시간봉 볼밴을 분봉으로
안녕하세요.
1시간봉기준 볼린저밴드를 1분봉에서 볼수 있도록 지표를 만들고 싶습니다.
2024-12-30
572
글번호 186741
답변완료
전환추세 표시 간격
Input : 전환(0.1);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL(0),TL1(0),TX1(0),TX2(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Red);
if max(저[1,1],저[2,1],저[3,1]) <= min(저[1,1],저[2,1],저[3,1])+PriceScale*1
and 저[1,1]<= highest(H,1000)-0.8 and 저[1,1]<= lowest(L,500)+0.1 Then
{
tx2 = Text_New(저[1,3],저[1,4],저[1,1]-0.15,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Black);
Text_SetSize(tx2,13);
}
}
Else If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL,1);
TL_SetColor(TL,Green);
if max(고[1,1],고[2,1],고[3,1]) <= min(고[1,1],고[2,1],고[3,1])+PriceScale*1
and 고[1,1] >= lowest(L,600)+0.8 and 고[1,1] >= highest(H,300)-0.1 Then
{
tx2 = Text_New(고[1,3],고[1,4],고[1,1]+0.15,"●");
Text_SetStyle(tx2,2,2);
Text_SetColor(tx2,Black);
Text_SetSize(tx2,13);
}
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
쓰리바닥의(동그라미) 첫 표시가 되면, 다음 동그라미 표시는 무시하다가 50봉 이후에 조건 만족시 표시. (쓰리바닥 표시 간격 최소 50봉, 쓰리봉은 그대로 모두 표시) 감사합니다
2024-12-30
622
글번호 186731
답변완료
수고하십니다. 키움수식을 파워종목 검색식 부탁드립니다
MO=floor(date/100);
MO1=MO%100;
A=VALUEWHEN(1, MO1!=MO1(1),O);
A1=eavg(c,130);
Crossup(C,A) AND C>=A1
2024-12-30
735
글번호 186729
답변완료
지표 질문입니다
1.
볼린저 밴드 상단 밴드-볼린저 밴드 하단 밴드=A
A의 당일 최대치= B
볼린저 밴드 상단 밴드 당일 천정+B 를 그린다
볼린저 밴드 하단 밴드 당일 바닥-B 를 그린다
2.
볼린저 밴드 상단 밴드-볼린저 밴드 하단 밴드=A
A의 20 캔들 최대치= B
볼린저 밴드 상단 밴드 20 캔들 천정+B 를 그린다
볼린저 밴드 상단 밴드 20 캔들 천정-B 를 그린다
볼린저 밴드 하단 밴드 20 캔들 바닥-B 를 그린다
볼린저 밴드 하단 밴드 20 캔들 바닥+B 를 그린다
감사합니다
2024-12-30
600
글번호 186724
답변완료
수식요청
안녕하세요 늘 도움 감사합니다
다음의 조건으로 수식을 부탁드립니다
어떤 분 봉 이든지 가장 최근 봉 에서 양 봉은 (시가) 와 음 봉의 (고가) 에 만
수평선 과 가격이 표시 되도록 수식을 만들어 주시길 부탁드립니다.
2024-12-30
670
글번호 186723
답변완료
수식문의 드립니다.
문의 드립니다.
-아래에서
1.조건을 1번 2번으로 나누어서 진입횟수가 5회까지는 1번조건 금액1만매수
2. 5~10회 까지는 2번조건 금액3만매수
3. 10회 이후는 3번조건으로 금액 5만매수 20회 이내에 매수후
토탈 평균가 a% 이상일때 일괄 시장가 매도수식도 가능할까요?
자꾸 질문드려서 죄송합니다. 잘 부탁드려요.
==올 한해 마무리 잘 하시고 새해 복 마니마니 받으세요! ~~^^==
-아래
Input : Period1(50),Period2(9),period(30),n(30),진입횟수1(5),진입횟수2(10), 진입회수3(20),금액1(0000),금액2(0000),금액3(0000), percent(2);
var :af(0.02), maxAF(0.2),f(0), CCIv(0),CCIsig(0),a(0),b(0),DMIv(0),dp(0),dm(0),DParity(0),DParity1(0),count(0);
CCIv = CCI(Period1);
CCIsig = ema(CCIv,Period2);
var1 = SAR(af,maxAF);
a=ma(c,120);
b=ma(c,5);
f=highest(h,2);
value1 = MACD(12,26);
value2 = ema(value1, 9);
DMIv = DMI(Period);
DP = DIPlus(Period);
DM = DIMinus(Period);
DParity = Disparity(120);
DParity1 = Disparity(240);
if CrossDown(CCIv,100) and CountIf(CCIV > 100,n) >= 1 Then
{
count = 0;
}
1번조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 1.진입횟수*금액1 Then
Buy("b");
}
2번 조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 2.진입횟수*금액2 Then
Buy("b");
}
3번 조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 3.진입횟수*금액3 Then
Buy("b");
}
if MarketPosition == 1 Then
{
ExitLong("Bp",AtLimit,AvgEntryPrice*(1+percent/100));
}
2024-12-30
687
글번호 186720