커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7320
글번호 230811
답변완료
문의드립니다.
안녕하세요.
먼저 도움 주셔서 감사드립니다.
아래 수식이 개속 에러 납니다.
무엇이 잘못되엇는지 잘몰르겟습니다.
var : MACD_OSC(0) ;
Var : stok (0),stod (0);
MACD_OSC = MACD_OSC (12,26,9);
stok = StochasticsK(20,5);
stod = StochasticsD(20,5,5);
if entriestoday(date)<=0 && stime<143000 then{
if MACD_OSC>0 && CrossUp(stok,stod) && stok<30 then buy();
if MACD_OSC<0 && CrossDown(stok,stod) && stok>70 then sell();
}
SetStopEndofday; //당일 종가청산
감사합니다.
2017-04-24
201
글번호 109126
답변완료
수식 감사합니다 추가 질문있습니다.
어제 질문드린 것에 대해서 아래와 같이 수식을 작성해 주셨습니다.
Var : k(0),buycnt(0);
k = 10;
#날짜 변경
if Bdate != Bdate[1] Then{
#당일진입횟수 초기화 0
buycnt = 0;
#전일이 k%상승일이면 true 아니면 false
if DayClose(1) >= DayClose(2)*(1+k/100) Then
Condition1 = true;
Else
Condition1 = false;
}
#진입이 발생하면 1씩 증가
if CurrentContracts > CurrentContracts[1] Then
BuyCnt = BuyCnt+1;
#Condition1은 true이고 buyCnt는 0일때만 진입
if Condition1 == true and BuyCnt <= 3 then{
if(DayOpen(0) >= DayClose(1)) then
{
Buy("b1_1_2",AtLimit,d4(10,0.75),1);
}
Else if(d4(10,0.75)<=dayopen(0)&&dayopen(0)<DayClose(1)) then
{
Buy("b1_1_3",AtLimit,d4(10,0.5),1);
}
Else if(d4(10,0.5)<=dayopen(0)&&dayopen(0)<d4(10,0.75)) then
{
Buy("b1_1_4",AtLimit,d4(10,0.25),1);
}
Else if(d4(10,0)<=dayopen(0)&&dayopen(0)<d4(10,0.5)) then
{
Buy("b1_1_5",AtLimit,d4(10,0),1);
}
}
#매수후
if MarketPosition==1 Then
{
#매수가 1번 진입된 상태이면
#최근 진입가에서 2% 상승하면 청산
if MaxEntries == 1 Then
{
ExitLong("s_1",atlimit,LatestEntryPrice(0)*1.02);
}
#매수가 2번 진입된 상태이면
#최근 진입가에서 1.8% 상승하면 청산
if MaxEntries == 2 Then
{
ExitLong("s_2",atlimit,LatestEntryPrice(0)*1.018);
}
#매수가 3번 진입된 상태이면
#최근 진입가에서 1.2% 상승하면 청산
if( MaxEntries == 3 ) Then
{
ExitLong("s_3",atlimit,LatestEntryPrice(0)*1.012);
}
}
현재 추가적으로 궁금한 것은 제가
장대 양봉 ex>10% 가 발생이 후 10여일간 동안 그봉을 기준으로 매매를 하려고합니다
간략히 설명드리면 양봉 다음날을 1일로 하여 그날의 시초가에 따라서 위에 같이 4 등분선의 타점을 잡고 진입하려고합니다 어제와 같이 작성된 식을 돌려서 잘작동되어서 좋습니다
추가적으로 원하는 기능을 기준봉이후로 1~4일 동안은 중심선 위(장대양봉가격의 0.75%,0.5% )에만 매매를 하고 5~8일은 중심선 아래(0.25% 0%)에서만 진입 9~10일은 장대양봉가격의 저가(0%)에 진입만을 허용하도록 하고싶습니다.
각각 일별로 전략을 구분하고싶은데 어떻게 구현해야하는지 막막합니다.
또 추가적으로 원하는 것은 예를들어 1타점에 진입을 하고 익절을 못한상태에서 다음 타점 2타점으로 가격이 오면 자동으로 추가 매수하는 것을 구현하고싶습니다.(즉, 위에 10일 동안의 매매에 대한 제한 사항에서 장대봉 이후의 최초 진입 타점에 따라서 추가 진입 타점을 다르게 하고싶습니다.)
또한 1차 매수 후 2% 수익이면 익절 2차 매수 후 1.8%수익이면 익절 3차면 1.5% 4차면 1% 이런식으로 익절 하고
손절에 대해서는 10일 이후나 혹은 10일 안에 기준봉 보다 가격이 아래로 내려가면 손절 처리하고싶습니다
위에 기능을 구현하고싶은데 도와주시면 감사하겠습니다
추가 적으로 어제 말씀해주셨던 함수에 대해서 궁금합니다
maxentries는 포지션의 최대 진입수로 메뉴얼에 나와있는데요 예를들어
오늘 매수 진입을 5번하면 maxentries는 5가 되고
그중 3가지 매수를 청산하면 currententries는 2가 되고
maxentries는 여전히 5가되는지 아니면 이것도 2가되는지 궁금합니다
감사합니다
2017-04-25
242
글번호 109125
답변완료
수식 문의
안녕하세요?
서로 비슷한 시스템 2개의 수식을 부탁드립니다.
감사합니다.
2017-04-25
218
글번호 109124
답변완료
일봉에서 20일선 위에서만 시스템 가동
일봉에서 ~
20일선 위에서만 시스템가동
수식 부닥드려요.
2017-04-24
219
글번호 109123
답변완료
부탁드립니다.
20이평을 돌파후 바로 다음 봉이 양봉이면 매수
20이평을 붕괴후 바로 다음 봉이 음봉이면 매도 하는
시스템식 부탁드립니다..
2017-04-24
212
글번호 109122
답변완료
수식부탁드립니다
체결강도인데 키움에 정보를 찾아보니 이걸 구현하고싶습니다
체결강도는 종목별로 하루 중 매수체결, 매도체결수량을 합산하여 매수체결 나누기 매도체결 * 100 으로 계산합니다.
체결강도에서의 매수체결, 매도체결의 의미는 다음과 같습니다.
직전 체결가와 비교하여 크면 매수체결, 작으면 매도체결로 합니다.
직전체결가와 현재의 체결가가 같으면 직전의 방향성을 유지합니다.
여기서 방향성이란 직전의 체결이 매수체결이면 이번체결도 매수체결, 직전의 체결이 매도체결이면 이번체결도 매도체결로 계산을 합니다.
이 체결량들을 하루 중 종목별로 매수 매도 각각 합산하여 체결강도를 구합니다. 매수체결량이 매도체결량보다 많으면 100%가 넘는 값이 되고 반대이면 100% 미만의 값이 됩니다.
2017-04-24
288
글번호 109121
답변완료
시스템 수식 작성 부탁드립니다.
저점대비 3% 반등시 매수
고점대비 3% 하락시 매도
2017-04-24
205
글번호 109120
답변완료
수식문의
아래 var1값과, var2값을 해당 봉에 숫자(텍스트)로 나타나게 할 수 있나요?
감사합니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의
> 안녕하세요
예스스탁입니다.
Input : short(12),long(26),sig(9);
Var : MACDv(0),MACDS(0),T(0),Hv(0),Lv(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,sig);
if crossup(MACDV,MACDS) Then{
T = 1;
Hv = H;
var1 = Lv;
}
if CrossDown(MACDV,MACDS) Then{
T = -1;
Lv = L;
var2 = Hv;
}
if T == 1 Then{
if H > Hv Then
Hv = H;
}
if T == -1 then{
if L < Lv Then
Lv = L;
}
plot1(var1);
plot2(var2);
2017-04-24
211
글번호 109119
답변완료
수식검증 부탁합니다.
수식작성이 잘 안되서 부탁드립니다.
Input : Period(1);
var : kk(0,data2),aa(0,data2),diff(0,data2);
<< 중간에 수식이 있습니다.>>
input : Nd(60);
var : SSd(0),TSd(0),secondd(0),hsbb(0);
var : countd(0),cntd(0);
if Bdate != Bdate[1] Then{
var5 = TimeToMinutes(stime)*60;
var6 = FracPortion(stime/100)*100;
SSd = var5+var6;
Secondd = 0;
hsbb = 0;
}
if Bdate == Bdate[1] Then{
value3 = TimeToMinutes(stime)*60;
value4 = FracPortion(stime/100)*100;
TSd = value3+value4;
Secondd = TSd-SSd;
hsbb = ((Secondd-Secondd[1])-BarInterval)/BarInterval;
}
countd = 0;
for cntd = 0 to Nd-1{
if sdate[cntd] == sdate then
countd = countd + hsbb[cntd];
}
var7 = Highest(h,70);
var8 = Lowest(L, 70);
var9 = Lowest(L, 30);
Condition1 = countd >= 12
;
Condition2 = countd >= 12 and CountIF(var7 > var7[1], 20) < 1 and CountIF(var8 < var8[1], 20) < 1
and CountIF(hsbb >= 1 , 10) >= 1 ;
if Condition2 == True and Condition2[1] == False
Then
Sell("매도1", OnClose);
if BarsSinceEntry > 30
Then
ExitShort("정리1");
위와같이 수식을 작성 하였는데요..
위에 있는 수식은 오류없이 원하는 결과가 나옵니다.
그런데 nd(60) 부터 시작하는.. 아래의 수식에서 계속 오류가 발생하네요..
그 위의 수식은 건드리지 않고 아래 수식에 변화를 주어서 원하는 결과를 얻고 싶습니다.
잘라내기를 하면서 검증해보니까..
var : kk(0,data2),aa(0,data2),diff(0,data2); 이 라인때문에 오류가 발생합니다.
여기를 잘라내고 검증하면 원하는 결과가 그대로 나오는데 사실 아래것을 추가하기 위해서 없앨수가 없거든요..
또, data2가 들어간다고 해서 아래 수식에서 딱히 영향을 미칠만한 것도 제 눈에는 안보이네요.. 어디가 잘못된 것이지 조언 부탁합니다.
감사 합니다.
2017-04-24
221
글번호 109118