커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1559
글번호 230811
답변완료
검토부탁드립니다.
안녕하세요? 부탁드려서 아래와 같은 식을 받았는데, 매도 하나만 이루어지고 안 되는데 수정도 못해보겠네요. 검토좀 부탁드리고요, 이참에 첫번째 20이평선 하회할 때 sp에서 첫진입을 시작하는 것으로 바꿔주시면 감사하겠습니다.
#1)10.20,60 이평선이 정배열로 봉이 진행 중
#2) 20이평선이 60이평선 위에 있는 동안 최초로 봉의 저점이 20이평선을 하회했을때 그 봉에서의 20이평선 가격을 sp라 하고
#3) 그 뒤 60이평선이 상향 진행되어 sp 가격까지 도달된 이후
#4) 두번째로 봉의 저점이 20이평선을 하회하게 되면 그 선에서 매도 1계약하고 그 때의 20이평선 가격을 sp2라 하고
#5) 그 후 만일 봉의 저점이 60이평선을 하회하지 못한 채 봉의 저점이 20이평선 위로 올라가 최소한 10봉을 진행하게 되고 다시 60 이평선이 또 상향하여 sp2가격에 이르면 매도 1계약
#6)...그 식으로 누적시켜 가다가 상황이 반전되어 그 다음엔 반대로 역배열이 되면 독같은 방식으로 일단 최초의 역sp에서 매도진입분 전량청산하고 매수 1계약, 그 다음 sp2에서 또 매수 1계약...하는 식
input : P1(10),P2(20),P3(60);
var : mav1(0),mav2(0),mav3(0);
var : S(0),SP(0),SellAdd(False);
var : B(0),LP(0),BuyAdd(False);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
mav3 = ma(C,P3);
Condition1 = mav1 > mav2 and mav2 > mav3;
Condition2 = mav1 < mav2 and mav2 < mav3;
if Condition1 == true Then
{
if Condition1[1] == False Then
S = 0;
if CrossUp(mav2,mav3) then
{
S = 1;
}
Else if CrossDown(mav2,mav3) then
{
S = -1;
}
Else
{
if S >= 1 Then
{
if S == 1 Then
{
if CrossDown(L,mav2) Then
{
sp = mav2;
S = 2;
}
}
Else if S == 2 Then
{
if mav3 >= sp Then
{
S = 3;
}
}
Else if S == 3 Then
{
if MarketPosition >= 0 and CrossDown(L,mav2) Then
{
Sell("s1",OnClose,Def,1);
sp = mav2;
}
}
}
}
}
Else
S = 0;
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
SellAdd = true;
var1 = Index;
}
if L < mav3 Then
SellAdd = False;
if SellAdd == true and Index > var1+10 and mav3 >= sp and CountIf(L>mav2,10) == 10 Then
{
Sell("s",OnClose,Def,1);
sp = mav2;
}
}
if Condition2 == true Then
{
if Condition2[1] == False Then
B = 0;
if CrossUp(mav2,mav3) then
{
B = 1;
}
Else if CrossDown(mav2,mav3) then
{
B = -1;
}
Else
{
if B <= -1 Then
{
if B == -1 Then
{
if Crossup(H,mav2) Then
{
LP = mav2;
B = -2;
}
}
Else if B == -2 Then
{
if mav3 <= LP Then
{
B = -3;
}
}
Else if B == -3 Then
{
if MarketPosition <= 0 and CrossUp(H,mav2) Then
{
Buy("b",OnClose,Def,1);
LP = mav2;
}
}
}
}
}
Else
B = 0;
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
BuyAdd = true;
var2 = Index;
}
if H > mav3 Then
BuyAdd = False;
if BuyAdd == true and Index > var2+10 and mav3 <= LP and CountIf(H<mav2,10) == 10 Then
{
Buy("bb",OnClose,Def,1);
LP = mav2;
}
}
2023-02-12
818
글번호 166214
답변완료
부탁드립니다.
1. 일봉상 보조차트 저가와 주차트 저가가 0.60이내인 경우가 되면 주차트 봉에 빨강색으로, 보조차트 고가와 주차트 고가가 0.60이내인 경우가 되면 주차트 봉에 파란색으로, 보조차트 고가가 주차트 저가와 0.80이내 또는 보조차트 저가가 주차트 고가와 0.80이내가 되는 경우에는 주차트 봉에 흰색으로 구현해 주세요
고맙습니다.
2023-02-12
1177
글번호 166213
답변완료
문의
급등으로 인한
단일가 구간을 알수 있은 지표 부탁드립니다.
또한 강조식으로 봉의 머리와 꼬리를 제외한 몸통에만 표시될 수 있게 해주셔요..
2023-02-12
1300
글번호 166212
답변완료
추세선 직전과의 차이
input : Period(120),틱1(3),틱2(4);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),tl9(0),
date21(0),date22(0),time21(0),time22(0),txx(0), vTL(0), vTL9(0),txxx(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),tx4(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
Plot1(value12);
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
Condition3 = False;
if Condition3 == False and Value12 <= value11-0.5 and value12 < DayHigh-0.8 Then
{
Tx4=Text_New(date11,time11,value11+PriceScale*2,"●");
Condition3 = true;
Text_SetStyle(tx4,2,2);
Text_SetColor(tx4,Black);
Text_SetSize(tx4,35);
}
Txx = Text_New(date11,time11,loval[0]-PriceScale*10,"●");
Condition99 = true;
Text_SetColor(Txx,Red);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,20);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
PlaySound("C:₩예스트레이더₩data₩Sound₩reject.wav");
}
}
Else
{
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date22 = date[0];
time22 = stime[0];
}
if Condition3 == False and Value12 <= value11-0.5 and value12 < DayHigh-0.8 Then
{
Tx4 =Text_New(date11,time11,value11+PriceScale*2,"●");
Condition3 = true;
Text_SetColor(Tx4,Black);
Text_SetStyle(tx4,2,2);
Text_SetSize(tx4,35);
}
TL_Delete(tl);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
PlaySound("C:₩예스트레이더₩data₩Sound₩reject.wav");
}
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
if Condition3 == true Then
Text_Delete(tx4);
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
if Condition99 == true and Loval[0] >= Loval[1]-PriceScale*틱1 Then
{
Condition99 = False;
Text_Delete(txx);
}
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date32 = date[0];
time32 = stime[0];
}
}
1. 현 수식 중에 양전환되거나 직전저점을 4틱 벗어나면 삭제되는 빨간 동그라미의 위치를 loval[0] 고정에서 하락추세선 하단을 따라 같이 내려가는 이동형으로 수정.
2-1. 추세선이 양전환되면 바로 직전고점과의 차이를, 상승 추세선 상단을 따라 같이 올라가며 표기.
처음에는 -로 출발되니까 파란 글씨로, 차이를 변경해가며 표기. - 숫자가 점차 줄어들다 직전 고점에 도달하면 차이가 0 되고, 돌파하여 +로 바뀌면 빨간색으로 변경하여 돌파된 만큼의 숫자 표기 계속. 이전 상단은 지우고 마지막 상승 추세선 차이 숫자만 남긴다.
음전환되면 반대로 바로 직전저점과의 차이를 빨간 글씨로 추세선 하단을 따라가며 표기.
숫자가 줄어들다가 직전 저점에 도달하여 0 된후 붕괴되어 -로 바뀌면 파란 글씨로 변경하여 하단을 따라 내려가며 계속 표기. 이전 하락추세선 차이 숫자는 지우고 마지막 차이 숫자만 남긴다.
2-2. 직전과의 차이 숫자 표기는 상단 하나,하단 하나씩만 남기고 이전것은 항상 삭제.
2-3. 직전과의 차이는 틱수로 계산하여 표기 (0.15면 3). 감사합니다.
2023-02-13
1797
글번호 166211
답변완료
문의드립니다.
아무리 검증해도 안되 문의드립니다.
2023-02-12
1020
글번호 166210
게완 님에 의해서 삭제되었습니다.
2023-02-12
17
글번호 166209
답변완료
국내주식 매매 수식 요청드릴께요~~
국내 일반 주식 매매 관련 수식요청드림니다.
아래 조건에 만족하려면 차트 설정을 분봉으로 할지 일봉을 할지 분봉이면 60분봉인지
등등 까지 알려주시면 감사하겠습니다.
일단 MFI의 기간은 "일봉 기준" 입니다. 매수/청산 모두
이렇게 설정하려고 합니다.
차트1: 60분봉
차트2: 일봉
MFI 설정은 차트2로 반영하려고 합니다. 그렇게 반영되는 수식 부탁드릴께요~~
매수조건
1. 오후 2시 매수
2. MFI(25) < 20 (25봉에서 MFI값이 20미만)
3. 매수 금액 10만원
4. MFI(30) < 20 (30봉에서 MFI값이 20미만)
5. 매수 금액 20만원
6. MFI(35) < 20 (35봉에서 MFI값이 20미만)
7. 매수 금액 30만원
8. 총 매수금액이 500만원이하로 제한 ( 500만원 초과 금지)
위조건시마다 매수 누적
매수청산조건
1. 오후 1시
2. 매수평균가보다 수익이 높을때
2. MFI(20) > 70 (20봉에서 MFI값이 70초과)
3. 청산수량: 진입수량의 20% (분할매도)
* 100만원에서 20%면 20만원 청산후 다음날은 80만원의 20%청산 .......
결국 남아있는 잔량의 20%씩 청산하는 수식으로 부탁드림니다.
(5등분 분할 매도 가 아니구요)
2023-02-13
835
글번호 166208
답변완료
문의드립니다
기하이동평균, 삼각이동평균 ,삼각가중이동평균의 사용자하ㅁ수를 구하고 싶습니다
2023-02-12
676
글번호 166207
답변완료
수식부탁드립니다.
안녕하세요?
1, 수식부탁드립니다.
1) 어느 봉의 고점돌파시 한 틱 위에서 1개 매수 2) 다른 봉의 저점돌파시 수익이면 청산, 손실이면 유지 3) 더 저점에서 어느 봉의 고점이 돌파되면 한 틱 위에서 1개 더 매수 4) 다시 다른 봉의 저점돌파시 수익인 것은 청산하고 손실인 것은 유지...그 뒤 고점 돌파시 또 하나 추가해서 저점돌파시에는 수익이면 수익인 것만 청산하고 아닌 것은 유지 그런 식으로 계속 누적 진행.
2. 질문 있습니다. 1)entryprice(2)라고 할 때, 전전봉의 진입가격이란 뜻인가요(즉 전전봉의 진입이 없었으면 무의미?) 아니면 봉과는 상관없이 전전진입가격이란 뜻인가요? 2) entryprice는 차트 시작하고 맨처음 진입가격을 말하는 것인가요? 그러니까, 그 뒤 청산진입이 아무리 여러번 이루어져도 그 차트내인 이상은 변함이 없는 것인가요? 3) latestentryprice 역시 그 뒤 청산이 얼마나 이루어졌는지와는 아무 상관없이 마지막으로 진입을 했던 가격인가요?
2023-02-12
725
글번호 166206