커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1555
글번호 230811
답변완료
지표
항상감사합니다.
지표첨삭부탁드립니다.
1]고가,저가,(고+저/2)에진동폭표시도부탁드립니다.
2]시가자리에는 시가표시 대신
고가-시가의 진동폭표시/시가-저가의 진동폭표시 가능할까요?
[수식]
input : 타주기분(60);
var : S1(0),D1(0),TM(0),TF(0),tx1(0),tx2(0),tx3(0),tx4(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
var1 = O;
Var2 = H;
Var3 = L;
Var4 = (var2+Var3)/2;
tx1 = text_new(sDate,sTime,var1,"시:"+NumToStr(var1,2));
tx2 = text_new(sDate,sTime,var2,"고:"+NumToStr(var2,2));
tx3 = text_new(sDate,sTime,var3,"저:"+NumToStr(var3,2));
tx4 = text_new(sDate,sTime,var4,"저:"+NumToStr(var4,2));
Text_SetStyle(tx1,2,1);
Text_SetStyle(tx2,2,1);
Text_SetStyle(tx3,2,0);
Text_SetStyle(tx4,2,0);
}
if h > Var2 Then
Var2 = h;
if l < Var3 Then
Var3 = l;
Var4 = (var2+Var3)/2;
Plot1(var1,"시");
Plot2(var2,"고");
Plot3(var3,"저");
Plot4(Var4,"반");
Text_SetString(tx1," 시-"+NumToStr(var1,2));
Text_SetLocation(tx1,sDate,sTime,var1);
Text_SetString(tx2," 고:"+NumToStr(var2,2));
Text_SetLocation(tx2,sDate,sTime,var2);
Text_SetString(tx3," 저:"+NumToStr(var3,2));
Text_SetLocation(tx3,sDate,sTime,var3);
Text_SetString(tx4," 반:"+NumToStr(var4,2));
Text_SetLocation(tx4,sDate,sTime,var4);
}
#텍스트색
Text_SetColor(tx1,White);Text_SetColor(tx2,Orange);Text_SetColor(tx3,Black);Text_SetColor(tx4,Olive);
#텍스트크기
Text_SetSize(tx1,10);Text_SetSize(tx2,10);Text_SetSize(tx3,10);Text_SetSize(tx4,10);
2023-02-20
973
글번호 166453
답변완료
직전 손실거래 확인
NumLosTrades() and IsEntryName()
이걸 써서 직전 거래가 손실이고 해당 손실거래의 이름을 특정할 수 있나요 ?
2023-02-20
912
글번호 166452
배움이 님에 의해서 삭제되었습니다.
2023-02-20
15
글번호 166451
답변완료
문의드립니다
사등분선과 삼등분선이란 지표를 예스랭귀지로 구현하고싶습니다
아래수식 참고해주세요
------------------------------
사등분선
a =dayhigh() 
b =(dayhigh()*3 + daylow())/4
c =(dayhigh()+daylow())/2
d =(dayhigh()+daylow()*3)/4
e =daylow() 
------------------------------
삼등분선
a = valuewhen(1,dayclose()>dayopen()*multiple,dayclose());
b = valuewhen(1,dayclose()>dayopen()*multiple,dayopen());
multiple = 1.10
A = (a+b)/2
B = a-((a-b)/4)
C = ((a-b)/4)
2023-02-20
671
글번호 166450
답변완료
검토 부탁드립니다.
매수 진입 후
직전봉 저가 손절 / (진입평균가- 직전봉 저가) *2 + 진입평균가
매도 진입 후
직전봉 고가 손절 / 진입평균가 - (진전봉 고가 - 진입평균가)*2
매수, 매도 손절 익절의 손익비를 2:1로 하려고 수식을 만드었는데 백테스트상 잘 안됫요
혹시 무엇이 잘못된건지 수정쫌 부탁드립니다
////////////////////////////////////////////////////
input: back(1),tri(2);
var1 = low[BarsSinceEntry];
var2 = high[BarsSinceEntry];
Var5= close[BarsSinceEntry];
var3 = (( AvgEntryPrice- var1[back] ) *TRI) + AvgEntryPrice; //(종가-저가) + 저가
Var4 = AvgEntryPrice - ((var2[back] - AvgEntryPrice ) *TRI) ; // 종가 - ((고가-종가) *2)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if MarketPosition == 1 and CrossDown(close,var1[back]) Then
ExitLong("손절1",AtMarket);
if MarketPosition == 1 and CrossUp(close,var3) Then
ExitLong("익절1",AtMarket);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if MarketPosition == -1 and CrossUp(close,var2[back]) Then
ExitShort("손절2",AtMarket);
if MarketPosition == -1 and CrossDown(close,var4) Then
ExitShort("익절2",AtMarket);
2023-02-20
682
글번호 166449
신대륙발견 님에 의해서 삭제되었습니다.
2023-02-19
19
글번호 166448
신대륙발견 님에 의해서 삭제되었습니다.
2023-02-19
21
글번호 166447
답변완료
문의드립니다.
일봉 윗꼬리의 합, 특정봉의 시가저장 방법을 문의드립니다.
1.일봉 20일간의 고가-종가(양봉) 고가-시가(음봉) 합이, 현재가의 1.5배가 넘는 종목을 검색하고 싶습니다. (20일간 양봉윗꼬리 와 음봉윗꼬리의합)
2.일봉상 20일간 15%이상, 1번이상 오른종목중, 고가대비 종가(양봉윗꼬리)가 2% 미만 인종목을 검색 하고 싶습니다.
3.2번 조건을 만족할때, 15%이상오른 해당봉의 시가를 저장하여, 현재가가 15%이상 오른 양봉의 시가에올때, 매수하는 방법을 알고싶습니다.
감사드립니다. 좋은하루되세요
2023-02-21
1331
글번호 166446
답변완료
문의드립니다
1번
input : signal(10), Period(5);
Var : Mav1(0);
Var1 = OBV;
Var2 = Ema(var1,signal);
Mav1 = Ma(C, Period);
if CrossUp(var1,Var2) and Mav1 > Mav1[1] Then
Buy();
if CrossDown(var1,Var2) and Mav1 < Mav1[1] Then
Sell();
2번
input : Period(9);
var1 = PVI+NVI;
Var2 = ma(PVI,Period)+ma(NVI,Period);
Var3 = min(var1,Var2);
Plot1(var1);
Plot2(var2);
Plot3(var3);
1번과 2번은 지난번 만들어 주신 시스템과 지표입니다
너무 너무 감사드리고 많은 도움이 돼었습니다
이번에 부탁드릴 내용은
1번 시스템에 매수진입 매도청산 신호 발생시
2번 지표의 Plot1의 값이 Plot2의 값 보다
위에 있는 골든크로스 상태여야 매수 신호가 나오게 부탁드리고
반대로 매도의 경우
1번 시스템에 매도진입 매수청산 신호 발생시
2번 지표의 Plot1의 값이 Plot2의 값 보다
아래에 있는 데드크로스 상태여야 매도 신호가 나오게 부탁드립니다
한번 더 감사드립니다
2023-02-19
1161
글번호 166445