커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1705
글번호 230811
답변완료
문의 드립니다.
당일 시가 기준으로 시가 위이면 1번 적용
당일 시가 기준으로 시가 아래면 2번 적용
그리고 매매 수량을 원하는 대로 입력할 수 있을까요?
현재는 하나만 가능한데요...
부탁드립니다.
1번
Input : Period(10), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if C > BBmd and crossup(C[1],BBmd[1]) Then
buy();
input : P(10);
var1 = ma(C,P);
if CrossDown(c,var1) Then
ExitLong();
2번
Input : Period(100), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if C < BBmd and CrossDown(C[1],BBmd[1]) Then
sell();
input : P(10);
var1 = ma(C,P);
if crossup(c,var1) Then
ExitShort();
2021-11-23
680
글번호 153823
안미남 님에 의해서 삭제되었습니다.
2021-11-23
0
글번호 153822
답변완료
순서 질문드립니다.
C2 = Data2(c);
C3 = Data3(c);
C4 = Data4(c);
위 구문을 아래처럼 놓을때랑
value1 위에 놓을때랑 수익이 달라지는데,,,
정석이 어떻게되는지 궁금합니다.
-------------------------------
input : StartTime(93000),EndTime(144000);
Input : s1(14), s2(198);
input : 손절(1.2),익절(1.2);
input : 최소이익(1.0),손실범위(0.1);
var : Tcond(false,Data1);
var : C2(0,Data2);
var : C3(0,Data3);
var : C4(0,Data4);
value1 = ma(c3,s1);
Value2 = ma(c3,s2);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
C2 = Data2(c);
C3 = Data3(c);
C4 = Data4(c);
if Tcond == true Then
{
if CrossUp(value1,Value2)
then
Buy();
if CrossDown(value1,Value2)
then
Sell();
}
SetStopEndofday(EndTime);
SetStopProfittarget(익절,PointStop);
SetStoploss(손절,PointStop);
SetStopContract();#생략가능
SetStopTrailing(손실범위 , 최소이익 , PointStop);
2021-11-23
869
글번호 153820
답변완료
다시 부탁드립니다
안녕하세요
예스스탁입니다.
문의하신 내용은 각진입별로 진입명을 부여하고
해당 진입명을 청산함수에 지정해서 청산하게 하셔야 합니다.
if A조건 Then
Buy("A");
if A조건 Then <== B 조건이지요?
Buy("B");
if A조건 Then <== C 조건이지요?
Buy("C");
if A조건 Then <== d 조건이지요?
Buy("D");
if MarketPosition == 1 Then
{
if A1조건 Then <=== 여기부터 이해 안 됩니다
ExitLong("A1",OnClose,DEF,"a"); 다시 좀 부탁드립니다
if A2조건 Then 수고하세요~~
ExitLong("A2",OnClose,DEF,"a");
if A3조건 Then
ExitLong("A3",OnClose,DEF,"a");
if A4조건 Then
ExitLong("A4",OnClose,DEF,"a");
}
즐거운 하루되세요
> 안미남 님이 쓴 글입니다.
> 제목 : 늘 수고 많습니다
> 식이 a b c d 로 4개의 식이 있습니다
A 식으로 들어간건 A1 청산
B 식으로 들어간건 B1 청산
C 식으로 들어간건 C1 청산
D 식으로 들어간건 D1 청산 으로 하고 싶습니다
예를 들어 만들어 주시길 부탁드립니다
늘 고맙습니다
2021-11-23
569
글번호 153819
knb 님에 의해서 삭제되었습니다.
2021-11-23
11
글번호 153818
답변완료
문의 드립니다.
안녕하세요
키움수식인데 변환좀 부탁드립니다.
1
수식1
ma(가격,기간,이평종류)
수식2
a=ma(가격,기간1,이평종류);
b=ma(가격,기간2,이평종류);
lowestsince(1,crossdown(a,b),a)
수식4
ma(가격,기간,이평종류)
수식5
a=ma(가격,기간1,이평종류);
b=ma(가격,기간2,이평종류);
lowestsince(1,crossdown(a,b),a)
지표조건
가격 종가
종류 삼각
기간 5
기간1 5
기간2 30
2
수식1
ma(가격,기간,이평종류)
수식2
a=ma(가격,기간1,이평종류);
b=ma(가격,기간2,이평종류);
highestsince(1,crossdown(a,b),a)
수식4
ma(가격,기간,이평종류)
수식5
a=ma(가격,기간1,이평종류);
b=ma(가격,기간2,이평종류);
highestsince(1,crossdown(a,b),a)
지표조건
가격 종가
종류 삼각
기간 5
기간1 5
기간2 30
이런 수식인데 변환좀 부탁드립니다.
수식1 과 2는 선으로 나오게 하고
수식4 와 5는 색을 입히기 위해 키움에서는 이렇게 해야햐서 이렇게 작성 되었습니다.
바쁘시겠지만 도움주시면 감사하겠습니다.
2021-11-23
758
글번호 153817
답변완료
문의 드립니다
수고하십니다.
분봉차트에서
조건A를 당일 첫봉에만 적용하여 조건 만족시 첫봉에만 신호가 나게하려면 어떻게 해야 하는지요?
예를들어
당일 첫봉이 60이평 위에서 양봉이면 첫봉에만 매수신호 발생
당일 첫봉이 60이평 아래에서 음봉이면 첫봉에만 매도신호 발생...
수고하세요..
2021-11-22
802
글번호 153816
답변완료
74738 수식 확인 부탁드립니다
74712 시스템 수식 수정 부탁드렸는데 시스템 수식에 plot 수식이 기재되어있습니다
수정 부탁드립니다.
감사합니다
--------------------------------
요청드린 수식은 매수,매도,매도,매수 4회 또는 매도,매수,매도,매수 4회 거래 후 당일 거래를 종료하는 것인데 4회 이후 계속 거래가 되고 있습니다. 수정 부탁 드립니다.
감사합니다
----------
안녕하세요
예스스탁입니다.
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0),csarv(0),idx(0);
if Index == 0 or Bdate != Bdate[1] Then
{
Direction = 0;
SAR_Value = c;
AF_Value = 0.02;
HighValue = c;
LowValue = c;
EP = 0;
idx = 0;
}
idx = idx+1;
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = low;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = High;
}
}
CSarv = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSarv = SAR_Value;
}
else
{
if Direction == 0 then
{
if Close > Close[1] then Direction = 1;
else
if Close < Close[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if Close < Close[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSarv = SAR_Value;
}
}
if Direction == -1 then
{
if Close > Close[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSarv = SAR_Value;
}
}
}
LowValue = min(Low, LowValue);
HighValue = max(High, HighValue);
}
}
if idx == 3 Then
{
if C < O and C < Csarv Then
Sell();
if C > O and C > Csarv Then
Buy();
}
if idx > 3 Then
{
if CrossUp(C,Csarv) Then
Buy();
if CrossDown(c,Csarv) Then
Sell();
}
즐거운 하루되세요
> 유튜버 님이 쓴 글입니다.
> 제목 : 시스템 질문입니다
> 전일과 분리되어 당일부터 실행되는 종가 파라볼릭 기준
동시호가 캔들 포함 3번째 캔들이 음봉이고 종가가 파라볼릭보다 낮으면 매도하여
종가 파라볼릭 음양 전환에 따라 매도,매수,매도,매수 4번 거래로 당일 거래 종료.
동시호가 캔들 포함 3번째 캔들이 양봉이고 종가가 파라볼릭보다 높으면 매수하여
종가 파라볼릭 양,음 전환에 따라 매수,매도,매수,매도 4번 거래로 당일 거래 종료.
감사합니다
-------------------------------------
안녕하세요
예스스탁입니다.
당일진입횟수가 빠져있어 추가했습니다.
Input : 분(30), Length(14),Period(7);
var : cnt(0),S1(0),D1(0),TM(0),TF1(0);
var : SigSum(0),count2(0),RSIsig(0);
Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0);
var : idx(0), PreUpAvg(0), preDownAvg(0),HH(0),LL(0),StoRsi(0);
Array : C1[100](0),RSIV[100](-1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TimeToMinutes(stime)%분;
if Bdate != Bdate[1] or (bdate == bdate[1] and TF1 < TF1[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
RSIV[cnt] = RSIV[cnt-1][1];
}
PreUpAvg = UpAvg[1];
preDownAvg = DownAvg[1];
idx = idx + 1;
}
C1[0] = C;
If idx == Length+2 Then {
UpSum = 0;
DownSum = 0;
For Counter = 0 To Length - 1 {
UpAmt = C1[Counter] - C1[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else{
DownAmt = -UpAmt;
UpAmt = 0;
}
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
}
UpAvg = UpSum / Length;
DownAvg = DownSum / Length;
}
If idx > Length+2 Then
{
UpAmt = C1[0] - C1[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else {
DownAmt = -UpAmt;
UpAmt = 0;
}
UpAvg = (PreUpAvg * (Length - 1) + UpAmt) / Length;
DownAvg = (preDownAvg * (Length - 1) + DownAmt) / Length;
}
If UpAvg + DownAvg <> 0 Then
RSIv[0] = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSIv[0] = 0;
if RSIv[Period] > 0 Then
{
HH = RSIv[0];
LL = RSIv[0];
For cnt = 0 to period-1
{
if RSIV[cnt] > HH Then
HH = RSIV[cnt];
if RSIV[cnt] < LL Then
LL = RSIV[cnt];
}
StoRsi = (RSIv[0]-LL)/(HH-LL)*-1;
plot1(StoRsi,"StoRsi");
}
}
즐거운 하루되세요
2021-11-22
1025
글번호 153814
답변완료
문의 드립니다
참조에 있는 외국인코스피선물순매수량을 종목으로 차트에 띄우고
특정일이후 누적순매수량을 지표로 설정했는데.. 지표가 잘못인지
참조종목으로는 지표적용이 안되는데.. 표시가 그냥 0 으로 나옵니다
외국인선물순매수량은 하단티커에서 당일 순매수량은 볼수있는데
특정일 이후의 누적 순매수량을 알려면 어떻게 설정을 해야 할까요?
선물차트에 참조종목으로 외국인선물순매수량을 넣을수도 있을거 같은데
그다음 특정일이후 누적순매수량을 알수 있는 지표가 가능할가요?
감사합니다
2021-11-22
938
글번호 153812