커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8100
글번호 230811
답변완료
수식문의 드립니다
안녕하세요.
수고많으십니다.
아래1번의 if문에서 2번의 if문을 추가시켜 주세요. 부탁드립니다.
1. if var4 == 1 and C > H[1] or (C >= C[1]*1.01 and C > O) Then
{
Var4 = 2;
Find(1);
}
2.if Condition1 == true and CountIf(Condition1==true,10) >= 3 Then
{
Find(1);
}
중요요점은 1번의 if문이 2번의 3회이상 만족 해야 검색이 된다라는 내용입니다.
항상 감사드립니다..
즐거운 주말 되시기를 바랍니다.
2024-06-21
798
글번호 180845
회원 님에 의해서 삭제되었습니다.
2024-06-21
265
글번호 180844
답변완료
피보나치 세로선
input : 전환포인트(0.8);
Array : HD[10](0),HT[10](0),HV[10](0);
Array : LD[10](0),LT[10](0),LV[10](0);
var : cnt(0),Hprice(0),Lprice(0);
var : UpTrend(false),DownTrend(False),Trend(0),Trend1(0),ZigZagTL(0),TX(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0);
Plot1 (c);
HPrice = H;
LPrice = L;
if Index == 0 or Bdate != Bdate[1] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
trend = 0;
trend1 = 0;
}
Else
{
if Trend == 0 Then
{
if L < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
}
if H > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
}
}
UpTrend = HPrice >= LV[0]+전환포인트;
DownTrend = LPrice <= HV[0]-전환포인트;
if trend <= 0 and UpTrend == true Then
{
trend = 1;
trend1 = trend[1];
For cnt = 9 DownTo 1
{
HD[cnt] = HD[cnt-1];
HT[cnt] = HT[cnt-1];
HV[cnt] = HV[cnt-1];
}
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
TX = Text_New(HD[0],HT[0],HV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,1);
Text_SetColor(TX,Black);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL1 = TL_New(LD[0],LT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL3 = TL_New(LD[0],LT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(LD[0],LT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(LD[0],LT[0],var5,NextBarSdate,NextBarStime,var5);
TL7 = TL_New(LD[0],LT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL3,Orange);
TL_SetColor(TL4,Blue);
TL_SetColor(TL5,Orange);
TL_SetColor(TL7,Magenta);
}
Else if trend >= 0 and DownTrend Then//하락추세 전환
{
trend = -1;
trend1 = trend[1];
For cnt = 9 DownTo 1
{
LD[cnt] = LD[cnt-1];
LT[cnt] = LT[cnt-1];
LV[cnt] = LV[cnt-1];
}
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
TX = Text_New(LD[0],LT[0],LV[0],NumToStr(HV[0]-LV[0],2)+" ");
Text_SetStyle(TX,1,0);
Text_SetColor(TX,Black);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL1 = TL_New(HD[0],HT[0],HV[0],NextBarSdate,NextBarStime,HV[0]);
TL3 = TL_New(HD[0],HT[0],var3,NextBarSdate,NextBarStime,var3);
TL4 = TL_New(HD[0],HT[0],var4,NextBarSdate,NextBarStime,var4);
TL5 = TL_New(HD[0],HT[0],var5,NextBarSdate,NextBarStime,var5);
TL7 = TL_New(HD[0],HT[0],LV[0],NextBarSdate,NextBarStime,LV[0]);
TL_SetColor(TL1,Magenta);
TL_SetColor(TL3,Orange);
TL_SetColor(TL4,Blue);
TL_SetColor(TL5,Orange);
TL_SetColor(TL7,Magenta);
}
Else
{
if trend == 1 Then
{
if trend1 == 0 Then
{
LV[0] = DayLow;
}
if HPrice > HV[0] Then
{
HD[0] = sDate;
HT[0] = sTime;
HV[0] = HPrice;
Text_SetLocation(TX,HD[0],HT[0],HV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL_SetBegin(TL1,LD[0],LT[0],HV[0]);
TL_SetBegin(TL3,LD[0],LT[0],Var3);
TL_SetBegin(TL4,LD[0],LT[0],Var4);
TL_SetBegin(TL5,LD[0],LT[0],Var5);
TL_SetBegin(TL7,LD[0],LT[0],LV[0]);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,Var5);
TL_SetEnd(TL7,Sdate,Stime,LV[0]);
}
}
if trend == -1 Then
{
if trend1 == 0 Then
{
HV[0] = DayHigh;
}
if LPrice < LV[0] Then
{
LD[0] = sDate;
LT[0] = sTime;
LV[0] = LPrice;
Text_SetLocation(TX,LD[0],LT[0],LV[0]);
Text_SetString(TX,NumToStr(HV[0]-LV[0],2)+" ");
var3 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(38.2/100));
var4 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(50/100));
var5 = 10^(LOG10(HV[0])-(LOG10(HV[0])-LOG10(LV[0]))*(61.8/100));
TL_SetBegin(TL1,HD[0],HT[0],HV[0]);
TL_SetBegin(TL3,HD[0],HT[0],Var3);
TL_SetBegin(TL4,HD[0],HT[0],Var4);
TL_SetBegin(TL5,HD[0],HT[0],Var5);
TL_SetBegin(TL7,HD[0],HT[0],LV[0]);
TL_SetEnd(TL1,Sdate,Stime,HV[0]);
TL_SetEnd(TL3,Sdate,Stime,Var3);
TL_SetEnd(TL4,Sdate,Stime,Var4);
TL_SetEnd(TL5,Sdate,Stime,Var5);
TL_SetEnd(TL7,Sdate,Stime,LV[0]);
}
}
}
}
확장되어가는 피보나치선을 따라 같이 우측으로 이동하며, 피보나치선 우측 끝에 세로선. 감사합니다.
2024-06-21
1118
글번호 180843
답변완료
종목 검색식으로 변환 부탁드립니다.
키움신호를 종목검색식으로 변환 부탁드립니다.
감사합니다..
//cumulative volume
VV=highest(V(1), period1);
sumV=sum(V(1), period1);
if(V>=VV and C>O, C*2, 0);
count=barssince((V>=VV or V>=sumV*ratio)
and C>O);
count2=barssince(count>0 and count <20
and v<=eavg(v(1), 5)*ratio2
and c<=lowest(c(1), 5));
if(count2>0 and count2 <10 and
C>highest(C(1), 5), 1, 0)
지표변수
midPeriod 26
Period 20
D1 2
period1 250
2024-06-21
873
글번호 180842
답변완료
분할매수,분할매도 수식 요청드립니다
안녕하세요 수식 질문드립니다.
국내주식입니다!
매수는
전일종가 대비 -5%, -7%, -9%
하락때마다 각각 1천만원 매수(현재가)
매도조건은 (시장가)
평단가에서 당일저가 대비 +5%(전체의30%)
+7%(잔량의50%),
+9%(전량).
이렇게 수식을 작성하고 싶은데
수식 알려쥬시면 감사하겠습니다!
아,
차트는 15분봉차트에서 틀려고 하는데 문제없겠죠??
2024-06-21
991
글번호 180841
답변완료
if then else 문법에라 부탁 드립니다.
아래의 사용자함수를 검증하면 아래와 같은 오류메세지 나옵니다. 부탁 드립니다.
ㅇ 오류메세지 : 줄수(18), 열수(2)에 "문법에라, 잘못된 토큰 else"
ㅇ 작성수식 : 함수명은 "데이짱_강남자리"입니다.
input : 기간(Numeric),상승률(Numeric);
var : 카운트(0),ii(0),hh(0),데이짱_조건(False);
카운트=0;
hh=highest(c,기간);
데이짱_조건=(hh >= c*(1+상승률) and c[기간]>=c*(1+상승률));
if 데이짱_조건 Then
{
for ii=0 to 기간-1
{
if c[ii] > c Then {
카운트=카운트 + 1;
}
데이짱_강남자리=카운트;
}
Else {데이짱_강남자리=기간};
2024-06-21
3277
글번호 180840
답변완료
날짜 지나면 자동 청산식
아래 수식에서 진입한 날짜를 기준으로 5일 이상이 지나면 바로 시장가로 청산되도록 수식 좀 변경 부탁합니다
시간까지 정확히 따질 필요없이 만약 5월1일에 진입했으면, 5일안에 목표수익이나 스탑이 되면 좋은데, 청산이 안되고 있다면 5월1일+5일 = 5월6일이 되면 바로 청산되도록 요청드립니다.
input : shortPeriod(12),longPeriod(26),Period(9),스탑로스(5),목표수익(2);
Var : MACD_value(0,Data1),MACDsig(0,Data1),BuySetup(False,Data1);
#MACD 설정
MACD_value = data1(MACD(shortPeriod, longPeriod));
MACDsig = data1(ema(MACD_value,Period));
#일봉 RSI 설정
Input : Period2(14),과매수(70);
var : dayRSI(0,data2);
dayRSI = data2(RSI(Period2));
#매수포지션 진입===============================
if TotalTrades > TotalTrades[1] Then
BuySetup = false;
if dayRSI < 과매수 Then
BuySetup = false;
if MarketPosition == 0 and CrossUp(dayRSI,과매수) Then
BuySetup = true ;
# 매수진입 ================================
If MarketPosition == 0
and BuySetup == true
and crossup(MACD_value,MACDsig)
Then
{
BuySetup = False;
Buy("매수");
}
# 목표수익
SetStopProfittarget(목표수익,PercentStop);
# 스탑로스
SetStopLoss(스탑로스,PercentStop);
2024-06-20
801
글번호 180839
2wnwn 님에 의해서 삭제되었습니다.
2024-06-20
21
글번호 180838
teak 님에 의해서 삭제되었습니다.
2024-06-20
20
글번호 180837