커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7761
글번호 230811
답변완료
수식질문
항상수고많으십니다
var1 이 var2 돌파후 var1의 최대값,var1 이 var2 이탈후 var1의 최소값을 구하는
수식부탁 드립니다 새해 복 많이 받으세요
2009-12-31
844
글번호 27132
답변완료
오류수정하는것인데요
Input:len(0.32)
if (dayhigh[1]+daylow[1]+dayclose[1]+dayopen[1])/4==DayOpen Then
{
Plot1((dayhigh[1]+daylow[1]+dayclose[1]+dayopen[1])/4,"기준선",BLACK);
plot2(var1+((dayhigh-daylow)*len),"저항선",red);
plot3(var1-((dayhigh-daylow)*len),"지지선",BLUE);
}
if var1>DayOpen then
{
plot4(var1-(var1-dayopen),"기준선1",BLACK);
plot5(var4+((dayhigh-daylow)*len),"저항선2",RED);
plot6(var4-((dayhigh-daylow)*len),"지지선2",BLUE);
}
if var1<dayopen then
{
plot7(Var1+(dayopen-var1),"기준선2",BLACK);
plot8(var7+((dayhigh-daylow)*len),"저항선2",RED);
plot9(Var7-((dayhigh-daylow)*len),"지지선2",blue);
}
1.저위에 지표식이 오류가 나는데 제가 멀 잘못하고있는지 잘모르겠습니다..
가르침부탁드립니다
if marketposition == 1 Then
exitlong("chandstop",atstop,highest(high,BarsSinceEntry(0)+1)-ATR(atrlength)*mult);
if marketposition == 1 Then
exitshort("chandstop2",atstop,lowest(low,BarsSinceEntry(0)-1)-ATR(atrlength)*mult);
2. 위의 수식중 첫번째꺼 매수추적스탑 맛죠?
근데 매도추적스탑이 작동이 안됩니다 제수준에선 머가 잘못된지 잘모르겠습니다
가르침 부탁드립니다
수고하십시요~
2009-12-31
807
글번호 27131
답변완료
수식부탁드립니다.
이메일로 조건식 보내드렸읍니다. 답변 부탁드립니다.
nfoagent@naver.com
2009-12-31
780
글번호 27129
답변완료
수식질문드립니다.
현물을 매매합니다.
15분봉으로 매매하려하는데요
1차매수는 60이평위에서 캔들의 저점과 60이평의 이격이 3%에서 매수
2차매수는 120이평위에서 캔들의 저점과 120이평의 이격이 3%에서 매수
(만약 1차매수만 되고 수익권에 들어와 수익실현이 되었다면 2차매수는 안하며
1차매수의 수익실현이 이루어지지 않고 2차매수가까지 근접했을때 매수를 합니다.)
청산은 수익권일때는 5%이상 수익에서 전량매도
(1차매수만 되었을때는 1차매수분에 대한 수량만 매도,
만약 2차매수까지 되었다면 2차매수분까지 매도)
손실일때는 120이평 아래로 떨어져 120이평과 이격이 3%에서 손절
그리고 당일 매수/매도가 이루어졌다면 그날의 매매는 마칩니다.
(만약 60이평에서 1차매수후 5%이상되어 수익실현이 난후
다음에 다시 60이평 근처에 오더라도 매수를 안합니다)
수식을 어떻게 작성해야하나요?
2009-12-31
792
글번호 27128
답변완료
옵션 시뮬레이터 질문이 하나 더 있습니다.
어제 질문 답변 감사합니다.
제가 여러 개의 종목 옵션을 전부 기록할려다가 보니, 몇 가지 난관에 부딪히게 되더군요.
예를 들어서 아래와 같은 지표를 만들어서 데이터를 저장하려고 합니다.
print("option1.txt","%.2f %.2f %.2f %.2f %.0f %.0f",O,C,H,L,Volume,OpenInterest);
그런데 한달에 옵션 종목이 워낙 여러 개 이다 보니까, 저 지표를 옵션 시뮬레이터 안에 Call 225, 227.5, 230, ... 종목 차트를 각각 열고 위 지표를 집어 넣고 돌리니 서로 충돌이 나서 하나의 종목만 option1.txt 파일에 기록되더군요.
나름 생각한 해결책은 이제 지표를 여러 개 만들어서 option2.txt, option3.txt... 이렇게 다른 파일에 저장하는 방법이었습니다. 그런데 일일이 이렇게 해줄려다 보니까 여간 귀찮은 게 아니더군요. 한 달에 옵션 종목이 40개쯤 있다고 하면 지표를 40개 만들어야 되서..
만약에 한 지표만 가지고도 적용하는 종목에 따라서 데이터를 기록하는 파일 이름을 자동으로 다르게 할 수 있다면 좀 더 편하지 않을까 하고 생각하게 되서 질문 드립니다.
예를 들어 call 225 에 지표를 적용하면 option_call_225.txt 에 저장되고, call 230 에 적용하면 option_call_230.txt 에 데이터가 기록될 수 있도록 가능한지 궁금합니다.
2009-12-30
839
글번호 27127
대박나라 님에 의해서 삭제되었습니다.
2009-12-30
23
글번호 27126
FS 님에 의해서 삭제되었습니다.
2009-12-30
1
글번호 27124
답변완료
부탁합니다
2009/12/29 문의드렸던 Q&A 13002번 "월간 손실한도 "관련해서 잘모르겠는 부분이
있어서 다시 여쭙니다.
<저는 10분봉으로 하루 1번이내 진입, 당일청산,일중손실한도 5 points 및 월중
손실한도 15 points로 식을 구성하고자합니다.>
답변주신 월간 손실한도 설정식은 아래와 같습니다.
if date > date[1] +30 and dayindex == 0 then
var1 = netprofit;
if marketposition !=0 and netprofit + positionprofit <= var1- 15 then{
exitlong();
exitshort();
}
이중에서 "date > date[1] +30 and dayindex == 0" 설명을 부탁드립니다.
그리고 월중에 월중손실한도에의한 강제청산후 당해월 말일까지 신규 진입
하지않는 표현이있는지도 알려주시면 대단히 고맙겠습니다.
2009-12-30
681
글번호 27123
답변완료
산 시점의 ma구하기
밑의 수식처럼
틱챠트에서보는 일봉ma로 거래하고 있는데요
매수진입이 들어간 시점의
일봉 20ma를 구해서 청산 수식에 사용하려고 합니다.
총 두번의 진입이 있을때
각각 진입당시 일봉20ma 수치를 구하는 수식을 알려주세요
-----------------------------------------
input: P1(1),P2(2),P3(3),P4(4),P5(5),p6(6),p7(7),p8(8),p9(9),p10(10),p11(11),p12
(12),p13(13),p14(14),p15(15);
input: p16(16),p17(17),p18(18),p19(19),p20(20),p21(21),p22(22);
var : mav3(0,data1),mav4(0,data1),mav5(0,data1),mav6(0,data1),mav7(0,data1),mav8(0,data1),mav9(0,data1);
var : mav10(0,data1),mav11(0,data1),mav12(0,data1),mav13(0,data1);
var : mav14(0,data1), mav15(0,data1),mav16(0,data1),mav17(0,data1),mav18(0,data1),mav19(0,data1),mav20(0,data1);
var : mav21(0,data1),mav22(0,data1),mav23(0,data1),mav24(0,data1);
var : cnt(0,data1);
var : Bcnt1(0,data1),Bcnt2(0,data1),Bcnt3(0,data1),Bcnt4(0,data1),Bcnt5(0,data1),Bcnt6(0,data1);
var : Bcnt7(0,data1),Bcnt8(0,data1),Bcnt9(0,data1),Bcnt10(0,data1);
var : Bcnt11(0,data1),Bcnt12(0,data1),Bcnt13(0,data1),Bcnt14(0,data1),Bcnt15(0,data1);
var : Bcnt16(0,data1),Bcnt17(0,data1),Bcnt18(0,data1),Bcnt19(0,data1),Bcnt20(0,data1);
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var5 = 0;
var6 = 0;
var7 = 0;
var8 = 0;
var9 = 0;
var10 = 0;
var11 = 0;
var12 = 0;
var13 = 0;
var14 = 0;
var15 = 0;
var16 = 0;
var17 = 0;
var18 = 0;
var19 = 0;
var20 = 0;
var21 = 0;
var22 = 0;
for cnt = 0 to p22-1{
if cnt < P1 Then var1 = var1 + dayclose(cnt);
if cnt < P2 Then var2 = var2 + dayclose(cnt);
if cnt < P3 Then var3 = var3 + dayclose(cnt);
if cnt < P4 then var4 = var4 + dayclose(cnt);
if cnt < P5 then var5 = var5 + dayclose(cnt);
if cnt < P6 then var6 = var6 + dayclose(cnt);
if cnt < P7 then var7 = var7 + dayclose(cnt);
if cnt < P8 then var8 = var8 + dayclose(cnt);
if cnt < P9 then var9 = var9 + dayclose(cnt);
if cnt < P10 then var10 = var10 + dayclose(cnt);
if cnt < P11 then var11 = var11 + dayclose(cnt);
if cnt < P12 then var12 = var12 + dayclose(cnt);
if cnt < P13 then var13 = var13 + dayclose(cnt);
if cnt < P14 then var14 = var14 + dayclose(cnt);
if cnt < P15 then var15 = var15 + dayclose(cnt);
if cnt < P16 then var16 = var16 + dayclose(cnt);
if cnt < P17 then var17 = var17 + dayclose(cnt);
if cnt < P18 then var18 = var18 + dayclose(cnt);
if cnt < P19 then var19 = var19 + dayclose(cnt);
if cnt < P20 then var20 = var20 + dayclose(cnt);
if cnt < P21 then var21 = var21 + dayclose(cnt);
if cnt < P22 then var22 = var22 + dayclose(cnt);
}
mav3 = var3/P3;
mav4 = var4/P4;
mav5 = var5/P5;
mav6 = var6/P6;
mav7 = var7/P7;
mav8 = var8/P8;
mav9 = var9/P9;
mav10 = Var10/p10;
mav11 = var11/p11;
mav12 = var12/p12;
mav13 = var13/p13;
mav14 = var14/p14;
mav15 = var15/p15;
mav16 = var16/p16;
mav17 = var17/p17;
mav18 = var18/p18;
mav19 = var19/p19;
mav20 = var20/p20;
mav21 = var21/p21;
mav22 = var22/p22;
if
and c <= mav5*1.01 and Bcnt9 < 1 Then{
buy("오",onclose,def,Ceiling(var12/C*0.1)*10);
buyp1 = c;
Bcnt9 = 1;
Condition9 = true;
}
if
and c <= mav10*1.01 and Bcnt10 < 1 Then{
buy("오",onclose,def,Ceiling(var12/C*0.1)*10);
buyp2 = c;
Bcnt10 = 1;
Condition10 = true;
}
2009-12-30
781
글번호 27115