커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1515
글번호 230811
답변완료
안녕하세요
안녕하세요
ㄱ,
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossUP(value1, value2) Then
{
Sell();
}
1,
#0.5 수익발생하면 청산
SetStopProfittarget(0.5,PointStop);
2,
#0.85 수익발생하면 청산
SetStopProfittarget(0.85,PointStop);
1,의 #0.5 수익발생하면 청산과
2,의 #0.85 수익발생하면 청산을
( 1 or 2) 의 수식으로 부탁드립니다
ㄴ,
양봉 3개면 매수
음봉 3개면 매도
if CountIf(C>O,3) == 3 Then
Buy();
if CountIf(C<O,3) == 3 Then
Sell();
위 수식
양봉선 3개면 매수식에서
and 1봉 보다 3봉이 0.2 P가 크면 매수식으로
음봉선 3개면 매수식에서
and 1봉 보다 3봉이 0.2 P가 작으면 매도식으로
수정 부탁드립니다
감사합니다
2023-08-10
1238
글번호 171376
답변완료
문의드립니다.
안녕하세요 아래 수식을 전략 메인봉은 10분봉으로 Data2를 일봉으로 적용해서 진행하고
있습니다.
여기서 항상 Data2를 차트에서 적용해서 하다보니 일부 오류가 있기도한데
질문은 혹시 메인 분봉(5~60분)에서 전략 적용시 Data2를 따로 불러오지 않고 수식으로
일봉을 적용하는 방법이 있을까요??/
input : pp(1);
Arrays : fast[3](true);
var: body1d(0),range1d(0),body5d(0),range5d(0);
body1d = data2(abs(open[1] -close[1]));
fast[1]= ( body5d < 0.1 * (data2(high[5])-data2(low[1]))) ;
fast[2] = ( body5d < 0.25 * (data2(high[5])-data2(low[1]))) ;
fast[3] = ( body5d < 0.5 * (data2(high[5])-data2(low[1]))) ;
2023-08-10
833
글번호 171373
고성 님에 의해서 삭제되었습니다.
2023-08-10
30
글번호 171372
답변완료
수식문의
수고하십니다.
아래수식으로 30분기준,검색기간 500봉으로 검색하고 있습니다.
검색이 된 후 기존 검색된 종목은 유지되고 새로운 종목이 추가로 검색되게 할 수
있도록 수정 부탁드립니다
Input : DayPeriod(20),P1(60),P2(120),NC(12), Mult(1.01),SV(100000);
Var : T(0),S(0),Cnt(0),Sum(0),Dayma(0);
Sum = 0;
For cnt = 0 to Dayperiod-1
{
Sum = Sum + DayClose(Cnt);
}
Dayma = Sum/DayPeriod;
Var1 = Ma(C,P1);
Var2 = Ma(C,P2);
if CrossDown(C,Var1) Then
{
T = 1;
if Var1 > Var2 and T[1] == -1 and Index <= S+NC and C >= DayClose(1)*Mult and
C > Dayma and C>O and DayVolume(0)>SV Then
Find(1);
}
if CrossDown(C,Var1) Then
{
T = -1;
S = Index;
}
if T == -1 and C < Var2 Then
T = -2;
2023-08-10
1192
글번호 171371
답변완료
문의
답변 수식으로 시뮬레이션 해보았습니다.
연속봉 1만 결과가 나오고
나머지 연속봉2 이상에서는 결과가 나오지 않습니다.
최초 요청수식은 각각의 연속봉에서 결과가 나온 수식입니다.
살펴주십시요.
*****************************************************************************
안녕하세요
예스스탁입니다.
input : ntime(084500);
input: 연속봉(2),연속small(0.00),연속large(1.00);
var : Tcond(False),ii(0);
if data2(Bdate != Bdate[1]) Then
Tcond = False;
if Data2((sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime)) Then
Tcond = true;
ii = 0;
if tcond == true Then
{
ii = ii +1;
if ii >= 연속봉 and data2(accumN(iff(C>O,1,0),연속봉) == 연속봉 and ExitDate(1) != sdate and AccumN(abs(C-O), 연속봉) >= 연속small and AccumN(abs(C-O), 연속봉) < 연속large) then
buy();
}
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 문의
> 답변 고맙습니다.
3분봉
입력시간 084500
연속봉 2개 조건으로 시뮬레이션을 해보니
전일 종가에 음봉이 있으면 그것을 포함하다 보니
당일 첫봉에 진입하는 경우가 발생합니다.
금일 발생봉 조건과 시간입력한 이후 봉부터 연속봉을 계산하는 수식이오니
수정 부탁드립니다.
항상 고맙습니다.
*********************************************************************************
안녕하세요
예스스탁입니다.
input : ntime(084800);
input: 연속봉(1),연속small(0.52),연속large(0.56);
var : Tcond(False);
if data2(Bdate != Bdate[1]) Then
Tcond = False;
if Data2((sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime)) Then
Tcond = true;
if Tcond == true and data2(accumN(iff(C>O,1,0),연속봉) == 연속봉 and ExitDate(1) != sdate and AccumN(abs(C-O), 연속봉) >= 연속small and AccumN(abs(C-O), 연속봉) < 연속large) then
buy();
즐거운 하루되세요
> 좌오비우오비 님이 쓴 글입니다.
> 제목 : 문의
> 아래 수식에
입력시간부터 봉을 계산하는 수식을 추가하여 주십시요.
*****************************************************************************
input : ntime(084800);
input: 연속봉(1),연속small(0.52),연속large(0.56);
if data2(accumN(iff(C>O,1,0),연속봉) == 연속봉 and ExitDate(1) != sdate and AccumN(abs(C-O), 연속봉) >= 연속small and AccumN(abs(C-O), 연속봉) < 연속large) then
buy();
2023-08-10
794
글번호 171370
답변완료
문의드립니다
당일부터 뒤로 20일전봉에 종가에 십자선을 긋고싶은데 가능할까요?
2023-08-10
1010
글번호 171369
답변완료
지표식 부탁합니다
안녕하십니까
항상 도움을 받아 감사드립니다
아래식을 이용하여 선이 꺾여 내려온 이후 첫번째 꺾여 올라간 자리에 노랑점이 찍히도록 하고 싶은데 제 능력으로는 어렵네요 도와주세요
If O>max(O[1],C[1]) && C>max(O[1],C[1]) && C>O Then
var1 = O;
plot1(var1, "B", Black);
If var1[2]>var1[1] && var1[1]<var1 Then
plot2(L, "Y", Yellow);
첨부한 그림(SK이노베이션)에서 보면 5월 9일과 7월 4일에 노랑점이 찍혔습니다
그런데 5월 25일과 7월 18일에도 노랑점이 찍히도록 식을 변경해 주시기 바랍니다
2023-08-09
1314
글번호 171368
답변완료
시간 관련 지표 문의 드립니다.
안녕하세요~
거래시간 변경에 관계없이 당일 9시 기준으로 매매하고자 지표를 만들어보고 있습니다.
첨부된 이미지에서 당일 고점을 형성한 시간을 나타내는 THHtime의 시간이
120000이 아니라 115956 이런 식으로 봉의 종가 시간 단위로 정확하게 나오지 않습니다.
원인을 알 수 없어서 제가 사용한 내용을 검토 및 수정 부탁드립니다.
항상 감사합니다!
Var : PredayDate(0), TodayOpen(0),TodayHigh(0),TodayLow(0),THHtime(0),TLLtime(0);
// 어제 종가의 날짜
if dayindex==0 Then PredayDate=sdate[1];
// 당일 초기화
if date<>PredayDate && sTime==090000 then {
TodayOpen = O; // 당일 9시 시초가
TodayHigh = H; // 고가
TodayLow = L; // 저가
THHtime = time; // 고점이 형성된 시간
TLLtime = time; // 저점이 형성된 시간
}
// 당일 고저점 체크 시작
if date<>PredayDate && sTime>=090000 && H>TodayHigh then {
TodayHigh = H; // 당일 고가
THHtime = time; // 당일 고가 시간
}
if date<>PredayDate && sTime>=090000 && L<TodayLow then {
TodayLow = L;
TLLtime = time;
}
Plot1(TodayOpen, "TodayOpen");
Plot2(TodayHigh, "TodayHigh");
Plot3(THHtime, "THHtime");
Plot4(TodayLow, "TodayLow");
Plot5(TLLtime, "TLLtime");
2023-08-09
1316
글번호 171367
답변완료
시가에 청산이 안됩니다
다음과 같이 변동성돌파 전략을 작성해서 장중실행 했습니다. 매수는 잘 되는데 익일시가 AtMarket 매도 주문이 안나갑니다. 차트는 1틱 봉으로 설정해뒀습니다.
이유가 뭘까요.. 도와주세요ㅜㅜ
Input: Range(0.5);
Value1 = DayHigh(1) - DayLow(1); // 변동폭
Value2 = DayOpen(0) + Value1*Range; // 상단 돌파
Value3 = DayOpen(0) - Value1*Range; // 하단 돌파
Value2 = Ceiling(Value2/PriceScale)*PriceScale;
if High > Value2 && MarketPosition == 0 Then{
Buy("Buy", AtStop, Value2);
}
IF NextBarSdate != sDate Then{
ExitLong("Exit", AtMarket);
}
2023-08-09
1044
글번호 171364