커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3216
글번호 230811
답변완료
수식 수정 좀 부탁드립니다.
첨부한 수식을 아래와 같이 수정 좀 부탁드립니다.매번 감사드립니다.
1.진입시간(17:00)이후에 최초 진입조건은?
매수-
⓵(17시 이전부터 구름대 상단위에 있고 파라볼릭매수신호상태 인 경우)
전고점 돌파양봉에 실시간 매수
⓶(17시 이전에는 구름대 안에 있거나 아래에 있던 경우
구름대 상단선 돌파하면 실시간 아닌 종가에 매수(파라볼릭 매수신호 상태이면서)
종가상 상단선 돌파하지 못하면 매수안함.
매도-
⓵(17시 이전부터 구름대 하단선 아래에 있고 파라볼릭 매도신호상태 인 경우)
전저점 이탈하는 음봉에서 실시간 매도
⓶(17시 이전에는 구름대 안에 있거나 위에 있던 경우)
구름대 하단선이탈하면 실시간 아닌 종가에 매도(파라볼릭 매도신호 상태이면서)
종가가 하단선 이탈하지 못하면 매도 안함.
2.청산조건
1)파라볼릭 반대신호에 실시간 청산.
2)구름대 상단선 돌파(매도중일때)나 하단선 이탈시(매수중일때) 실시간 청산
--- 5월7일 20시15분에 손절청산되어야? 난 다음 22:00봉 마감후 재매수?
3.두번째부터 나오는 진입조건
※매수
⓵트레일링스탑 청산 후에 바로 다음 봉 시가가 아닌 종가에 재매수
(종가가 구름대 상단선 위에 있으면서 파라볼릭도 매수 상태이어야-구름대 안에 있을 경우 재매수금지
-구름대 안에 있다가 종가가 구름대 상단선에 돌파한 봉에서 종가 매수)
⓶매수 후 파라볼릭 매도신호에 손절 청산한 경우는 파라볼릭 매수 전환 신호에 실시간 아닌 종가에 매수(구름대 상단선 위에 있는 상태에서)
-만약 파라볼릭 점을 터치만 하고 종가가 점 아래에 있으면 매수 안하고 다시 터치한 봉의 고점을 재돌파하는 봉에서 실시간 매수)
③매수 후 구름대 하단선 이탈로 실시간 손절한 경우는 종가가 구름대상단선 위로 올라 오면 종가에 재매수 (파라볼릭은 매수신호상태)
※매도
⓵트레일링 청산 후 바로 다음 봉 시가가 아닌 종가에 재매도
(종가가 구름대하단선 아래에 있으면서 파라볼릭도 매도 상태이어야-구름대 안에 있을 때는 재매도 금지,구름대 안에 있다가 종가가 구름대 하단선을 이탈한 봉에서 종가 재 매도)
⓶매도 후 파라볼릭 매수 신호에 손절 청산한 경우는 파라볼릭 매도 전환 신호에 실 시간이 아닌 봉의 종가에 매도 (구름대 하단선 아래에 있는 상태에서)
-만약 봉중간에 파라볼릭 아래점만 터치하고 종가에는 점위에 있으면 매도 안하고 , 다시 터치했던 전 저점을 이탈하는 봉에서 실시간 매도.
③매도후 구름대 상단선 돌파로 실시간 청산한 경우는 종가가 다시 하단선 아래로 오면 종가에 재매도(파라볼릭은 매도 신호 상태)
input : StartTime(170000),EndTime(55200);
var : Tcond(False);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
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;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
Input : AF(0.02), AFMAX(0.2);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0),Sarv(0);
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 Low < 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 High > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = High;
}
}
Sarv = 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;
}
}
Sarv = 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;
Sarv = SAR_Value;
}
}
if Direction == -1 then
{
if Close > Close[1] then
{
Direction = 1;
SAR_Value = LowValue;
Sarv = SAR_Value;
}
}
}
LowValue = min(Low, LowValue);
HighValue = max(High, HighValue);
}
}
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
value1 = max(선행스팬1,선행스팬2);
value2 = min(선행스팬1,선행스팬2);
//
#
if Sarv > 0 Then
{
#다음봉 파라볼릭을 미리 계산
var1 = Sarv+(AF_value)*(EP-SAR_Value);
if MarketPosition <= 0 then
Buy("b",AtStop,max(var1,value1));
if MarketPosition >= 0 then
Sell("s",AtStop,min(var1,Value2));
if MarketPosition == 1 and Direction == 1 and C > value1 Then
ExitLong("bx",AtStop,var1);
if MarketPosition == -1 and Direction == -1 and C < Value2 Then
ExitShort("sx",AtStop,var1);
}
2024-05-09
876
글번호 179326
답변완료
안녕하세요
1. 어떤 시스템들이 간혹
당일 첫봉에서 조건을 만족하지 않아도 신호가 발생합니다...
대표적으로 피봇에서 저항2를 뚫으면 매수 진입한다고 가정하면
if crossup(c, 저항2) then buy("추b");
이런식으로 시스템식을 쓰면
가끔 당일첫봉에서 그냥 저항2를 돌파하지 않아도 매수 신호가 떠있습니다...
갭이 좀 뜬날 이런거 같기도 하고요
이경우엔 진입시간을 추가 설정하여 8시 46분이후에 진입해라
이런식으로 하면 해결이 되긴하는데
근본적이진 않은거 같아서요...
해결법을 부탁드립니다.
2. 또한 저항2를 닿자마자라는 수식으로 저걸 바꾼다면
buy("추b",atstop, 저항2); 이런식으로 쓰는데
이게 또 첫봉에서 매수신호가 나버린다거나 이런식이 될때가 많네요
닿자마자 라는 느낌으로 올바르게 바꿔주시면 감사하겠습니다 ^^
2024-05-09
935
글번호 179320
답변완료
진입 일봉 질문입니다
안녕하세요
일봉 기준이고 진입일의 저가를 이탈시 청산하는 규칙을 문의드립니다
감사합니다
2024-05-09
718
글번호 179319
회원 님에 의해서 삭제되었습니다.
2024-05-09
218
글번호 179318
아로 님에 의해서 삭제되었습니다.
2024-05-09
24
글번호 179317
답변완료
개장시 매수(재문의)
안녕하세요?
국내주식으로 9시가 시초가인데 모두 1분으로 신호가 발생합니다
정상인가요?
input : StartTime(90000),EndTime(90001);
If MarketPosition == 0 and
((NextBarSdate != sDate and NextBarStime >= StartTime) or
(NextBarSdate == sDate and NextBarStime >= StartTime and sTime < StartTime)) Then
Buy("b",AtMarket);
항상 감사합니다~~^^
2024-05-09
671
글번호 179316
답변완료
도움 부탁드립니다
안녕하세요
이평과 전환선을 한번에 설치할 수 있는 지표 부탁드립니다.
이평 수치와 전환선 수치는 변수 부탁드립니다
2024-05-09
785
글번호 179314
답변완료
문의드립니다
의도한데로 신호가발생치않아 재질문드립니다
아래수식에서 선그래프의색상이
빨간색에서초록색으로변하면 매도 신호가발생하지않코있습니다 왜그런지궁금합니다
도움주셔서 감사합니다
input : inp_Sensitivity(0.01),inp_HiLo_Lookback(5),
inp_Slow_MA_Period(26),inp_Slow_MA_Method("EMA"),
inp_Fast_MA_Period(12),inp_Fast_MA_Method("EMA"),
inp_Signal_MA_Period(9),inp_Signal_MA_Method("EMA");
var : inp_Source(0),Hbarssince(-1),Lbarssince(-1),HiLo_Range(0),MA_Slow_Deviation(0);
var : MA_Fast(0),MA_Slow(0),MA_Slow_ATR(0);
Var : SumSqrt(0), Avgv(0), cnt(0),Histogrm(0),Main_Line(0),Signal_Line(0),Histogrm_Color(0);
inp_Source = close;
if inp_Fast_MA_Method == "SMA" Then
MA_Fast = ma(inp_Source, inp_Fast_MA_Period);
Else
MA_Fast = ema(inp_Source, inp_Fast_MA_Period);
if High == highest(H,inp_HiLo_Lookback) Then
Hbarssince = 0;
Else
{
if Hbarssince >= 0 Then
Hbarssince = Hbarssince+1;
}
if low == Lowest(L,inp_HiLo_Lookback) Then
Lbarssince = 0;
Else
{
if Lbarssince >= 0 Then
Lbarssince = Lbarssince+1;
}
HiLo_Range = abs(Hbarssince-Lbarssince) * PriceScale * 100000;
if inp_Slow_MA_Method == "SMA" Then
MA_Slow = ma(inp_Source, inp_Slow_MA_Period);
Else
MA_Slow = ema(inp_Source, inp_Slow_MA_Period);
If inp_Slow_MA_Period != 0 Then
{
Avgv = MA_Slow;
SumSqrt = 0;
For cnt = 0 To inp_Slow_MA_Period - 1 Begin
SumSqrt = SumSqrt + (C[cnt] - Avgv) * (C[cnt] - Avgv);
End;
MA_Slow_Deviation = SquareRoot(SumSqrt / inp_Slow_MA_Period);
}
Else
MA_Slow_Deviation = 0;
MA_Slow_ATR = atr(inp_Slow_MA_Period);
Histogrm = MA_Slow_Deviation - MA_Slow_ATR;
Main_Line = Histogrm;
if inp_Signal_MA_Method == "SMA" Then
Signal_Line = ma(inp_Source, inp_Signal_MA_Period);
Else
Signal_Line = ema(inp_Source, inp_Signal_MA_Period);
Histogrm_Color = green;
if MA_Fast >= MA_Fast[1] then
{
if HiLo_Range >= inp_Sensitivity then
Histogrm_Color = Red;
else
Histogrm_Color = yellow;
}
else
{
if HiLo_Range >= inp_Sensitivity Then
Histogrm_Color = Blue;
else
Histogrm_Color = White;
}
if (Histogrm_Color == green and Histogrm_Color[1] == Red) Then
Sell();
2024-05-09
700
글번호 179309
답변완료
프로그램 순매수가 1원 이상인 종목 검색
프로그램 순매수가 1원 이상인 종목을 모두 검색하는 수식을 알고 싶습니다.
2024-05-09
1073
글번호 179304