커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1555
글번호 230811
답변완료
박스 저장
input : Period(120);
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);
var :box1(0),box2(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
{
Box_Delete(box2);
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];
Condition88 = False;
if Condition88 ==False Then
{
if value12 <= value11-0.85 Then
{
Condition88 = true;
box1 = Box_New(date12,time12,H,NextBarSdate,NextBarStime,L);
Box_SetColor(box1,Lime);
Box_SetFill(box1,true,30);
Box_SetExtFill(box1,true);
}
}
}
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 Condition88 ==False Then
{
if value12 <= value11-0.85 Then
{
Condition88 = true;
box1 = Box_New(date12,time12,H,NextBarSdate,NextBarStime,L);
Box_SetColor(box1,Lime);
Box_SetFill(box1,true,30);
Box_SetExtFill(box1,true);
}
}
}
if Condition88 == true Then
Box_SetEnd(box1,date12,time12,L);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
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];
Condition99 = False;
if Condition99 ==False Then
{
if value12 >= value11+0.85 Then
{
Condition99 = true;
box2 = Box_New(date12,time12,H,NextBarSdate,NextBarStime,L);
Box_SetColor(box2,Magenta);
Box_SetFill(box2,true,30);
Box_SetExtFill(box2,true);
}
}
}
Else
{
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];
if Condition99 == False Then
{
if value12 >= value11+0.85 Then
{
Condition99 = true;
box2 = Box_New(date12,time12,H,NextBarSdate,NextBarStime,L);
Box_SetColor(box2,Magenta);
Box_SetFill(box2,true,30);
Box_SetExtFill(box2,true);
}
}
}
if Condition99 == true Then
Box_SetEnd(box2,date12,time12,Value12);
}
}
추세선의 크기가 0.85p에 도달할 때부터 그 추세선이 끝나는 지점까지 박스를 표시했다가,
상승추세선에서 생성된 박스는 음전환시 모두 삭제하고,
하락추세선에서 생성된 박스는 양전환시 모두 저장하는 수식입니다.
박스 표시 크기 양호하고, 상승추세선 박스 음전환시 삭제도 양호합니다.
24줄에 있는 Box_Delete(box2); 를 삭제하고 보면 박스 생성은 완벽합니다.(파일참조)
다만, 하락추세선에서 생성된 박스의 양전환시 저장이 일부만 되고 대부분 안됩니다.
수정 부탁드립니다.
2023-02-21
1860
글번호 166526
답변완료
수식 문의드립니다
안녕하세요
이평션별로 기울기 값을 변수로 입력하고자 합니다 변수 작성방법을 알려주세요
간격은 포인트로 표기하고자 합니다
모든 작은이평선과 큰이평선의 간격이 0.5포인트 때 매도 진입하고자 합니다 이 때 변수값 표기방법 구하기입니다
input : Period1(100),Period2(200),Period3(300),Period4(400),Period5(500),Period6(600),??????????,익절틱수s1(63),손절틱수1s1(91);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
mav1 = ma(c, Period1);
mav2 = ma(c, Period2);
mav3 = ma(c, Period3);
mav4 = ma(c, Period4);
mav5 = ma(c, Period5);
mav6 = ma(c, Period6);
var1 = abs(mav100-mav200);
var2 = abs(mav200-mav300);
var3 = abs(mav300-mav400);
var4 = abs(mav400-mav500);
var5 = abs(mav500-mav600);
if Tcond == true then
{
if MarketPosition >= 0 Then
if var1 > ?? and var2 > ?? and var3 > ?? and var4 > ?? and var5 > ?? and mav1[1] > mav1 Then
{
if CurrentContracts < 1 Then
sell("s1",OnClose,def,1);
}
if MarketPosition == -1 then
{
if mav1 < mav1 Then
{
ExitShort("s1-1",OnClose,def,"s1");
}
ExitShort("sp1",atlimit,AvgEntryPrice-PriceScale*익절틱수s1,"s1");
ExitShort("sl1",AtStop,AvgEntryPrice+PriceScale*손절틱수s1,"s1");
}
}
2023-02-22
1126
글번호 166525
답변완료
문의 드립니다
수고하십니다.
30분봉의 아래 지표값을 5분봉에 적용할 수 있게 변환 부탁드립니다.
수고하세요..
###############
Input:분석기간1(10),예측구간1(5);
Array:예측1[11](0);
var : PRS차수13(0),PRS차수13예측1(0);
var : T1(0);
PRS차수13 = YHS_PolynomialRegression(2,분석기간1,예측1);
If PRS차수13 == 1 Then {
PRS차수13예측1 = 예측1[0];
if PRS차수13예측1 > PRS차수13예측1[1] then
T1 = 1;
if PRS차수13예측1 < PRS차수13예측1[1] then
T1 = -1;
input : PRS1상승색(Red), PRS1하락색(Blue);
Plot24(PRS차수13예측1,"식1-4차",IFf(T1==1,PRS1상승색,PRS1하락색));
}
2023-02-22
1264
글번호 166524
답변완료
문의 드립니다
주가가 종가기준으로
일목균형표 기준선을 돌파하여 5%이상에서 3일이상일때 유지할때
4일째되는날 시가에 매수신호발생
그 반대의 경우에 매도 신호 발생하는 시스템식 요청드립니다
수고하세요
2023-02-21
1684
글번호 166523
답변완료
시스템신호수식문의
1. 20선과 60선이 골든크로스 조건만족후에
주가와 20선이 데드크로스발생하면 매도신호발생
2. 20선과 60선이 데드크로스 조건만족후에
주가와 20선이 골든크로스발생하면 매수신호발생
시스템트레이닝 신호수식 부탁드립니다.
2023-02-21
1452
글번호 166520
답변완료
문의 드립니다.
아래 식에서 매수 수량을 추가 조절 할 수 있도록 부탁드립니다.
Var : P1(20), P2(120);
Var : Mav1(0), Mav2(0);
Mav1 = Ma(C, P1);
Mav2 = Ma(C, P2);
if Mav1 > Mav2 and Mav2 > Mav2[1] and CrossUp(C, Mav1) Then
{
Buy();
}
if MarketPosition == 1 and CrossDown(C, Mav1) Then
{
ExitLong();
}
2023-02-21
1376
글번호 166507
답변완료
문의드립니다
안녕하세요
전봉의 몸통에서 윗부분보다 종가가 클때 매수
(꼬리부분제외)
수식부탁드립니다
2023-02-21
1716
글번호 166506
답변완료
수식 부탁드립니다
수고하십니다
해외선물 30분봉 전일종가대비 (2종목) 상승율 비교 매매 입니다
Data1 A종목 30분봉 Data3 A종목 일봉(종가)
Data2 B종목 30분봉 Data4 B종목 일봉(종가)
매매신호가 안나와서 수식 수정 부탁드립니다
input : 익절(0),손절(0),k(0.2),k1(0.2);
var : R1(0,Data1),R2(0,Data2),S1(0,Data3),S2(0,Data4);
R1 = Data1((C-S1)/S1*100);
R2 = Data2((C-S2)/S2*100);
if R1>0 and R1-R2 >= k Then
Buy("b");
if R1-R2 <= -0.1 Then
ExitLong();
if R2 < 0 and R1 <= R2-k1 Then
Sell("s");
if R1-R2 >= 0.1 Then
ExitShort();
SetStopProfittarget(익절,PointStop);
SetStopLoss(손절,PointStop);
2023-02-21
1097
글번호 166500
답변완료
문의드립니다
안녕하세요 감사드립니다
답변주신 식에서
청산후 다음 진입시 손실 폭이 -50이하 발생시 손실폭이 0이 될때까지 1계약에서 2계약으로 진입하는 식을 추가하고 싶습니다
1> 손실폭이 -50 이 되기 전 :1계약
2> 손실폭이 -50 이하가 되면 : 2계약 시작
3> 손실폭이 0이상이 되면 : 2계약 종료 1계약 시작
국선 기본적인 매매식을 바탕으로 부탁드립니다
감사합니다
안녕하세요
예스스탁입니다.
시스템식 하단에 아래 내용 추가하시면 됩니다.
var : count(0),HPL(0),maxdd(0),tx(0);
if TotalTrades > TotalTrades[1] Then
{
count = count+1;
if count == 1 Then
HPL = NetProfit;
Else
{
if NetProfit > HPL Then
HPL = NetProfit;
}
if NetProfit-HPL < maxdd Then
{
maxdd = NetProfit-HPL;
}
tx = Text_New(sDate[BarsSinceExit(1)],sTime[BarsSinceExit(1)],H[BarsSinceExit(1)]+PriceScale*3,NumToStr(maxdd,2));
Text_SetStyle(tx,2,1);
}
즐거운 하루되세요
> 바바큰 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요 문의드립니다.
익절, 손절, 시간청산시 청산 신호(봉)에
최고누적손익 대비 손실폭을 표시하고 싶습니다.
누적손익 100 200 150 120
손실폭 0 0 -50 -80 <--표시 (pt)
| |
(전략차트 기간 내 표시된 봉 기준입니다.)
2023-02-21
1071
글번호 166498