커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4503
글번호 230811
답변완료
문의 드립니다.
20이평선 기울기가 상향이면서 20이평 위로 돌파 하면 매수 이탈 시 매도 청산
반대로 20이평선 기울기가 하향이면서 20이평 아래로 돌파 하면 매도 위로 돌파 시 매수 청산
부탁드립니다.
20이평선 기울기와 같은 방향매매를 원합니다.
2019-03-14
239
글번호 127052
답변완료
일중 전고점이 나온 시간을 파악하는 수식 문의드립니다.
수고하십니다.
예를 들어 12:00현재 11:00가 일중 고점이면 11:00시라는 변수를 저장하고
12:30현재 일중 고점이 12:20이면 12:00시라는 변수를 저장하고 싶습니다.
현재 시간 12:00 12:10 12:20 12:30
전고점 시간 11:00 11:00 12:20 12:20
이런식으로 일중 고점시간을 배열에 저장하고싶습니다.
또한 일중 저점시간과 현재시간사이의 고가와 나오는 시간도 변수에 저장하고 싶습니다.
2019-03-14
255
글번호 127050
요타 님에 의해서 삭제되었습니다.
2019-03-14
0
글번호 127049
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1.
최근 n거래(외부변수)의 draw down 수식 만들 수 있나요?(5이면 -1,1,-1,-1,-1 , draw down은 3)
혹시 가능하다면 시스템 수식에서 쓸 수 있도록 5,20이평 돌파 수식 예제로 부탁드립니다.
2019-03-14
246
글번호 127048
답변완료
시스템
안녕하세요 주말 감사인사 올려요
상관성 시스템 문의 드려요
가령 data2 와 data3의 상관성을 100% 로 잡을때
상관성이 (100 - n)% 아래로 벌어지면 data1 매수
질문 2
n봉 이내의 고점 돌파시 매수 라고할때 의 함수식
이전고점 돌파시 매수 라고할때의 함수식
부탁드립니다
감사합니다
2019-03-14
242
글번호 127047
답변완료
보완수정 부탁드립니다.
안녕하세요?
아래의 수식에서 진입횟수가 똑바로 작동이 안됩니다.
하루 3번하라고 변수에 넣으면 하루3회 매매를 해야하는데,
3번진입하라고하면 2번만 진입하는 형태로 돌아갑니다.
수정부탁드리겠습니다.
감사합니다.
input : n1(1),n2(2), 익절틱수(10),손절틱수(10),당일진입횟수(3);
var : T1(0),entry(0);
if bdate != bdate[1] Then
T1 = TotalTrades[1];
if MarketPosition == 0 Then
entry = TotalTrades-t1;
Else
entry = TotalTrades-t1+1;
if MarketPosition == 0 then
{
if (C > O and C == C[n1] and C[n1] < O[n1]) or
(C > O and C == C[n2] and C[n2] < O[n2]) Then
{
if entry < 당일진입횟수 Then
buy();
Else
ExitShort();
}
if (C < O and C == C[n1] and C[n1] > O[n1]) or
(C < O and C == C[n2] and C[n2] > O[n2]) Then
{
if entry < 당일진입횟수 Then
sell();
Else
ExitLong();
}
}
SetStopProfittarget(익절틱수*PriceScale,PointStop);
SetStopLoss(손절틱수*PriceScale,PointStop);
2019-03-13
244
글번호 127046
답변완료
문의 드립니다.
MDD 가 -300 이하일때 매수
MDD 가 -100 이상일때 매도
이것을 수식으로 구현하고 싶은데
MaxIDDrawDown 함수를 사용하더라도
계속 제일 마이너스가 큰 값만 사용을 하더라고요...
즉 한번 MDD 가 -300 이하를 기록하면
계속 매수만 한다는 것이죠.
그 이후에 MDD 가 -100 이상으로 회복을 하더라도
-300 이하만 참조한다는 겁니다.
무슨 좋은 방법이 없을까요?
저게 만약 불가능하다면 다른 방법으로
NetProfit 이라는 함수를 사용해서,
손익이 제일 높았던 시점에서 -300 이하로 마이너스가 된 경우 매수.
그 이후 시점부터 손익이 다시 +300 이상으로 회복한 경우 매도.
다시 그 이후의 매매결과값만을 가져와서 손익이 제일 높았던 시점에서 -300 이하로 마이너스가 된 경우 매수.
그 이후 시점부터 손익이 다시 +300 이상으로 회복한 경우 매도.
이것을 수식으로 구현이 가능할까요?
2019-03-13
270
글번호 127044
답변완료
수식부탁드립니다
#,61673 답변수식에서
시스템식 도움부탁드립니다
###,보내주신 수식을 적용해보니 다이버젼스발생과 무관한 자리에서도 신호가 뜨거나
발생 할자리에서 신호가 없습니다,고점저점 기준을 골드나 데드로 하듯이
추세선이 완성되고 난 이후 두번째양봉 또는 지표의 MACD가 첫 골드크로스시 매수,
추세선이 완성되고 난 이후 두번째 음봉 또는 지표의 MACD가 첫 데드크로스시 매도신호로
부탁드립니다,
#,고맙습니다.
2019-03-14
254
글번호 127043
답변완료
시스템 점검 바랍니다
렌꼬 시스템인데요
시간제한과 목표이익및 기타 이익표시가 전혀 반영이 안되고 있습니다
잘못된곳 수정 부탁 드립니다 감사 합니다.
input : vSSTIME(090000), vEETIME(150000);
Vars : TCOND(False);
If vSSTIME < vEETIME Then
Begin
IF vSSTIME <= TIME And TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End
Else
Begin
IF vSSTIME <= TIME Or TIME < vEETIME Then
TCOND = True;
Else
TCOND = False;
End;
input:단위호가(18);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(100),하락(-100),저항선(0),지지선(0);
array:고[20](0),저[20](0),
고Bar[20](0),저Bar[20](0); // Index 개념이 아닌 벽돌개수.지지,저항선 계산시 사용
If TCOND Then
If Index == 0 || Date <= 2016 Then
{
벽돌크기 = PriceScale * 단위호가;
고[1] = C;
고Bar[1] = 0;
저[1] = C;
저Bar[1] = 0;
}
If 방향 == 0 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
Else If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[1] - 벽돌크기 >= C Then
{
벽돌개수 = Int((저[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[1] = 저[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
}
If 저[1] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int((C - 저[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 저[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[1] + 벽돌크기 <= C Then
{
벽돌개수 = Int((C - 고[1])/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[1] = 고[1] + (벽돌크기 * 벽돌개수);
고Bar[1] = 0;
}
If 고[1] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int((고[1] - C)/벽돌크기);
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 고[1] - (벽돌크기 * 벽돌개수);
저Bar[1] = 0;
방향 = 하락;
}
}
If TCOND Then
Begin
if 방향 == 상승 then Buy("돌파");
if 방향 == 하락 and 저[0]<저항선 then ExitLong("청산");
if 방향 == 하락 then Sell("돌파");
if 방향 == 상승 and 고[0]>지지선 then ExitShort("청산");
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyProfitTargetPercent(0.3);
////////////////////////////////////////////////////////////////////////////////////////
Inputs: MyPercentTrailingBefore(0.2), MyPercentTrailingAfter(10);
End;
SetStopEndofday(0);
2019-03-13
257
글번호 127042