커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3760
글번호 230811
답변완료
부탁드립니다.
아래식에서
SetStopTrailing의 최대 익절대비 5틱 하락시 청산과 같은 방법으로
SetStopLoss도 최대 손실 대비 5틱 상승시 청산으로 수정부탁드립니다.
청산 명령어가 없으면 1)식에서 최대한 같은 식으로 수정 부탁드립니다.
SetStopTrailing(5,익절,PointStop);
SetStopLoss(손절,PointStop);
1)식
var : BH(0),SL(0),HE(0),LE(0);
if MarketPosition == 1 Then{
BH = highest(H,BarsSinceEntry);
if MaxEntries == 1 Then
HE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) > HE Then
HE = LatestEntryPrice(0);
if BH >= EntryPrice+PriceScale*익절1 then{
ExitLong("B익절1",AtStop,BH-(BH-EntryPrice)*익절1하락퍼센트); }
}
if MarketPosition == -1 Then{
SL = Lowest(L,BarsSinceEntry);
if MaxEntries == 1 Then
LE = LatestEntryPrice(0);
if MaxEntries >= 2 and LatestEntryPrice(0) < LE Then
LE = LatestEntryPrice(0);
if SL <= EntryPrice-PriceScale*익절1 then{
ExitShort("S익절1",AtStop,SL+(EntryPrice-SL)*익절1하락퍼센트); }
}
2020-03-05
385
글번호 136594
답변완료
추가 부탁드립니다.
안녕하세요?
아래의 수식에서 이평선2개(각각 외부변수)를 넣어서 정배열에서 매도, 역배열에서 매수가 되도록 부탁드립니다.
감사합니다.
input : 매수음봉틱수(5),매수양봉틱수(5);
input : 매도양봉틱수(5),매도음봉틱수(5);
input : 진입횟수(5);
input : 익절틱수(50),손절틱수(50);
var : entry(0);
#영업일 변경
if bdate != bdate[1] Then
entry = 0;
#포지션이 변경되어 새로운 진입포지션 발생시마다 1씩 증가
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if entry < 진입횟수 and #진입횟수가 지정한 값 이하
MarketPosition == 0 and #매수나 무포지션 상태
C[1] == O[1]+매도양봉틱수*PriceScale and #1봉전종가가 1봉전시가+매도양봉틱수 이상
C[0] == O[0]-매도음봉틱수*PriceScale Then #현재봉 종가가 1봉전시가-매도음봉틱수 이하
sell("s");
if entry < 진입횟수 and #진입횟수가 지정한 값 이하
MarketPosition == 0 and #매도나 무포지션 상태
C[1] == O[1]-매수음봉틱수*PriceScale and #1봉전종가가 1봉전시가-매수음봉틱수 이하
C[0] == O[0]+매수양봉틱수*PriceScale Then #현재봉 종가가 1봉전시가+매수양봉틱수 이상
buy("b");
#매수진입 후 손절되면 매도로 스위칭
if MarketPosition == 1 Then
sell("bs",AtStop,EntryPrice-PriceScale*손절틱수);
#매도진입 후 손절되면 매수로 스위칭
if MarketPosition == -1 Then
buy("sb",AtStop,EntryPrice+PriceScale*손절틱수);
#목표수익 설정
SetStopProfittarget(PriceScale*익절틱수,PointStop);
2020-03-05
396
글번호 136593
답변완료
문의
적용
일반적으로 적용할때
마우스로 드래그 하면되는데
적용 이름은 불러왔는데
표시도없고 선도 없어서
챠트에 마우스 드래그 말고
다른 방법으로 챠트안에
적용 될수 있는 방법 알려주세요
2020-03-05
378
글번호 136592
답변완료
지표
색상넣어주세요.문법에 맞게 알려주세요
*************************************************************************************
색상추가식해봤읍니다.
input : ndate(20200302),색상1(YELLOW),색상2(GREEN);
if sdate == ndate Then
{
var1 = (DayHigh+daylow)/2;
var2 = (DayOpen+DayClose)/2;
}
if var1 > 0 and var2 > 0 Then
{
plot1(var1,색상1);이부분 에러
plot2(var2,색상2);이부분 에러
}
틀려요
**********************************************************************************
1-1(시고저종합)
input : ndate(20200302);
if sdate == ndate Then
{
var1 = (DayHigh+daylow)/2;
var2 = (DayOpen+DayClose)/2;
}
if var1 > 0 and var2 > 0 Then
{
plot1(var1);
plot2(var2);
}
2
var1 = (H+L)/2;
var2 = (O+c)/2;
var3 = (H[1]+L[1])/2;
var4 = (O[1]+c[1])/2;
var5 = (var1+var3)/2;
plot1(var1);
plot2(var2);
if var3 > 0 and var4 > 0 then
{
plot3(var3);
plot4(var4);
plot5(var5);
}
3
input : ndate1(20200302),ndate2(20200303);
if sdate == ndate1 Then
{
var1 = (DayHigh+daylow)/2;
var2 = (DayOpen+DayClose)/2;
}
if sdate == ndate2 Then
{
var3 = (DayHigh+daylow)/2;
var4 = (DayOpen+DayClose)/2;
}
if var1 > 0 and var2 > 0 then
{
plot1(var1);
plot2(var2);
}
if var3 > 0 and var4 > 0 then
{
plot3(var3);
plot4(var4);
}
if var1 > 0 and var3 > 0 Then
{
value1 = (var1+var3)/2;
plot5(value1);
}
4
var1 = (H+L)/2;
var2 = (O+c)/2;
var3 = (H[100]+L[100])/2;
var4 = (O[100]+c[100])/2;
var5 = (var1+var3)/2;
plot1(var1);
plot2(var2);
if var3 > 0 and var4 > 0 then
{
plot3(var3);
plot4(var4);
plot5(var5);
}
2020-03-05
401
글번호 136591
답변완료
문의드립니다
if C >= dayopen+PriceScale*1 Then
PlotPaintBar(H,L,"강조",MAGENTA);
if C <= dayopen-PriceScale*1 Then
PlotPaintBar(H,L,"강조",GREEN);
위수식에서 당일시가로부터고저중심갑 강조식을 부탁드립니다~~미리감사드립니다
2020-03-05
438
글번호 136590
답변완료
문의드립니다.
value1이 3봉이상 상승중이고
macd가 3봉이상 상승중이며
10일 이평이 상승중이면 매수
부탁드립니다.
2020-03-04
469
글번호 136589
답변완료
질문입니다.
아래 수식을 보면
틱차트에 1분봉 표시해도 안되는데 1분봉 표시 되게 할 수 없을까요?
1분봉 이상을 하면 잘나오는데
1분봉 잘 안됩니다. 1분봉 표시 하게 해주면 더 좋겠습니다.
감사합니다.
input : 분(3);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : OO[50](0),HH[50](0),LL[50](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 = TimeToMinutes(stime)%분;
if bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) or stime == 154500 Then{
OO[0] = O;
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if OO[0] > 0 then
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
plot1(OO[0]);
plot2(HH[0]);
plot3(LL[0]);
}
2020-03-05
500
글번호 136588
달무드 님에 의해서 삭제되었습니다.
2020-03-04
0
글번호 136587
답변완료
수식 문의 드립니다.
수고하십니다.
1. 거래량이 분봉으로 2000건이상 일땐 스톡케스틱의 매수신호 일때 1계약 매수, 매도신호 발생시 청산하고, 매도 진입 를 사용하고
. 거래량이 분봉으로 2001 ~ 3000건 이상땐 파라볼릭 매수신호 일때 1계약 매수, 매도신호 발생시 청산하고, 매도 진입 를 사용..
거래량이 분봉으로 0건 ~1999 건 까진 MACD 매수신호 일때 1계약 매수, 매도신호 발생시 청산하고, 매도 진입 사용 하고 싶습니다.
수고하세요.
2020-03-04
491
글번호 136586