커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3227
글번호 230811
답변완료
수정 부탁드립니다.
안녕하세요?
아래의 수식 수정부탁드립니다.
현재 매수기준선 매도기준선 이부분은 외부변수로 지정된곳만 기준선이 적용되고있습니다.
이것을 뒷자리만 바꾸면 1포인트단위로 모든부분이 기준선이 되었으면합니다.
예로, .05로 바꾸면 401.05 / 402.05 / 403.05 / 404.05 .......이런식으로
1번과 2번 시스템 모두 수정부탁드립니다.
감사합니다.
1
input : 매수기준선(410),매도기준선(400),양봉(5),음봉(5);
input : 익절틱수(50),손절틱수(50),진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades == TotalTrades[1]) Then
entry = entry+1;
var1 = (C+O)/2;
if entry < 진입횟수 Then
{
if C == O+양봉*PriceScale and CrossUp(var1,매수기준선) Then
Buy();
if C == O-음봉*PriceScale and CrossDown(var1,매도기준선) Then
Sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2
input : 매수기준선(410),매도기준선(400);
input : 익절틱수(50),손절틱수(50),진입횟수(3);
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades == TotalTrades[1]) Then
entry = entry+1;
if entry < 진입횟수 Then
{
if C == 매수기준선 and C > O Then
Buy();
if C == 매도기준선 and C < O Then
Sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
2021-09-24
739
글번호 152414
답변완료
진입, 청산 명령 관련 문의드립니다.
buy = 매수
sell = 매도
ExitLong = 매수 청산
ExitShort = 매도 청산
인데요 몇가지 궁금해서 문의드립니다.
질문 1.
buy 신호를 통해 매수 1계약 보유 중 증권사 hts를 통해 청산을 해서 포지션이 없는 상태에서 Exitlong 신호가 발생 시 기존 매수 포지션이 없으므로 무시되는 것인지요? 아니면
매도 포지션을 갖게 되는지요?
질문 2. 질문1에서 만약 무시된다고 가정하면 ExitLong 신호가 나와도 매수 계약이 없으므로 매수청산이 되지 않게되고, htd에서 청산 했으므로 매수 포지션도 없는 상황에서
신규 buy 신호가 나오면 기존 포지션이 없으므로 매수 진입을 하게 되는 것인가요? 기존 시스템에서는 기존 매수계약에 대한 청산이 이루어지지 않은 것으로 판단하여 신규진입이 안되는 것인가요?(설정에서 중복진입은 허용하지 않는다는 가정입니다.)
질문3. marketposition 함수 질문 드립니다.
marketposion = 1 은 매수 포지션인데 계약수도 의미하는 것인가요?
예를 들면 marketposiotion = 2 는 매수2계약, marketposirion = -2 는 매도 2계약으로
인식하는지요?
질문4. marketposition 함수는 종목을 구분하는지요?
예를들어, 2개의 차트에서 각각 2개의 종목(선물1, 옵션1)을 매매 한다고 할때
제 계좌에서 선물 매수 1계약 상태에서, 옵션 차트에서 marketposition = 1 이면 매수 청산하는 신호 발생 시 옵션은 매수 포지션이 없으므로 청산신호가 무시되는지,
아니면 선물 매수가 1계약 보유 중이므로 선물 매수가 청산되는 것인지요?
2021-09-23
1007
글번호 152413
답변완료
시스템식 문의드립니다
1) 매수진입 조건
 - 매수가능시간 : 장시작시간 - 12시00분
 - 일봉기준 현재가가 60이평보다 크거나같고 120이평보다 크거나 같을것
 - 일봉기준 macd(200,300,9) 가 signal선 이상
 - 5분봉기준 Binary Wave(20,12,5,3) 기준선 70이상
 - 5분봉기준 Stochastics Slow(12,26,5) %k 가 %d를 상향돌파
2) 익절 조건
- 수익율이 +5% 이상 익절
 - 수익율이 +3%이상 상승후 +5%에 도달하지 못하고 하락시 +3%수익률보전
  - 15시 18분 잔고종목 일괄매도
3) 손절 조건
 - 3분봉기준 60이평선을 이탈시 매도
 - 3분봉기준 현재가와 60이평선이 10%이상 차이날경우 20이평선 이탈시 매도
2021-09-23
1197
글번호 152412
답변완료
수정 부탁드립니다
아래 "재매수"가 2회만 실행될 수 있도록 수정 부탁드립니다
(var1=3ma, var2=7ma, var3=15ma, var4=30ma, var5=55ma)
IF MarketPosition == 0
AND c >= o
AND var2 < var3 AND var3>var5 and VAR2 > VAR5
and Var3>Var2
And ((CrossUp(C,Var3)) OR (Open >= Var3) OR ((Open >= Var3)))
Then
buy("재매수");
2021-09-23
819
글번호 152400
답변완료
문의합니다
수고 많으십니다
60 이평선 위에서 일목구름층상단 양봉돌파시 매수시그널
60 이평선 아래에서 일목구름층하단 음봉하락돌파시 매도시그널
부탁드립니다
각 수치는 수정할수 있도록 부탁드립니다
감사합니다~
2021-09-23
949
글번호 152395
답변완료
문의드립니다
시스템식 문의드립니다
500틱 900틱 같은 긴 틱봉에서
양봉음봉 조건 만족후
매수매도 진입 이후에
봉 완성이 안되어도
30초 ,60초 경과되었다면
강제청산하는 식을 만들고싶습니다
2021-09-24
720
글번호 152392
didhddk 님에 의해서 삭제되었습니다.
2021-09-23
657
글번호 152391
답변완료
행복; 지표식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
지표식 관련입니다
< 아래 >와 같이 수식을 작성하였습니다
길게 작성을 하였는데 for 문을 사용하여 짧게 작성할 수 있는지요?
===============< 아래 시작 >==============================
Var : tz0(0), tz1(0), tz2(0), tz3(0), tz4(0), tz5(0), tz6(0), tz7(0), tz8(0)
, tz9(0), tz10(0), tz11(0), tz12(0), tz13(0), tz14(0), tz15(0);
If sDate > 20210901 Then{
If DayIndex == 0 Then{
tz0 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz0,2,2);
}
If DayIndex == 1 Then{
tz1 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz1,2,2);
Text_Delete(tz0);
}
If DayIndex == 2 Then{
tz2 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz2,2,2);
Text_Delete(tz1);
}
If DayIndex == 3 Then{
tz3 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz3,2,2);
Text_Delete(tz2);
}
If DayIndex == 4 Then{
tz4 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz4,2,2);
Text_Delete(tz3);
}
If DayIndex == 5 Then{
tz5 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz5,2,2);
Text_Delete(tz4);
}
If DayIndex == 6 Then{
tz6 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz6,2,2);
Text_Delete(tz5);
}
If DayIndex == 7 Then{
tz7 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz7,2,2);
Text_Delete(tz6);
}
If DayIndex == 8 Then{
tz8 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz8,2,2);
Text_Delete(tz7);
}
If DayIndex == 9 Then{
tz9 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz9,2,2);
Text_Delete(tz8);
}
If DayIndex == 10 Then{
tz10 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz10,2,2);
Text_Delete(tz9);
}
If DayIndex == 11 Then{
tz11 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz11,2,2);
Text_Delete(tz10);
}
If DayIndex == 12 Then{
tz12 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz12,2,2);
Text_Delete(tz11);
}
If DayIndex == 13 Then{
tz13 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz13,2,2);
Text_Delete(tz12);
}
If DayIndex == 14 Then{
tz14 = Text_New(sDate[30],sTime[30],DayClose(1),NumToStr(DayOpen(1),0));
Text_SetStyle(tz14,2,2);
Text_Delete(tz13);
}
}
===============< 아래 끝 >==============================
수고하십시요^^
2021-09-23
1271
글번호 152390
답변완료
수식 문의드립니다.
* 신호는 선물, 주문은 옵션으로 하는 경우 입니다.
* 진입신호(국내선물 차트)
- 국내선물 macd(12,26,9) 가 0선 위에서 데드크로스
- 국내선물 종가가 볼린저밴드(60,2,2) 중심선 위에 있는 경우
- 국내선물 스토캐스틱 슬로우(5,3,3)이 80 이상일때
* 매도주문 조건(옵션 차트)
- 기존에 진입한 옵션 포지션이 없고
- 국내선물 차트에서 위 진입신호를 만족하는 경우 옵션 차트 상 종가에 매도 1계약 주문
- 옵션 매도 주문 시점의 옵션 현재 봉의 고가를 손절가격으로 설정
* 청산 (국내선물 차트)
- 국내선물 macd(12,26,9)가 0선 아래서 데드크로스
- 국내선물 종가가 조건만족시 옵션매도 포지션 청산
* 손절 (옵션)
- 옵션이 매도 진입한 상태에서
- 옵션 현재가가 손절가격(매도 주문시 옵션 현재봉의 고가)에 도달하였을 떄
현재가로 청산한다.
2021-09-23
1242
글번호 152389