커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4457
글번호 230811
답변완료
시스템 작성좀 부탁드립니다.^^
input : P1(1),P2(2),P3(3);
input : Period11(5),Period12(6),Period13(2);
input : Period21(7),Period22(8),Period23(2);
input : Period31(9),Period32(10),Period33(2);
input : Period41(11),Period42(12),Period43(2);
var : wma1(0),wma2(0),wma3(0);
var : SMI1(0),SMI2(0),SMI3(0),SMI4(0);
wma1 = wma(c,P1);
wma2 = wma(c,P2);
wma3 = wma(C,P3);
SMI1 = SMI(Period11,Period12,Period13);
SMI2 = SMI(Period21,Period22,Period23);
SMI3 = SMI(Period31,Period32,Period33);
SMI4 = SMI(Period41,Period42,Period43);
if wma1 > wma2 and wma2 > wma3 and
SMI3 > 0 and SMI4 > 0 and SMI3 > SMI4 and
((SMI2 > 0 and crossup(SMI1,0)) or (SMI1 > 0 and crossup(SMI2,0))) Then
buy();
if wma1 < wma2 and wma2 < wma3 and
SMI3 < 0 and SMI4 < 0 and SMI3 < SMI4 and
((SMI2 < 0 and CrossDown(SMI1,0)) or (SMI1 < 0 and CrossDown(SMI2,0))) Then
sell();
수고 많으십니다. 위 식에서 청산조건을 넣고 싶은데요.
매수 청산 조건: 가중이동평균P1(1)<가중이동평균선P3(3)일때 청산
매도 청산 조건: 가중이동평균P1(1)>가중이동평균선P3(3)일때 청산
부탁드립니다.^^*
2017-01-12
89
글번호 105850
천용인 님에 의해서 삭제되었습니다.
2017-01-12
1
글번호 105849
만강 님에 의해서 삭제되었습니다.
2017-01-12
19
글번호 105848
답변완료
누적거래량
var1 = ma(c,20); 에서 다음조건에 부합하는 수식을 부탁드립니다.
지수가 var1 의 값을 상향 돌파 한 시점부터 누적거래량이 1000 을 초과하면 매수
지수가 var1 의 값을 하향 돌파 한 시점부터 누적거래량이 1000 을 초과하면 매도
2017-01-13
123
글번호 105847
답변완료
51402번 질문관련하여 문의드립니다.
안녕하세요.
보조종목 사용시 주종목의 데이터 및 함수 앞에는 "data1"라고 항상 명시를 해주어야 하는지요? 예스랭귀 매뉴얼에선 그럴 필요 없다는 의미로 설명하고 있기도 하고요;;
이를테면 data1(dayopen), data1(highest(H,BarsSinceEntry)),data1(eMa(C,20)) 등과 같이 입력해야 하는지 궁금합니다.
또한, 아래와 같은 조건식은 어떻게 해야 하는지요?
if Bdate != Bdate[1] Then{
HH = MACDV;
LL = MACDV;
}
if MACDV > HH Then
HH = MACDV;
if MACDV < LL Then
LL = MACDV;
감사합니다.
2017-01-12
92
글번호 105844
답변완료
항상 감사드립니다.
좀전에 수정해주신 수식을 적용했는데요
추가 진입이 이뤄지지가 않습니다.
b1과 b2가 조건이 틀려야 한다고 하셨는데요
buy("b1",AtStop,NextBarOpen+PriceScale*1,2);
buy("b2",AtStop,NextBarOpen+PriceScale*3,1);
이 두조건은 시스템에서 틀린것으로 인식한게 맞나요.
아니면 atstop를 atlimit 이런식으로 해야 시스템에서 틀린조건으로 인식하나요?
input : 최대진입횟수(1);
var : Xcond(false),HH(0);
var1 = ma(c,5);
var2 = ma(c,20);
if TotalTrades > TotalTrades[1] Then{
if (IsExitName("dl1",1) == true or IsExitName("dl2",1) == true or IsExitName("bl1",1) or IsExitName("bl2",1)) Then
Xcond = True;
Else
Xcond = false;
}
if MarketPosition == 0 and (Xcond == false or (MarketPosition == 1 and MaxEntries == 1) or (Xcond == true and BarsSinceExit(1) >= 1)) then {
If CrossUP(var1, Var2) Then {
buy("b1",AtStop,NextBarOpen+PriceScale*1,2);
}
}
if MarketPosition == 1 then{
if MaxEntries >= 1 and MaxEntries < 최대진입횟수 Then {
buy("b2",AtStop,NextBarOpen+PriceScale*3,1);
}
if CurrentContracts > CurrentContracts[1] Then
HH = H;
if H > HH Then
HH = H;
if MaxEntries == 1 Then{
MessageLog("%.2f",LatestEntryPrice(0));
ExitLong("dl1",atlimit,LatestEntryPrice(0)+PriceScale*20,"",1,1);
}
if MaxEntries == 2 Then
ExitLong("bp2",atlimit,LatestEntryPrice(0)+PriceScale*20);
if HH < LatestEntryPrice(0)+PriceScale*13 Then
ExitLong("bl1",AtStop,LatestEntryPrice(0)-PriceScale*10);
if HH >= LatestEntryPrice(0)+PriceScale*13 Then
ExitLong("bl2",AtStop,LatestEntryPrice(0)+PriceScale*1);
}
2017-01-12
138
글번호 105842
답변완료
이것도 수식으로 가능한가요?
매수및 매도 신호 발생시 10틱수익, 20틱 수익 순차적으로 글이 나오게 가능한가요?
2017-01-12
117
글번호 105840
답변완료
국선은 틱가치가 어떻게되나요?
prickscale을 써야하나요?
2017-01-12
105
글번호 105839
답변완료
수식변경 부탁 드립니다.
안녕하세요.
아래 수식은 키움용 수식입니다.
이 수식이 예스트레이더에서 구현될 수 있도록 변경 부탁드립니다.
A=AVG(c,20);
if(A<A(1),A,O)
감사합니다.
2017-01-12
119
글번호 105834