커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3428
글번호 230811
답변완료
수식문의드립니다.
macd oscillator 단기선이 장기선을 crossup 하고, 장 단기 선의 기울기가 모두 양(+)일 때 매수
macd oscillator 단기선이 장기선을 crossdown 하고, 장 단기 선의 기울기가 모두 음(-)일 때 매도
하는 수식 문의드립니다. 감사합니다!
추가적으로
1. macd oscillator 단기선과 장기선이 모두 0이상이면(if조건문)
2. macd socillator 단기선의 기울기가 -에서 0 혹은 +로 바뀌면(if조건문)
도 같이 알려주시면 감사드리겠습니다
2020-04-05
742
글번호 137565
답변완료
간단한 질문입니다.
매수 조건중 RSI 범위를 0-15 구간 및 50-80 구간에서만 구현되게 하는 수식은 어떻게 해야할나요?
예를 들면 50-80 구간을 하려면
RSIV >50 and RSI< 80 이렇게 하면 되는것은 알고 있는데
0-15 와 50-80 구간을 하려면
RSIV>0 and RSIV<15 and RSIV >50 and RSI< 80 이렇게 하면 되나요? 이러면 안될것 같아서요
방법을 알려주세요~~
2020-04-05
755
글번호 137564
답변완료
수식 문의입니다.
시가 매수후
시가에서 -5%까지 -1%하락할때마다 1주씩 매수
-6% ~ -10%까지 -1%하락할때마다 2주씩 매수
-11% ~ -20%까지 -2%하락할때마다 5주씩 매수
-21% ~ -30%까지 -5%하락할때마다 10주씩 매수
*같은 가격에서는 재진입 금지
예) 시가대비 -3% 빠졌다 시가까지 올라온경우
-1% -2% -3%때 매수는 하지만
다시 올라온다고 -2% -1%때 매수는 안되게
2020-04-05
744
글번호 137563
관리자에 의해 시스템시장 토론실로 이동되었습니다
2020-04-05
9
글번호 137562
답변완료
함수식부탁입니다
$,안녕하세요
1, N봉전(변수조절)캔들의 시가와종가의 중심선을 오른쪽 그리기로 Taxt출력 하고싶습니다
2, 현재봉의 시가가 이전봉의 시가보다 3틱이상 크고 현재봉의종가가 이전봉의 종가보다
3틱이상 작을때 두 조건만족시에 현재봉 완성시 현재봉고가,저가라인을 표시합니다.
3, 현재봉의 시가가 이전봉의 시가보다 3틱이상 작고 현재봉의종가가 이전봉의 종가보다
3틱이상 클때 두 조건만족시에 현재봉 완성시 이전봉의 고가,저가라인을 표시합니다.
4, 2,3번의 고가,저가라인은 라인발생이후 5개봉까지 유지하면좋겠습니다.
함수식 도움 부탁드립니다.
$,고맙습니다.
2020-04-05
760
글번호 137561
답변완료
수식 변경 요청드립니다.
안녕하세요.
아래 수식은 진입 시 3 계약이 동시에 진입하여 3차례에 걸쳐서 나누어 분할 익절되고 손절 시 15틱 일괄 청산 되도록 되어 있습니다. 이것을 역으로, 진입 시 3계약 동시 진입하여 N 틱수 이익 시 3계약 모두 일괄 청산되고, 손실 시 손절틱수1(10), 손절틱수2(15), 손절틱수3(20) 이 되도록 변경하여 주시면 감사 하겠습니다.
input : 거래시간 (1), 시작시간 (220000), 끝시간 (045000),익절틱수1(10),익절틱수2(15),익절틱수3(20),손절틱수 (15);
Input : 전환선기간 (5), 기준선기간1(26), 기준선기간2(1), 선행스팬2기간(52), short(12), long(26), sig(9),BBP(120), 당일누적손실틱수 (100);
Var : MACDv(0), MACDsig(0),macdosc(0), Condition3(false);
var : 전환선 (0), 기준선1(0), 기준선2(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0), Xcond(false),N1(0),daypl(0),당일누적손실 (0);
var1 = MACD(short, long);
var2 = ema(MACDv,sig);
var3 = ma(C,BBP);
전환선 = (Highest(High, 전환선기간 ) + Lowest(Low, 전환선기간 )) / 2;
기준선1 = (Highest(High, 기준선기간1 ) + Lowest(Low, 기준선기간1 )) / 2;
기준선2 = (Highest(High, 기준선기간2 ) + Lowest(Low, 기준선기간2 )) / 2;
선행스팬1 = (전환선 [25] + 기준선2 [25]) / 2 ;
선행스팬2 = (Highest(High, 선행스팬2기간 )[25] + Lowest(Low, 선행스팬2기간 )[25]) / 2;
if 거래시간 == 1 then
condition3 = (stime>=시작시간 or stime<=끝시간);
Else if 거래시간 == 2 then
condition3 = (stime>=시작시간 and stime<=끝시간);
Else
condition3 = true;
if 거래시간 == 1 or 거래시간 == 2 then
{
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then
{
Xcond = false;
N1 = NetProfit;
}
}
else
{
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
}
당일누적손실 = PriceScale*당일누적손실틱수;
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] and
(IsExitName("dbl",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
# 매수/매도청산
if MarketPosition == 0 and
TotalTrades == TotalTrades[3] and
Xcond == false and
Condition3 == true and var3 > var3[1] and var1 > var2 and 전환선 > 기준선1 and crossup(C,전환선 ) and C > O Then
{
Buy("b",OnClose,def,3);
ExitLong("bp1.",atlimit,C+PriceScale*익절틱수1,"",1,1);
ExitLong("bp2.",atlimit,C+PriceScale*익절틱수2,"",1,1);
ExitLong("bp3.",atlimit,C+PriceScale*익절틱수3);
}
# 매도/매수청산
if MarketPosition == 0 and TotalTrades == TotalTrades[3] and
Xcond == false and
Condition3 == true and var3 < var3[1] and var1 < var2 and 전환선 < 기준선1 and CrossDown(C,전환선 ) and C < O Then
{
Sell("s",OnClose,def,3);
ExitShort("sp1.",atlimit,C-PriceScale*익절틱수1,"",1,1);
ExitShort("sp2.",atlimit,C-PriceScale*익절틱수2,"",1,1);
ExitShort("sp3.",atlimit,C-PriceScale*익절틱수3);
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*익절틱수1 then
ExitLong("bp1",atlimit,EntryPrice+PriceScale*익절틱수1,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*익절틱수2 then
ExitLong("bp2",atlimit,EntryPrice+PriceScale*익절틱수2,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*익절틱수3 then
ExitLong("bp3",atlimit,EntryPrice+PriceScale*익절틱수3);
}
if MarketPosition == -1 Then{
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*익절틱수1 Then
ExitShort("sp1",atlimit,EntryPrice-PriceScale*익절틱수1,"",1,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*익절틱수2 Then
ExitShort("sp2",atlimit,EntryPrice-PriceScale*익절틱수2,"",1,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*익절틱수3 Then
ExitShort("sp3",atlimit,EntryPrice-PriceScale*익절틱수3);
}
SetStopLoss(PriceScale*손절틱수,PointStop);
if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간 ) Then{
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
if MarketPosition == 1 then
{
ExitLong("dbl",AtStop,EntryPrice-((당일누적손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then
{
ExitShort("dsl",AtStop,EntryPrice+((당일누적손실+daypl)/CurrentContracts));
}
2020-04-05
707
글번호 137560
답변완료
분봉차트에서 기준선 돌파
분봉차트에서 기준선 돌파하는 종목을 검색하는 수식을
알고 싶습니다.
2020-04-05
964
글번호 137559
답변완료
문의드립니다
안녕하세요
아래 수식에서 상한가 다음날에만 매수진입
1차 or 2차 or 3차까지 매수가 되어서 청산이 되면 더이상 진입되지않게 수식 변경 부탁드립니다
예를들면 상한가 다음날에 1차 매수후 청산이 되면 더이상 진입금지
input : 금액(10000000);
var : vol(0);
if MarketPosition == 0 and L > DayHigh*0.82 Then
{
vol = Floor((금액*0.3)/min(NextBarOpen,DayHigh*0.82));
buy("b1",atlimit,DayHigh*0.82,vol);
}
if MarketPosition == 1 then
{
if MaxEntries == 1 and L > DayHigh*0.78 Then
{
vol = Floor((금액*0.3)/min(NextBarOpen,DayHigh*0.78));
buy("b2",atlimit,DayHigh*0.78,vol);
}
if MaxEntries == 2 and L > DayHigh*0.75 Then
{
vol = Floor((금액*0.3)/min(NextBarOpen,DayHigh*0.75));
buy("b3",atlimit,DayHigh*0.75,vol);
}
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp1" Then
Condition1 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bp2" Then
Condition2= true;
if Condition1 == false Then
ExitLong("bp1",atlimit,AvgEntryPrice*1.025,"",floor(MaxContracts*0.8),1);
if Condition2 == false Then
ExitLong("bp2",atlimit,AvgEntryPrice*1.035);
if MaxEntries == 3 then
ExitLong("bl",AtStop,AvgEntryPrice*0.92);
}
SetStopEndofday(151000);
2020-04-05
744
글번호 137558
답변완료
수식부탁드려요^^
Valuewhen(1, crossup(c,envelopeup(period,percent)),(c+o+o+o)/4)//period=5,percent=1
위의 수식을 예스로 부탁드립니다
2020-04-05
788
글번호 137557