커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3515
글번호 230811
회원 님에 의해서 삭제되었습니다.
2023-09-05
349
글번호 172177
답변완료
이 지표를 종목 검색으로 바꿔 주세요.
input :src(close),i_fastEMA(12),i_slowEMA(25),i_defEMA(25),i_bothEMAs(true);
var : ok(0),countBuy(0),countSell(0);
var : v_fastEMA(0),v_slowEMA(0),v_biasEMA(0),emaColor(0);
var : buycond(False),Sellcond(False);
var : buysignal(False),Sellsignal(False);
var : bull(False),bear(False),tx(0);
v_fastEMA = ema(src, i_fastEMA);
v_slowEMA = ema(src, i_slowEMA);
v_biasEMA = ema(src, i_defEMA);
emaColor = iff(v_fastEMA > v_slowEMA ,green , iff(v_fastEMA < v_slowEMA , red ,Orange));
// Colour the bars
buycond = v_fastEMA > v_slowEMA;
sellcond = v_fastEMA < v_slowEMA;
if buycond Then
{
countBuy = countBuy+1;
countSell = 0;
}
if sellcond Then
{
countSell = countSell+ 1;
countBuy = 0;
}
buysignal = countBuy < 2 and countBuy > 0 and countSell < 1 and buycond and buycond[1] == False;
sellsignal = countSell > 0 and countSell < 2 and countBuy < 1 and sellcond and sellcond[1] == False;
if buysignal Then
PlotPaintBar(h,l,"강조",Green);
if sellsignal Then
PlotPaintBar(h,l,"강조",red);
bull = countBuy > 1;
bear = countSell > 1;
if bull Then
PlotPaintBar(h,l,"강조",Green);
if bear Then
PlotPaintBar(h,l,"강조",red);
그린 매수 신호 나올 때 종목 검색 되도록 해주세요.
2023-09-05
812
글번호 172176
답변완료
지표수식을 부탁드립니다
1. ATR지표수식을 만들어주세요
2. avg(C,기간)+(ATR(20)*피보율) //기간 10, 피보율 2.618
avg(C,기간)-(ATR(20)*피보율)
3. M=( avg(max(max(H-L,abs(C(1)-H)),abs(C(1)-L)),단기,1)/C(1)*100+
avg(max(max(H-L,abs(C(1)-H)),abs(C(1)-L)),장기,1)/C(1)*100 ) / 2; //단기5, 장기20
A= M * 배수 ; //배수3
지표B=avg(C,기간)+avg(C,기간)*A/100; //기간12
지표D=avg(C,기간)-avg(C,기간)*A/100;
각각의 지표수식을 부탁드립니다
추가적으로 이평선의 기울기나 각도를 비교할 수 있는
수식도 부탁드립니다
2023-09-05
1003
글번호 172175
답변완료
지표 부탁드립니다.
안녕하세요
20 이평은 변수처리
20 이평위의 캔들은 음봉,양봉 상관없이 적색
20 이평아래의 캔들은 음봉,양봉 상관없이 청색
감사합니다.
2023-09-05
802
글번호 172172
답변완료
지표 부탁드립니다.
안녕하세요
일목의 전환선도(전환선 변수처리) 상방일경우 적색
중립(수평일경우 녹색)
하방일경우 청색으로 부탁드립니다.
고맙습니다.
2023-09-05
927
글번호 172170
답변완료
문의 드립니다
1.
input : StartTime(150000),EndTime(50000),진입횟수(10);
input : 익절틱수(250),손절틱수(50);
Input : 당일수익틱수(850),당일손실틱수(100);
Input:Length(1),Pval(0.01);
var : Tcond(False),entry(0);
Variables: Mom(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
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;
entry = 0;
Xcond = false;
N1 = NetProfit;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true ) then
Xcond = true;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
Buy("CBI_LE",AtStop,Highest(High,Length)+Pval);
ExitLong("CBI_SE",AtStop,Lowest(Low,Length)-Pval);
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2.
input : StartTime(150000),EndTime(50000),진입횟수(10);
input : 익절틱수(250),손절틱수(50);
Input : 당일수익틱수(850),당일손실틱수(100);
Input:Length(1),Pval(0.01);
var : Tcond(False),entry(0);
Variables: Mom(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false);
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;
entry = 0;
Xcond = false;
N1 = NetProfit;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true ) then
Xcond = true;
}
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
ExitShort("CBI_LE",AtStop,Highest(High,Length)+Pval);
Sell("CBI_SE",AtStop,Lowest(Low,Length)-Pval);
if MarketPosition == 1 then
{
ExitShort("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitShort("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
위 수식어에서 진입없이 연속 손실이 8회의 데이터가 나올때
9회에서 18회까지 진입하는 수식어를 추가할 수 있는지요 ?
-----------------
해외선물 매매에서 3봉이내 저점, 고점의 최소 가격변화가 40틱일때
그 중간인 20틱에 매수나 매도후 5봉 완성에 청산하는 수식어를 부탁드립니다.
매매시간은 21:00~ 05:00 이고 익절 100틱 손절 100틱 입니다
2023-09-06
984
글번호 172166
답변완료
시스템식 문의 드립니다.
안녕하세요.
시스템식 2가지 문의 드립니다.
1]
매수식이 macd/sig 골든크로스 라고 가정해 보겠습니다.
A, B , C 3개의 캔들중에서
B가 매수조건에 만족하는 캔들이라면,
Atstop 함수를 이용해서 nextbaropen 을 적용하면 C캔들의 시가에 매수가 됩니다.
여기서,
Atstop 함수를 쓰지 않고, C캔들의 시가에 매수신호가 나오게 하려면 어떻게 해야 하는지요?
이전 봉 종가가 완성되는 순간에 B캔들에서 매수신호가 나와도 될것 같긴 한데....
두가지 경우 모두 그 다음봉 시가부근에서 매수가 되는 거로 이해하고 있는데 맞는건가요?
위 두가지 경우 수식으로 어떻게 표현을 해야 하는지 궁금합니다.
2]
60분봉 차트에서 종가가 20이평 위에 있으면서
Rsi(14)가 50을 상향돌파할 때(또는 돌파 이후에)
10분봉의 1봉전 고가를 돌파하는 순간 매수진입하는 시스템식 부탁드립니다.
2023-09-06
828
글번호 172165
답변완료
문의드립니다~
var: 분주기(15),분주기1(5),분주기4(4),분주기3(3),분주기2(2),분주기5(1);
var: S1(0),D1(0);
var: cnt(0),cnt1(0),cnt2(0),cnt3(0),cnt4(0),cnt5(0);
Array : CC[100](0),OO[100](0);//,HH[100](0),LL[100](0),TT[100](0);
Array : C1[300](0);//,T1[100](0);
Array : C2[100](0);//,T1[100](0);
Array : C3[100](0);//,T1[100](0);
Array : C4[100](0);//,T1[100](0);
Array : C5[100](0);//,T1[100](0);
var:TM(0);
var:TF(0),tf1(0),tf2(0),tf3(0),tf4(0),tf5(0);
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) Then{
S1 = TimeToMinutes(070000);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%분주기;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF < TF[1]) Then{
OO[0] = o;
//HH[0] = H;
//LL[0] = L;
//TT[0] = stime;
for cnt = 1 to 100{
OO[cnt] = OO[cnt-1][1];
//HH[cnt] = HH[cnt-1][1];
//LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
//TT[cnt] = TT[cnt-1][1];
}
}
//if H > HH[0] Then HH[0] = H;
//if L < LL[0] Then LL[0] = L;
CC[0] = C;
TF1 = TM%분주기1;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF1 < TF1[1]) Then{
//T1[cnt1] = stime;
for cnt1 = 1 to 300{
C1[cnt1] = C1[cnt1-1][1];
//T1[cnt1] = T1[cnt1-1][1];
}
}
C1[0] = c;
TF2 = TM%분주기2;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF2 < TF2[1]) Then{
for cnt2 = 1 to 100{
C2[cnt2] = C2[cnt2-1][1];
}
}
C2[0] = c;
TF3 = TM%분주기3;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF3 < TF3[1]) Then{
for cnt3 = 1 to 100{
C3[cnt3] = C3[cnt3-1][1];
}
}
C3[0] = c;
TF4 = TM%분주기4;
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000))) or
(TF4 < TF4[1]) Then{
for cnt4 = 1 to 100{
C4[cnt4] = C4[cnt4-1][1];
}
}
C4[0] = c;
TF5 = TM%분주기5;
if (sdate != sdate[1] and stime >= 070000 and 분주기5 > 1) or
(sdate == sdate[1] and (Stime == 070000 or (stime > 070000 and stime[1] < 070000)) and 분주기5 > 1) or
(TF5 < TF5[1] and 분주기5 > 1) or
(Bdate == Bdate[1] and TM > TM[1] and 분주기5 == 1)
Then{
for cnt5 = 1 to 100{
C5[cnt5] = C5[cnt5-1][1];
}
}
C5[0] = c;
}
/////////////////
1.분주기식에서 나스닥 5분 기준으로 120이평과 240이평값을 구했는데
실제5분봉이랑 차이가 꽤 있어서요~
이게 날이 지나면서 5분봉값과 차이가 생기는거 같은데요.
수정 부탁드립니다.~
2.그리고 틱차트를 메인으로 하고 참조차트에 5분봉을 불러와서 120이평과 240이평을
구한 다음에 적용했을때 실시간신호가 안잡히는데요.틱차트에선 시간축이 동일하지 않아서 5분봉의 참조차트이용이 가능하지 않다는 이전답변을 보았습니다.
그러면 참조차트상에 현재 그려지는 봉 말고 이전에 완성된 봉을 기준으로 적용해도 마찬가지 인가요? 이렇게 저렇게 해봤는데 심플한 식에서는 적용이 되는데
좀 복잡한 식에서는 적용이 안되고 그렇네요. 아래식대로 1봉전 완성봉 기준으로 전략실행차트에서 적용하고 싶은데요.
var:b120(0),b240(0);
b120 = (c1[1]+c1[2]+c1[3]+c1[4]+c1[5]+c1[6]+c1[7]+c1[8]+c1[9]+c1[10]+c1[11]+c1[12]+c1[13]+c1[14]+c1[15]+c1[16]+c1[17]+c1[18]+c1[19]+c1[20]+
c1[21]+c1[22]+c1[23]+c1[24]+c1[25]+c1[26]+c1[27]+c1[28]+c1[29]+c1[30]+c1[31]+c1[32]+c1[33]+c1[34]+c1[35]+c1[36]+c1[37]+c1[38]+c1[39]+c1[40]+
c1[41]+c1[42]+c1[43]+c1[44]+c1[45]+c1[46]+c1[47]+c1[48]+c1[49]+c1[50]+c1[51]+c1[52]+c1[53]+c1[54]+c1[55]+c1[56]+c1[57]+c1[58]+c1[59]+c1[60]+
c1[61]+c1[62]+c1[63]+c1[64]+c1[65]+c1[66]+c1[67]+c1[68]+c1[69]+c1[70]+c1[71]+c1[72]+c1[73]+c1[74]+c1[75]+c1[76]+c1[77]+c1[78]+c1[79]+c1[80]+
c1[81]+c1[82]+c1[83]+c1[84]+c1[85]+c1[86]+c1[87]+c1[88]+c1[89]+c1[90]+c1[91]+c1[92]+c1[93]+c1[94]+c1[95]+c1[96]+c1[97]+c1[98]+c1[99]+c1[100]+
c1[101]+c1[102]+c1[103]+c1[104]+c1[105]+c1[106]+c1[107]+c1[108]+c1[109]+c1[110]+c1[111]+c1[112]+c1[113]+c1[114]+c1[115]+c1[116]+c1[117]+c1[118]+c1[119])/119;
b240 = (c1[1]+c1[2]+c1[3]+c1[4]+c1[5]+c1[6]+c1[7]+c1[8]+c1[9]+c1[10]+c1[11]+c1[12]+c1[13]+c1[14]+c1[15]+c1[16]+c1[17]+c1[18]+c1[19]+c1[20]+
c1[21]+c1[22]+c1[23]+c1[24]+c1[25]+c1[26]+c1[27]+c1[28]+c1[29]+c1[30]+c1[31]+c1[32]+c1[33]+c1[34]+c1[35]+c1[36]+c1[37]+c1[38]+c1[39]+c1[40]+
c1[41]+c1[42]+c1[43]+c1[44]+c1[45]+c1[46]+c1[47]+c1[48]+c1[49]+c1[50]+c1[51]+c1[52]+c1[53]+c1[54]+c1[55]+c1[56]+c1[57]+c1[58]+c1[59]+c1[60]+
c1[61]+c1[62]+c1[63]+c1[64]+c1[65]+c1[66]+c1[67]+c1[68]+c1[69]+c1[70]+c1[71]+c1[72]+c1[73]+c1[74]+c1[75]+c1[76]+c1[77]+c1[78]+c1[79]+c1[80]+
c1[81]+c1[82]+c1[83]+c1[84]+c1[85]+c1[86]+c1[87]+c1[88]+c1[89]+c1[90]+c1[91]+c1[92]+c1[93]+c1[94]+c1[95]+c1[96]+c1[97]+c1[98]+c1[99]+c1[100]+
c1[101]+c1[102]+c1[103]+c1[104]+c1[105]+c1[106]+c1[107]+c1[108]+c1[109]+c1[110]+c1[111]+c1[112]+c1[113]+c1[114]+c1[115]+c1[116]+c1[117]+c1[118]+c1[119]+c1[120]+
c1[121]+c1[122]+c1[123]+c1[124]+c1[125]+c1[126]+c1[127]+c1[128]+c1[129]+c1[130]+c1[131]+c1[132]+c1[133]+c1[134]+c1[135]+c1[136]+c1[137]+c1[138]+c1[139]+c1[140]+
c1[141]+c1[142]+c1[143]+c1[144]+c1[145]+c1[146]+c1[147]+c1[148]+c1[149]+c1[150]+c1[151]+c1[152]+c1[153]+c1[154]+c1[155]+c1[156]+c1[157]+c1[158]+c1[159]+c1[160]+
c1[161]+c1[162]+c1[163]+c1[164]+c1[165]+c1[166]+c1[167]+c1[168]+c1[169]+c1[170]+c1[171]+c1[172]+c1[173]+c1[174]+c1[175]+c1[176]+c1[177]+c1[178]+c1[179]+c1[180]+
c1[181]+c1[182]+c1[183]+c1[184]+c1[185]+c1[186]+c1[187]+c1[188]+c1[189]+c1[190]+c1[191]+c1[192]+c1[193]+c1[194]+c1[195]+c1[196]+c1[197]+c1[198]+c1[199]+c1[200]+
c1[201]+c1[202]+c1[203]+c1[204]+c1[205]+c1[206]+c1[207]+c1[208]+c1[209]+c1[210]+c1[211]+c1[212]+c1[213]+c1[214]+c1[215]+c1[216]+c1[217]+c1[218]+c1[219]+c1[220]+
c1[221]+c1[222]+c1[223]+c1[224]+c1[225]+c1[226]+c1[227]+c1[228]+c1[229]+c1[230]+c1[231]+c1[232]+c1[233]+c1[234]+c1[235]+c1[236]+c1[237]+c1[238]+c1[239])/239;
2023-09-05
1422
글번호 172164
답변완료
함수요청
안녕하세요?
답변주신 아래 글번호 83562번 연장선상에서 문의드립니다.
Plot1(c,"종가1");
Plot2(c,"종가2");
FixPlotShift(1,26);#plot1을 26봉 우측으로 이동
FixPlotShift(2,-26);#plot2를 26봉 좌측으로 이동
macd곡선= plot2-plot1
시그널곡선 = 9일의 macd 이동평균이라고 가정하고
macd오실레이터(macd곡선과 시그널곡선의 차이)를 지표로 그리고 싶습니다.
2023-09-05
742
글번호 172163