커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8101
글번호 230811
답변완료
2가지 매도 적용방법 구현요청 드립니다.
아래와 같이 로직을 짜면.....
Condition1=false; Condition2=false; Condition3=false; Condition4=false;
Condition1 = ma(c,5);
Condition2 = ma(c,10);
Condition3 = ma(c,20);
Condition4 = ma(c,30);
if (Condition1 == True or Condition2 == True or Condition3 == True or Condition4 == True ) then buy("매수");
SetStopProfittarget(PriceScale*40,PointStop);
SetStopLoss(PriceScale*30,PointStop);
위와같이 로직을 짜면 손절및 이익 을 2가지로 할수는 없나요?
아래과 같이 두개를 하나로 합치면서 이익및 손실을 두가지로 구현 불가 인가요?
if (Condition1 == True or Condition2 == True ) then buy("매수1);
SetStopProfittarget(PriceScale*40,PointStop);
SetStopLoss(PriceScale*30,PointStop);
if (Condition3 == True or Condition4 == True ) then buy("매수2);
SetStopProfittarget(PriceScale*20,PointStop);
SetStopLoss(PriceScale*20,PointStop);
이것을 하나로는 불가능 한가요?
* 항상 많은 도움에 고맙습니다. 꾸벅..............
2018-09-02
189
글번호 121803
답변완료
수식 수정 부탁드립니다.
아래와 같이 작성했는데, 검색신호가 안뜹니다. 수식이 잘못된 부분 수정 부탁드립니다.
(절대값의 평균을 구하는 함수가 잘못되었는지요??)
검색조건
1. 전봉 또는 전전봉 또는 전전전봉이 음봉이고 직전 10개봉 평균 봉길이(양봉 음봉 관계없이)의 2배 이상 && 거래량이 직전 10개봉 평균 봉길이의 2배 이상
2. 현재봉이 전봉의 1/2 길이 이하의 음봉이거나 양봉 && 거래량이 전봉의 1/2 이상
----------------------------------------------------------------------------------------
input : N(10) ;
#검색
if (((C-O)[1] < 0 or (C-O)[2] < 0 or (C-O)[3] < 0 )
&& abs(C-O)[1] > ((avg (abs(C-O), n )) * 2) && V[1] > (avg(V, n) * 2 ))
&& abs(C-O) < ((abs(C-O)[1]) * 0.5) && V > (V[1] * 0.5) Then
plotpaintbar
2018-09-02
249
글번호 121802
답변완료
부탁드립니다.
- 1분챠트에서 1시간에 1회만 진입청산하는 시스템식을 조건으로 아래 수식을 부탁드립니다.
- 종가가 20개봉의 최고가를 넘어서면 그 봉을 기준삼아 그 이후의 종가가 기준 삼은 봉의 종가를 넘어서면 매수 진입한 후 11틱 수익 또는 손실이면 청산하라
- 종가가 20개봉의 최저가를 내려서면 그 봉을 기준삼아 그 이후의 종가가 기준 삼은 봉의 종가를 내려서면 매도 진입한 후 11틱 수익 또는 손실이면 청산하라는 식을 부탁드립니다.
꼭 1시간에 진입청산이 1회 이상 나오지 않게 해 주세요 , 고맙습니다.
2018-09-02
180
글번호 121801
답변완료
부탁 드립니다
안녕 하세요 문의 드립니다
// 질문1
var : HH2(0,data2),LL2(0,data2);
Input : P12(100);
HH2 = data2(highest(H,P12));
LL2 = data2(lowest(L,P12));
Var12 = data2(HH2-(HH2-LL2)*0.5);
메인차트는 1분봉을 사용하고 참조차트는 10분 봉으로 사용합니다
이경우
메인차트 현재봉 기준 500봉 이전의 hh2 하고 Var12 의 값을 참고하고 싶을때
1분봉으로 하면 hh2[500] 참조10분봉이면 hh2[50]
1분봉으로 하면 Var12[500] 참조10분봉이면 Var12[50] 일것 같은데,,
어떤걸로 사용해야 되는지 설명 부탁 드립니다
지금 사용하는 수익에는 hh2[50] , Var12[500] 을 사용하니 원하는 신호는
나옵니다만 ㅠㅠ 정확한 기준을 모르겠습니다
자세한 설명좀 부탁 드리겠습니다
//질문2
if Crossup( c , DayOpen) then
var1 = Index;
이경우
시가돌파하고 100봉 전에 조건1을 만족하면 매수
시가돌파하고 10봉이 지나고 나서 조건1을 만족하면 매수
수식 부탁 드립니다
감사 합니다
2018-09-05
185
글번호 121800
답변완료
수식 부탁드립니다.
수식 부탁드립니다. 감사합니다.
매수
1.선행스팬2보다 종가가 높고 이동평균선 190선을 돌파 시 매수
2. 혹은 190이평선보다 종가가 높고 선행스팬2 돌파 시 매수
매수청산
선행스팬2나 190이평선 둘 중 하나를 이탈 시 청산
매도
1. 선행스팬2보다 종가가 낮고 190선 이탈 시 매도
2. 혹은 190선보다 종가가 낮고 선행스팬2 이탈 시 매도
매도청산
선행스팬2나 190선 둘 중 하나 돌파 시 청산
감사합니다.
2018-09-02
179
글번호 121799
쎈스짱 님에 의해서 삭제되었습니다.
2018-09-02
0
글번호 121798
답변완료
지표 표시값과 로그값의 차이 발생
수고 많으십니다.
첨부파일의 우측 차트 지표상에는 8월 16일에 마이너스로 표시되는데,
좌측의 로그값은 8월 17일에 마이너스로 나타납니다.
왜 이런 차이가 발생하는지 궁금하고
해결 방법이 있는지 알고 싶습니다.
(물론 지표처럼 빠르게 변화해야겠죠...^^)
2018-09-02
240
글번호 121797
답변완료
수정 부탁드립니다.
금요일날 전화 드렸던 사람입니다.
수평추세선의 값을 옴기지를 못하니 값이 겹쳣을때 구별이 잘안되서 너무 불편해서요..
고민해본결과 수평추세선 값을 맨 오른쪽부터 배열시키되 열의 위치를바꾸어서 순차적으로 배
열시키게 해주실수 있겟는지요.
즉,상위1 값은 맨 오른쪽 첫번째 열에 상위2번 수평추세선 값은 그거보다 왼쪽으로 옮긴 열에
3번째는 더 왼쪽으로 이렇게 순위가 내려갈때마다 열은 왼쪽으로 가게
순차적으로 배열되게 해주시면 제가 쓰기 훨씬 편하겠읍니다.
추세선위에 값이 표현되는것은 같지만 열의 위치를 바꾸어 주시면 값이 겹치지않을거같아요
input : Price(10000), Per(10),N(5);
var : cnt(0),cnt1(0),cnt2(0),cnt3(0),idx(0),color(0);
var : SameO(0),SameH(0),SameL(0),SameC(0);
Array : VV[50](0),OO[50](0),HH[50](0),LL[50](0),CC[50](0);
Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0),ii[50](0);
Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0);
idx = idx+1;
for cnt = 1 to 49{
VV[cnt] = 0;
OO[cnt] = 0;
HH[cnt] = 0;
LL[cnt] = 0;
CC[cnt] = 0;
ii[cnt] = 0;
}
#N개값 출력
for cnt1 = 1 to N{
TL_Delete(OTL[cnt1]);
TL_Delete(HTL[cnt1]);
TL_Delete(LTL[cnt1]);
TL_Delete(CTL[cnt1]);
Text_Delete(OTx[cnt1]);
Text_Delete(HTx[cnt1]);
Text_Delete(LTx[cnt1]);
Text_Delete(CTx[cnt1]);
Text_Delete(Tx[cnt1]);
if cnt1 == 1 Then
color = black;
if cnt1 == 2 Then
color = red;
if cnt1 == 3 Then
color = blue;
if cnt1 == 4 Then
color = GREEN;
if cnt1 == 5 Then
color = YELLOW;
#차트 과거봉 전체 스캔
for cnt2 = 0 to idx
{
#Price대비 +- Per%안에 종가가 형성된
if !(L[cnt2] > Price*(1+Per/100) or H[cnt2] < Price*(1-Per/100)) and
V[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then
{
VV[cnt1] = V[cnt2];
OO[cnt1] = O[cnt2];
HH[cnt1] = H[cnt2];
LL[cnt1] = L[cnt2];
CC[cnt1] = C[cnt2];
ii[cnt1] = cnt2;
}
}
#동일값 체크
sameO = 0;
sameH = 0;
sameL = 0;
sameC = 0;
for cnt3 = 1 to N
{
if OO[cnt1] == OO[cnt3] or OO[cnt1] == HH[cnt3] or OO[cnt1] == LL[cnt3] or OO[cnt1] == CC[cnt3] Then
SameO = SameO+1;
if HH[cnt1] == OO[cnt3] or HH[cnt1] == HH[cnt3] or HH[cnt1] == LL[cnt3] or HH[cnt1] == CC[cnt3] Then
SameH = SameH+1;
if LL[cnt1] == OO[cnt3] or LL[cnt1] == HH[cnt3] or LL[cnt1] == LL[cnt3] or LL[cnt1] == CC[cnt3] Then
SameL = SameL+1;
if CC[cnt1] == OO[cnt3] or CC[cnt1] == HH[cnt3] or CC[cnt1] == LL[cnt3] or CC[cnt1] == CC[cnt3] Then
SameC = SameC+1;
}
#시가선
if SameO == 1 then
{
if LastBarOnChart == 1 Then
MessageLog("O %.2f",color);
#시가선 추세선 출력
OTL[cnt1] = TL_New(Sdate[1],stime[1],OO[cnt1],sdate,stime,OO[cnt1]);
TL_SetExtLeft(OTL[cnt1],true);
TL_SetExtRight(OTL[cnt1],true);
TL_SetColor(OTL[cnt1],color);
#시가선값 텍스트 출력
OTx[cnt1] = Text_New(sdate,stime,OO[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(OO[cnt1],0)+"|"+NumToStr(VV[cnt1],0));
Text_SetStyle(OTx[cnt1],0,0);
Text_SetColor(OTx[cnt1],color);
}
if SameH == 1 then
{
#고가선 추세선 출력
HTL[cnt1] = TL_New(Sdate[1],stime[1],HH[cnt1],sdate,stime,HH[cnt1]);
TL_SetExtLeft(HTL[cnt1],true);
TL_SetExtRight(HTL[cnt1],true);
TL_SetColor(HTL[cnt1],color);
HTx[cnt1] = Text_New(sdate,stime,HH[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(HH[cnt1],0));
Text_SetStyle(HTx[cnt1],0,0);
Text_SetColor(HTx[cnt1],color);
}
if SameL == 1 then
{
LTL[cnt1] = TL_New(Sdate[1],stime[1],LL[cnt1],sdate,stime,LL[cnt1]);
TL_SetExtLeft(LTL[cnt1],true);
TL_SetExtRight(LTL[cnt1],true);
TL_SetColor(LTL[cnt1],color);
LTx[cnt1] = Text_New(sdate,stime,LL[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(LL[cnt1],0));
Text_SetStyle(LTx[cnt1],0,0);
Text_SetColor(OTx[cnt1],color);
}
if SameC == 1 then
{
CTL[cnt1] = TL_New(Sdate[1],stime[1],CC[cnt1],sdate,stime,CC[cnt1]);
TL_SetExtLeft(CTL[cnt1],true);
TL_SetExtRight(CTL[cnt1],true);
TL_SetColor(CTL[cnt1],color);
CTx[cnt1] = Text_New(sdate,stime,CC[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt1],0));
Text_SetStyle(CTx[cnt1],0,0);
Text_SetColor(CTx[cnt1],color);
}
if CC[cnt1] > 0 then{
Tx[cnt1] = Text_New(sdate[ii[cnt1]],stime[ii[cnt1]],CC[cnt1],"●"+NumToStr(cnt1,0));
Text_SetStyle(Tx[cnt1],2,2);
Text_SetColor(Tx[cnt1],color);
Text_SetColor(Tx[cnt1],white);
}
}
어렵지만 한번 부탁드립니다....밥벌이가 달린 일이라 고민이 많읍니다.ㅜ.ㅜ
2018-09-02
315
글번호 121796
답변완료
수식 문의
please check attaschment.
always thank you
2018-09-06
225
글번호 121795