커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8124
글번호 230811
답변완료
수고 부탁드립니다
안녕하세요~~진행하다보니 추가도움이 필요해지네요~
input : 틱수1(50),틱수2(80);
var1 = ma(C,5);
Var2 = ma(C,20);
if var1 > Var2 Then buy("매수1진입");
if MarketPosition == 0 and
IsExitName("매수2청",1) == true and
C <= ExitPrice(1)-PriceScale*틱수1 and
var1 > Var2 Then buy("매수2진입");
if MarketPosition == 1 Then{
if var1 < Var2 Then exitlong("매수1청산");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if PositionProfit(0) < 0 and Var1 <= lowest(Var1,20)
Then exitlong("매수2청산");
}
~~~~~~~~~~~~~~~~~~질문~1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~위수식에서~~
매수1진과 매수2진~~ 매수1청과 매수2청 4개중에서~~
매수2진으로 진입한것만은 (매수1청은 작동되고) 매수2청~으로는 청산 미적용!!
하고 싶읍니다
(매수2진입은 매수2청not 처럼)이름지명해서 통체로 적용안되게 해주시면 제일좋고요
만약 미적용 이름지명이 안되면~~~
(1진입이던 2진입이던~)진입가보다 손실이 났고~and
직전 매수1~이나 2진입으로 진입된가격보다 50틱~80틱사이 하락 (80틱하락 넘어면안되고)
~and Var1 <= lowest(Var1,20) Then exitlong("매수2청산");
~~~~~~~~~~~~~~~~~~~~~질문~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(일반적인 수식 아래2개에서 바로 각각 청산대상만을 진입지명만으로 통체로~~
지정할수는 없을까요??~~~
if PositionProfit(0) < 0 and 손절 <= lowest(손절,100)
Then exitlong("매수1청"); ------>> 청산대상을 매수1진입과~~매수2진입 적용!!
if MarketPosition == 1 and
IsEntryName("2매수",0) == true and
C <= EntryPrice(1)-PriceScale*틱수2 and
var1/Var2*100 >= 110 Then
ExitLong("매수2청산"); ~~~~~~>> 청산대상을 매수2입것만~~적용!!
수고 부탁드립니다~~
2023-04-04
1869
글번호 167877
답변완료
이평매매수식 부탁드립니다.
나스닥거래 합니다.
1.이평은 10,20,60이평 사용
2.시간매매용으로 07부터 17시까지는 10/20 크로스에 한개진입하고 물타기로 +-40틱에서 물타기 한개 하여 전부 신호 청산합니다.
3.17시부터 새벽 05시까지는 10/60이평 으로 크로스 매수매도 진입 1개진입 또한개 물타기 하여 신호 청산합니다.
4. 일중 매매수익이 20만원이 되면 즉시 보유 포지지션을 청산하고 시스템 종료합니다.
수고해 주세요.....
2023-04-03
1502
글번호 167876
답변완료
문의 드립니다.
당일 중심선을 기준으로 주가가 위에 있을 때 볼린져 20 2 상선 돌파 매수
당일 중심선을 기준으로 주가가 아래 있을 때 볼린져 20 2 하선 돌파 매도
부탁드립니다.
var1 = BollBandUp(20,2);
Var2 = BollBandDown(20,2);
if CrossUp(c,var1) Then
Buy();
if CrossDown(c,var1) Then
ExitLong();
if CrossDown(c,var2) Then
Sell();
if CrossUp(c,var2) Then
ExitShort();
2023-04-03
1814
글번호 167875
답변완료
재문의드립니다.
81538 제문의입니다.
첨부파일 처럼 숫자가 보이도록 부탁드립니다.
숫자 크기변경 가능 하도록 부탁드립니다.
2023-04-03
1851
글번호 167874
렉스턴 님에 의해서 삭제되었습니다.
2023-04-03
1
글번호 167873
답변완료
함수요청
안녕하세요?
답변주신 아래 글번호 81505에 진입횟수를 추가 하고 싶습니다.
아래와 같이 작성해보았는데 횟수 제어가 안됩니다.
input : 최대진입횟수(3);
input : P(20),dv(2);
var : bbmd(0),bbup(0),bbdn(0),bwidth(0);
Var : Entry(0);
bbmd = ma(c,P);
bbup = bbmd+std(c,P)*dv;
bbdn = bbmd-std(c,P)*dv;
Bwidth = (bbup-bbdn)/bbmd;
if Bdate != Bdate[1] Then
{
entry = 0;
}
If entry < 최대진입횟수 and C > bbmd and CountIf(Bwidth>Bwidth[1],2) == 2 Then
{
Buy();
}
If entry < 최대진입횟수 and C < bbmd and CountIf(Bwidth<Bwidth[1],2) == 2 Then
{
Sell();
}
if MarketPosition == 1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitLong();
if MarketPosition == -1 and CountIf(Bwidth<Bwidth[1],BarsSinceEntry) == 2 Then
ExitShort();
SetStopEndofday(152000);
2023-04-03
1451
글번호 167872
돈뭉치 님에 의해서 삭제되었습니다.
2023-04-03
14
글번호 167867
답변완료
문의드립니다.
안녕하세요.
if c > o Then
value1 = v;
위 조건은 양봉일 때의 거래량을 구한 식입니다
양봉이 아닌 봉은 제외한
이전 양봉과 전전양봉, 전전전 양봉의 거래량을 구하는 식을 알려주세요.
2023-04-03
1499
글번호 167866
답변완료
수식변경
늘 감사합니다.
월봉으로 바꾸어 쓰다 컴이 포멧되어서 사라저 버렸내요
죄송하지만 월봉(매달 1일로 시작)으로 수식을 변경해 주세요
거듭 감사합니다.
--------------------------------------
input : 시간1(090000), Price1(100);
value1 = TimeToMinutes(stime);
if stime == 시간1 Then
var : cnt(0);
Array : O1[20](0), H1[20](0),L1[20](0),C1[20](0),
O2[20](0), H2[20](0),L2[20](0),C2[20](0),
O3[20](0), H3[20](0),L3[20](0),C3[20](0),
O4[20](0), H4[20](0),L4[20](0),C4[20](0),
O5[20](0), H5[20](0),L5[20](0),C5[20](0),
O6[20](0), H6[20](0),L6[20](0),C6[20](0),
O7[20](0), H7[20](0),L7[20](0),C7[20](0);
if stime == 시간1 Then{
O1[0] = data1(O);
H1[0] = data1(H);
L1[0] = data1(L);
for cnt = 1 to 19{
O1[cnt] = O1[cnt-1][1];
H1[cnt] = H1[cnt-1][1];
L1[cnt] = L1[cnt-1][1];
C1[cnt] = C1[cnt-1][1];
}
}
if data1(H) > H1[0] Then
H1[0] = data1(H);
if data1(L) < L1[0] Then
L1[0] = data1(L);
C1[0] = data1(C);
var1 = data1(H1[0]);
var2 = data1(L1[0]);
var3 = data1(O1[0]);
var4 = data1(C1[0]);
var5 = (var4-var3)/data1(PriceScale);
plot1(var5, "111");
if stime == 시간1 Then{
O2[0] = data2(O);
H2[0] = data2(H);
L2[0] = data2(L);
for cnt = 1 to 19{
O2[cnt] = O2[cnt-1][1];
H2[cnt] = H2[cnt-1][1];
L2[cnt] = L2[cnt-1][1];
C2[cnt] = C2[cnt-1][1];
}
}
if data2(H) > H2[0] Then
H2[0] = data2(H);
if data2(L) < L2[0] Then
L2[0] = data2(L);
C2[0] = data2(C);
var11 = data2(H2[0]);
var12 = data2(L2[0]);
var13 = data2(O2[0]);
var14 = data2(C2[0]);
var15 = (var14-var13)/data2(PriceScale);
plot2(var15, "222");
if stime == 시간1 Then{
O3[0] = data3(O);
H3[0] = data3(H);
L3[0] = data3(L);
for cnt = 1 to 19{
O3[cnt] = O3[cnt-1][1];
H3[cnt] = H3[cnt-1][1];
L3[cnt] = L3[cnt-1][1];
C3[cnt] = C3[cnt-1][1];
}
}
if data3(H) > H3[0] Then
H3[0] = data3(H);
if data3(L) < L3[0] Then
L3[0] = data3(L);
C3[0] = data3(C);
var21 = data3(H3[0]);
var22 = data3(L3[0]);
var23 = data3(O3[0]);
var24 = data3(C3[0]);
var25 = (var24-var23)/data3(PriceScale);
plot3(var25, "333");
if stime == 시간1 Then{
O4[0] = data4(O);
H4[0] = data4(H);
L4[0] = data4(L);
for cnt = 1 to 19{
O4[cnt] = O4[cnt-1][1];
H4[cnt] = H4[cnt-1][1];
L4[cnt] = L4[cnt-1][1];
C4[cnt] = C4[cnt-1][1];
}
}
if data4(H) > H4[0] Then
H4[0] = data4(H);
if data4(L) < L4[0] Then
L4[0] = data4(L);
C4[0] = data4(C);
var31 = data4(H4[0]);
var32 = data4(L4[0]);
var33 = data4(O4[0]);
var34 = data4(C4[0]);
var35 = (var34-var33)/data4(PriceScale);
plot4(var35, "444");
if stime == 시간1 Then{
O5[0] = data5(O);
H5[0] = data5(H);
L5[0] = data5(L);
for cnt = 1 to 19{
O5[cnt] = O5[cnt-1][1];
H5[cnt] = H5[cnt-1][1];
L5[cnt] = L5[cnt-1][1];
C5[cnt] = C5[cnt-1][1];
}
}
if data5(H) > H5[0] Then
H5[0] = data5(H);
if data5(L) < L5[0] Then
L5[0] = data5(L);
C5[0] = data5(C);
var41 = data5(H5[0]);
var42 = data5(L5[0]);
var43 = data5(O5[0]);
var44 = data5(C5[0]);
var45 = (var44-var43)/data5(PriceScale);
plot5(var45, "555");
if stime == 시간1 Then{
O6[0] = data6(O);
H6[0] = data6(H);
L6[0] = data6(L);
for cnt = 1 to 19{
O6[cnt] = O6[cnt-1][1];
H6[cnt] = H6[cnt-1][1];
L6[cnt] = L6[cnt-1][1];
C6[cnt] = C6[cnt-1][1];
}
}
if data6(H) > H6[0] Then
H6[0] = data6(H);
if data6(L) < L6[0] Then
L6[0] = data6(L);
C6[0] = data6(C);
var51 = data6(H6[0]);
var52 = data6(L6[0]);
var53 = data6(O6[0]);
var54 = data6(C6[0]);
var55 = (var54-var53)/data6(PriceScale);
plot6(var55, "666");
if stime == 시간1 Then{
O7[0] = data7(O);
H7[0] = data7(H);
L7[0] = data7(L);
for cnt = 1 to 19{
O7[cnt] = O7[cnt-1][1];
H7[cnt] = H7[cnt-1][1];
L7[cnt] = L7[cnt-1][1];
C7[cnt] = C7[cnt-1][1];
}
}
if data7(H) > H7[0] Then
H7[0] = data7(H);
if data7(L) < L7[0] Then
L7[0] = data7(L);
C7[0] = data7(C);
var61 = data7(H7[0]);
var62 = data7(L7[0]);
var63 = data7(O7[0]);
var64 = data7(C7[0]);
var65 = (var64-var63)/data7(PriceScale);
plot7(var65, "777");
2023-04-03
1413
글번호 167865