커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7580
글번호 230811
2wnwn 님에 의해서 삭제되었습니다.
2013-03-10
36
글번호 60512
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2013-03-10
20
글번호 60511
답변완료
시스템식/지표식 작성
항상 감사드립니다
아래와 같은 시스템식을 구현코자합니다
***1.시스템식***
var11=DayHigh()-DayLow();
var14=var*0.5
var18=(DayLow()+var14); #피봇중심값#
value1 = (DayLow(1)+(DayHigh(1)-DayLow(1))*0.5); ; #피봇중심선#
if var18>var18[1] Then
var23 = value1; # 피봇중심 고점돌파#
if value1 > var23 Then
var23 = value1;
if var18<var18[1] Then
var21 = value1; #피봇중심 저점돌파#
if value1 > var21 Then
var21 = value1;
**시스템식 1-1**
위식은 피보비율 중심값을 이용해서
피보비율중심선(var18)이 상승할때 ( var18 > var18[1] ) 발생봉의 종가에 매수진입
매수진입후 직전고점을 ==> var23 하여
c>var23 이면 매수
c<var23 이면 매도
**여기서 직전고점은 당일의 직전고점입니다
피보비율 중심선이 당일 장시작시 처음부터 시작하기 때문에
상승시 처음에 매수신호 하락시 매도신호 이렇게 계속 발생하다가
어느정도지나면 직전저점이나 고점이 형성되는것 같습니다
피보비율중심선(var18)이 하락할때 ( var18 < var18[1] ) 발생봉의 종가에 매도진입
매도진입후 직전저점을 ===> var21 하여
c>var21 이면 매수
c<var21 이면 매도
**시스템식 1-2**
피보비율중심선(var18)이 상승할때 ( var18 > var18[1] ) 발생봉의 종가에 매수진입
매수진입후 매수발생봉의 종가를 ==> var23 하여
c>var23 이면 매수
c<var23 이면 매도
피보비율중심선(var18)이 하락할때 ( var18 < var18[1] ) 발생봉의 종가에 매도진입
매도진입후 매도발생봉의 종가를 ===> var21 하여
c>var21 이면 매수
c<var21 이면 매도
이런 시스템을 만들고 싶습니다(위의 식은 제가 함 만들어 보았는데 생각처럼
되질않습니다)
***2-1 지표식(틱챠트) ***
var18> var18[1] 조건만족시 직전고점을 라인1(red)
var18< var18[1] 조건만족시 직전저점을 라인2(blue)
var18 : 피봇중심선 라인3(yellow)==> 붙임 yellow 선
그리고 라인1과 라인2을 연결해서 지나온 궤적을 표현하고 싶습니다.
(참고로 해외선물에 틱챠트로 적용합니다)
***2-2 지표식(틱챠트) ***
var18> var18[1] 조건만족시 조건만족봉의 종가를 라인1(red)
var18< var18[1] 조건만족시 조건만족봉의 종가를 라인2(blue)
var18 : 피봇중심선 라인3(yellow)==> 붙임 yellow 선
그리고 라인1과 라인2을 연결해서 지나온 궤적을 표현하고 싶습니다.
(참고로 해외선물에 틱챠트로 적용합니다)
.
붙임챠트는 제가 함 작성해보았는데 일직선으로 나옵니다..
감사합니다.
2013-03-10
438
글번호 60510
답변완료
현물 간단한 식 부탁드립니다.
항상 예스스탁에 감사한 마음을 갖고있습니다.
다름이 아니라 이평선을 이용한 로직인데 특정조건에서 매도 물량을 늘려가는
방식을 구현해보고싶었는데 한계가 있어 이렇게 글을 남기게 되었습니다.
30분봉상, sma:36, lma:275 ,총 구매가능 물량 : 100주
if 30분봉종가(30분봉 차트 13번째봉의 종가)가 36일평균선보다 크고, 36일평균선이
275일평균선보다 클 경우 무조건'5주' 매수,
if 36일선이 30분봉종가 보다 크고, 30분봉종가가 275일선보다 (즉 종가가 36일선과 275일선안에 갇혀있을 경우)클 경우 이거나(or), 36일선,275일선이 30분봉종가보다 클 경우
'5주'매도 만약, 연속10일간 으로 sell 조건을 만족할경우
첫째날~4번째날은 5주씩 매도, 5일~8일째는10주씩 매도, 9~10일차는 20주씩 매도
이렇게 만약 보유물량이 100주였을경우에 잇다가 종가가 36일선을 깨거나 275일선을
깨고 있는 상황이 연속으로 10일일 경우 보유물량을 10일만에 전부청산가능하도록
구현해보고싶습니다.
죄송하지만 답변은 메일로 보내주시면 감사하겠습니다.
flytheskyhi@google.com
언제나 행복한 일들로 가득하시길...
2013-03-09
435
글번호 60509
통발 님에 의해서 삭제되었습니다.
2013-03-09
1
글번호 60508
답변완료
강제청산문의드립니다
예를들어
매수중일때 -160틱이면 손절 +600틱이면익절
매도중일때 -160틱 손절 600틱익절입니다
그리고
트레일링스탑 수식도 문의 드립니다
매도//매수
600틱수익후 -100틱후퇴시 청산 식입니다
그리고 궁금한게
실제로 트레일링스탑을 사용해도 무난한식인가요?
트레일링스탑이 차트는 어차피 과거니까 적용하면 어느정도 잘 맞아떨어지는데
실제로 시스템 매매하시는분들이 사용을 하는지 궁금합니다
그리고 제가 만든 시스템은 유로선물기준인대
07년도 부터 8500틱정도 수익이 나기는하는대
매매횟수가 60번이 넘지 않습니다 실제로 문제가 될지 안될지를 몰라서
문의드립니다
2013-03-09
224
글번호 60507
답변완료
수식문의
[일]봉 주기 매매식입니다
5일 이평선이 20일 이평선을 골든크로스 하면 매수하는 시스템 식에
동일종목 타주기 지표값의 다음 조건을 삽입하고 싶습니다.
단 매수하는 시점에 [주]봉 주기상 macd 오실레이터 값이 직전값보다 작아야 한다.
시스템식 부탁드립니다.
2013-03-09
234
글번호 60506
답변완료
문의드립니다.
안녕하세요.
몇가지 궁금한게 있습니다.
1.진입은 직접 매수를 하고 매도만 설정을 할려고 합니다.
input : Period1(3),Period2(5);
var1=ma(c,Period2);
var2=ema(ema(ema(C,Period1),Period1),Period1);
if crossdown(var1,var2) Then
sell();
이렇게 설정을 하고, 적용>시스템시뮬레이션>저장했던걸 불러왔더니 반응이 없어서요.
(시뮬레이션 테스트)
진입 공식이 없어서 시뮬레이션이 안되는건가요?
저는 진입은 직접 손으로 하고 매도만 자동매도를 하길 원하는데 방법을 알려주세요.
2. 피라미딩이 뭔가요?
허용안함
다른 진입시도 허용
모든 진입시도 허용
의 차이점을 알려주세요.
3. 슬리피지가 뭔가요?
감사합니다.
2013-03-09
283
글번호 60505
답변완료
안녕하세요
주말 잘 보내셨나요?
같은식을 변수값을 틀리게 해서 먼저 신호가 나온대로 진행할려고 합니다
한번 만들어 보았는데 안되는거 같아요 한번만 봐주세요
감사합니다
input : rsiPeriod(8), RSVValue(31),N(5),X(3);
input : maPeriod1(9),maPeriod2(13),maPeriod3(18), maPeriod4(66);
input : Vol(0);
input : 간격(0.75);
input : LossPoint(1);
input : ProfitPoint(2.8);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
if date != date[1] Then
Condition1 = false;
#최초 매도조건
if Condition1 == false
&& MarketPosition == 0
&& V > Vol
&& MAv1 < MAv2
&& MAv2 < MAv3
&& MAv3 < MAv4
&& RSV < RSVValue
&& MAv4 - MAv2 <= 간격
&& C < MAv4
&& MACDO < 0
Then
{
Sell("최초매도", OnClose, DEF);
Condition1 = true;
}
if Condition1 == true
&& MarketPosition == 0
&& IsExitName("반복청산",1) == true
&& IsEntryName("최초매도",1) == true
&& EntryDate(1) == sdate
&& C <= mav4-PriceScale*X
&& (CrossDown(MACDO,0) or C >= ExitPrice(1)+PriceScale*N) Then{
sell("반복매도");
}
#반복매도청산조건
if MarketPosition == -1
&& CrossUp(MACDO,0)
&& IsEntryName("최초매도") == true Then
ExitShort("반복청산");
//종가가 MAv4보다 크면 매도청산
if C > MAv4 Then {
ExitShort("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == -1 Then{
ExitShort("손절",AtStop,EntryPrice+Losspoint);
ExitShort("목표",AtLimit,EntryPrice-Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
input : rsiPeriod1(8), RSVValue1(31),N1(5),X1(3);
input : maPeriod11(9),maPeriod12(13),maPeriod13(18), maPeriod14(40);
input : Vo1l(0);
input : 간격1(0.75);
input : LossPoint1(1);
input : ProfitPoint1(2.8);
input : MACDP11(12),MACDP12(26),MACDP13(9);
var : MAv11(0), MAv12(0), MAv13(0), MAv14(0);
var : RSV1(0);
var : Energe11(0),Energe12(0);
var : MACDO1(0),cnt1(0);
MAv11 = ma(C,maPeriod11);
MAv12 = ma(C,maPeriod12);
MAv13 = ma(C,maPeriod13);
MAv14 = ma(C,maPeriod14);
RSV1 = RSI(rsiPeriod);
MACDO1 = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터1
if date != date[1] Then
Condition1 = false;
#최초 매도조건
if Condition1 == false
&& MarketPosition == 0
&& V > Vol
&& MAv11 < MAv12
&& MAv12 < MAv13
&& MAv13 < MAv14
&& RSV1 < RSVValue1
&& MAv14 - MAv12 <= 간격
&& C < MAv14
&& MACDO1 < 0
Then
{
Sell("최초매도2", OnClose, DEF);
Condition1 = true;
}
if Condition1 == true
&& MarketPosition == 0
&& IsExitName("반복청산2",1) == true
&& IsEntryName("최초매도2",1) == true
&& EntryDate(1) == sdate
&& C <= mav4-PriceScale*X
&& (CrossDown(MACDO,0) or C >= ExitPrice(1)+PriceScale*N) Then{
sell("반복매도2");
}
#반복매도청산조건
if MarketPosition == -1
&& CrossUp(MACDO1,0)
&& IsEntryName("최초매도2") == true Then
ExitShort("반복청산2");
//종가가 MAv4보다 크면 매도청산
if C > MAv14 Then {
ExitShort("MAv4청산2");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == -1 Then{
ExitShort("손절2",AtStop,EntryPrice+Losspoint);
ExitShort("목표2",AtLimit,EntryPrice-Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절2",1) == true or IsExitName("목표2",1) == True) Then
Condition1 = false;
2013-03-09
258
글번호 60504