커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7726
글번호 230811
회원 님에 의해서 삭제되었습니다.
2011-05-03
16
글번호 38263
답변완료
다시 질문드립니다.
아래 질문에 대한 재질문입니다.
1포인트 이상 수익후 ATR을 이용한 추적청산을 알고 싶습니다.
안녕하세요
예스스탁입니다.
1포인트 이상 수익후 0.5 수익감소하면 청산하는 식입니다.
식 작성에 참고하시기 바랍니다.
if marketposition() == 1 Then{
if highest(H,BarsSinceEntry) >= EntryPrice+1 Then
exitlong("ChEX",atstop,highest(H,BarsSinceEntry)-0.5);
}
if marketposition() == -1 Then{
if Lowest(L,BarsSinceEntry) <= EntryPrice-1 Then
exitshort("ChSX",atstop,Lowest(L,BarsSinceEntry)+0.5);
}
즐거운 하루되세요
> immidas 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 친절한 답변에 항상 감사드립니다.
일정수익이상 났을경우에 추적청산을 사용하고 싶은데
어떻게 해야할지 몰라서 질문드립니다.
만약 진입후 1포인트 이상 수익이 났을 경우 그 시점부터 추적청산을
하려면 어떻게 해야 하나요??
2011-05-03
584
글번호 38255
답변완료
타종목 macd
1.타종목 macd를 적용해서 오실레이터가 3봉연속 상승시 매수 하는식 부탁드립니다.
2.매수후 5분뒤 최대수익대비 50% 이익보존 5분마다 보존율을 10% 씩 높이식식 부탁드립니다.
3.매수후 수익중이였다가 2틱으로 내려왔을경우 매도하는식 부탁드립니다.
4.매수후 10% 이익발생시 수량 50% 청산 식 부탁드립니다.
2011-05-03
629
글번호 38251
답변완료
Mov Avg Crossover시스템식 문의
안녕하세요.
Q&A에서 많은 도움을 얻고 있는 일인입니다^^.
항상 감사합니다.
GAMBLER님이 소개해 주신 "Mov Avg Crossover"의 수식중에 이해안되는 부분이 있어서 문의드립니다.
------------------------------------------------------------------------------
Input: FastLen(10), SlowLen(500), ChLen(30), TrailBar(160), ReBars(2), stopPer(1.0);
Vars: FastMA(0), SlowMA(0),LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999), ReCnt(0), MP(0);
FastMA = ma(C , FastLen );
SlowMA = ma(C , SlowLen );
If CrossUp(FastMA , SlowMA) and index > 1 then {
LEntryPrice = Highest(H , TrailBar )[1];
LCount = index;
}
If MarketPosition <> 1 AND index < LCount + ChLen then
Buy ("Cross Over Buy", atstop,LEntryPrice);
If CrossDown(FastMA , SlowMA) and index > 1 then {
SEntryPrice = Lowest(L , TrailBar )[1];
SCount = index;
}
If MarketPosition <> -1 AND index < SCount + ChLen then
Sell ("Cross Under Sell", atstop,SEntryPrice );
If MarketPosition == 1 then {
LCount = -999;
ExitLong ("LongTStop", atstop, Lowest(L , TrailBar ));
}
If MarketPosition == -1 then {
SCount = -999;
ExitShort ("ShortTStop", atstop, Highest(H , TrailBar ));
}
// 재진입
/*MP = MarketPosition;
If MP == 0 AND MP[1] == -1 then
ReCnt = 1;
If MP == 0 AND MP[1] == 1 then
ReCnt = 1;
If MarketPosition == 0 AND MarketPosition(1) == 1 AND ReCnt < ReBars then {
ReCnt = ReCnt + 1;
Buy ("Long ReEntry", atstop,Highest(H , TrailBar ) ) ;
}
If MarketPosition == 0 AND MarketPosition(1) == -1 AND ReCnt < ReBars then {
ReCnt = ReCnt + 1;
Sell ("Short ReEntry", atstop,Lowest(L , TrailBar ) ) ;
}*/
SetStopLoss(stopPer, PercentStop);
SetStopEndofday(150000);
---------------------------------------------------------------------------------
첫번째 질문은, 위의 수식중에서 아래 이 두가지가 하는 역할이 뭔지 궁금합니다.
LCount = -999;
SCount = -999;
두번째 질문은, 재진입식에 2번 재진입후 3번째부터는 재진입을 금지하는 식을 알고싶습니다.
세번째는, setstoploss와 setStopProfitTarget를 조건에 맞추어 몇가지로 하고 싶은데, exitlong,exitshort과 atstop을 이용해서 만들려면 어떻게 해야 하나요?
미리 감사드립니다.
2011-05-03
643
글번호 38250
답변완료
문의드려요 ~
안녕하세여 ~
항상수고하십니다.
이 시스템지표를 당일로만 나오게끔 부탁드립니다 !
연결해서말고 항상 당일로
수정부탁드립니다. 수고하세여
input:단위호가(14),
단위호가2(14),
타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4)
분봉구분(60), //타주기가 분봉일 때
시작일(20090101);
var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4),
벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0);
array:고[10](0),저[10](0),고2[10](0),저2[10](0);
If 단위호가 <= 단위호가2 Then
{
#==========================================#
# 초기 처리
#==========================================#
If Index == 0 || Date <= 시작일 Then
{
벽돌크기 = PriceScale * 단위호가;
벽돌크기2 = PriceScale * 단위호가2;
고[0] = C;
저[0] = C;
고2[0] = C;
저2[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
Else If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
}
If 저[0] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/벽돌크기,9));
For j = 8 DownTo 0
{
저[j+1] = 저[j];
}
고[0] = 저[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
}
If 고[0] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9));
For j = 8 DownTo 0
{
고[j+1] = 고[j];
}
저[0] = 고[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
}
#==========================================#
# 렌코2 계산
#==========================================#
If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) ||
(타주기구분 == 일봉 && Date[1] < Date) ||
(타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) ||
(타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then
{
If 방향2 == 0 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
Else If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 하락 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
}
If 저2[0] + 2*벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9));
For j = 8 DownTo 0
{
저2[j+1] = 저2[j];
}
고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 상승 Then
{
If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
}
If 고2[0] - 2*벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9));
For j = 8 DownTo 0
{
고2[j+1] = 고2[j];
}
저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
}
}
#==========================================#
# 시스템식
#==========================================#
If 방향 == 상승 && 방향2 == 상승 Then Buy();
If 방향 == 하락 && 방향2 == 하락 Then Sell();
If 방향 != 방향2 Then
{
ExitLong();
ExitShort();
}
2011-05-03
660
글번호 38248
답변완료
전일의 봉 갯수
첨부 파일은 전일까지의 총 봉 갯수인 듯합니다
제가 구하고자 하는 것은 2006/03/09 일에만 발생한 봉 갯수 입니다.
date=date[1] 을 넣어봤는데 날짜가 바뀌고 해당 조건이 적용되어
원하는 결과가 나오지 않습니다.
금일이 5월3일이면
5월2일에 발생한 봉 갯수.. 5월1일에 발생한 봉갯수를 알수 있는 방법을 알려 주십시오.
감사합니다.
//-----------------------------------
안녕하세요
예스스탁입니다.
해당식 전일 봉수를 정확히 가져오는 식입니다.
첨부된 파일과 같이 만기일등 평일과 봉수가 다른날의
다음날도 전일의 봉갯수를 정확히 계산됩니다.
즐거운 하루되세요
> 임다 님이 쓴 글입니다.
> 제목 : 전일 봉 갯수
> var1 = dayindex+1;
if date != date[1] then
var2 = var1[1];
전일봉 갯수 질의 시 알려주신 수식입니다.
2006/03/09 의 경우 종료시간이 평일과 달라 봉의 갯수가 다른데
적용이 되지 않습니다..
어찌 해야 할런지요..
2011-05-03
721
글번호 38247
라이벌진 님에 의해서 삭제되었습니다.
2011-05-03
15
글번호 38246
답변완료
문의드립니다.
친절한 답변에 항상 감사드립니다.
일정수익이상 났을경우에 추적청산을 사용하고 싶은데
어떻게 해야할지 몰라서 질문드립니다.
만약 진입후 1포인트 이상 수익이 났을 경우 그 시점부터 추적청산을
하려면 어떻게 해야 하나요??
2011-05-03
719
글번호 38245
답변완료
타종목 주문 가능한가요?
동양종금의 고수는 타종목 주문이 가능하던데.
예스스탁도 타종목 주문 가능한가요?
예> 선물 시스템식 => 옵션 콜 270.50 종목 주문.
옵션 콜 280.00 종목 시스템식 ==> 옵션 풋 255.50 종목 주문.
2011-05-03
733
글번호 38244