커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6320
글번호 230811
답변완료
미결제 약정
안녕하세요 간단한 수식좀 부탁합니다
**.선물 분봉차트에서 미결제 수량증가가 200개 이상이면 알람(또는 신호표시) 되게 하는
방법좀 알려주세요.
부탁드립니다.
2017-04-16
206
글번호 108859
답변완료
부탁 합니다
//전략
조건1 ;트릭스(12,9)가 기준선0를 돌파하거나 트릭스가 트릭스 기준선을 상향돌파하면 매수 하향돌파하면 매도
조건2 ; macd(12,26,9)가 기준선0를 돌파하거나 macd가 macd기준선을 상향돌파하면 매수 하향돌파하면 매도
조건1로만 진입식 먼저 만들고 조건2는 "목표수익"후만 적용예정
// 매수 매도 청산전략
*50틱 수익후 3틱 밀리면 1계약수익청산
*100틱 수익후 고점대비 20틱 밀리면 트레이딩 스탑으로 전량청산, 이때 전략명을 "매수목표수익" "매도목표수익" 으로하고
"매수목표수익" "매도목표수익" 이 마지막 청산이름이면 재매수 재매도는 조건1이 아닌
조건2가 만족하면 재매수 재매도 될수 있게 부탁 합니다
대신,"매수목표수익"청산명 이후 매도신호는 정상적으로 조건1로
"매도목표수익"청산명 이후 매수신호는 정상적으로 조건1로
마지막 청산이름이 "매수목표수익" "매도목표수익"이 아니면 조건1로만 계속 매수 매도
스탑로스 50틱 손절
부탁 드립니다
if MarketPosition == 0 and IsExitName("목표수익",1) == False Then {
if 조건1 Then
buy("매수1");
}
if MarketPosition == 0 and IsExitName("목표수익",1) ==true Then {
if 조건2 Then
buy("매수2");
}
이 수식으로 해보니 마지막 청산명이 "목표수익" 인데도 계속 조건1로 매수해 버립니다 ㅠㅠ
2017-04-17
193
글번호 108858
영웅456 님에 의해서 삭제되었습니다.
2017-04-16
0
글번호 108857
답변완료
부탁 드립니다.
질문1)
변환 부탁 드립니다.
미리 감사 드립니다.
P12(12),P26(26)
BB1=2/(P12+1);
DD1=(EAVG(C,P12,1)-EAVG(C,P26,1))/BB1;
질문2)
다음을 시작일자와 시작 시각에 0으로 출발 하도록 부탁 드립니다.
Input : Period1(12),Period2(26),Period3(9);
Var : Ep1(0), JISU1(0),Ep2(0), JISU2(0),Ep3(0),Jisu3(0);
var : MACDVal(0),MACDSig(0),idx(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
if bdate != Bdate[1] Then
idx = 0;
idx = idx+1;
if idx == 1 then {
JISU1 = C;
JISU2 = C;
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal;
}
else{
JISU1 = C * EP1 + JISU1[1] * (1-EP1);
JISU2 = C * EP2 + JISU2[1] * (1-EP2);
MACDVal = JiSu1-Jisu2;
MACDsig = MACDVal * EP3 + MACDsig[1] * (1-EP3);
}
plot1(MACDVal);
plot2(MACDsig);
PlotBaseLine1(0);
#########참고수식#############
var99=시작년월일;
var71=시작시각;
var97=종료년월일;
var72=종료시각;
var:cond15(false);
if sdate == var99 and (stime == var71 or (stime > var71 and stime[1] < var71)) then{
cond15 = true;
}
if sdate == var97 and (stime == var72 or (stime > var72 and stime[1] < var72 )) Then
Cond15 = false;
if cond15 == true then{
2017-04-17
208
글번호 108856
답변완료
수식부탁드립니다
최근 10일간 최고가에서 7p이상 하락하고, 최근 3일간 최고가에서 4p이상 하락하고,
최근 10일간 최고가에서 2일이 지난 후 매수
최근 10일간 최저가에서 7p이상 상승하고, 최근 3일간 최저가에서 4p이상 상승하고,
최근 10일간 최저가에서 2일이 지난 후 매도
위 시스템식을 만들고자 만들어주신 식을 아래와 같이 수정했는데 그림과 같이 최근 3일간 최저가에서 4p가 하락하지 않았어도 매수 진입이 들어갔습니다
수식 수정 부탁드립니다.
항상 감사드립니다
Input: N1(10),N2(3);
var : HHH1(0),LLL1(0),cnt(0),dd(0),hi(0),li(0),HHH2(0),LLL2(0);
if Bdate != Bdate[1] Then
dd = dd+1;
HHH1 = dayhigh;
LLL1 = daylow;
HHH2 = dayhigh;
LLL2 = daylow;
for cnt = 0 to N1
{
if dayhigh(cnt) > HHH1 Then
HHH1 = dayhigh(cnt);
if DayLow(cnt) < LLL1 Then
LLL1 = DayLow(cnt);
}
for cnt = 0 to N2 {
if dayhigh(cnt) > HHH2 Then
HHH2 = dayhigh(cnt);
if DayLow(cnt) < LLL2 Then
LLL2 = DayLow(cnt);
}
#당일최고가 N일 최고가이면 날짜수 저장
if dayhigh == HHH1 Then
Hi = DD;
#당일최저가 N일 최저가이면 날짜수 저장
if DayLow == LLL1 Then
Li = DD;
# 매수/매도
if C <= HHH1-7.0 AND DD > HI + 2 and C <= HHH2-4.0 Then 매수조건
2017-04-15
232
글번호 108855
답변완료
부탁드립니다.
전일 고저폭보다 시가에서 더 많음 매수, 적음 매도..
청산은 다음날 시가
손절은 전일 고저폭 레인지의 반을 넘엇을때
감사합니다..
2017-04-15
202
글번호 108854
답변완료
안녕하세요
아래 고점 저점 이 표시되어질때 고점에서 저점선이 그어질때의 -수익율
저점에서 고점선이 그어질때의 +수익율을 마지막봉에 표시되게 부탁드립니다.
기본차트속성에서 고점/저점 대비율 과 비슷할꺼로 보입니다.
현재는 고저점에 가격이 표시되어지는데 여기에 수익율도 같이 표시합니다.
Input:length(50);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),T(0),
Text1(0),처리구분("");
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],
sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],
NumToStr(고점[1,1],1));
Text_SetStyle(Text1, 0, 0);#(Text1, 2, 1);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],
sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],
NumToStr(저점[1,1],1));
Text_SetStyle(Text1, 2, 0);#(Text1, 2, 0);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,BLUE);
If 처리구분 == "고점처리" Then
T = 1;
If 처리구분 == "저점처리" Then
T = -1;
2017-04-17
206
글번호 108853
답변완료
지표식 부탁 드립니다.
1. 답변 항상 감사드립니다.
2. 해선 분봉차트(예를 들면 30분봉차트)에서
오늘이 월요일이라면 전주 월요일부터 금요일까지의 분봉종가누적,
오늘이 화요일이라면 전주 화요일부터 금주 월요일까지의 분봉종가누적,
오늘이 수요일이라면 전주 수요일부터 금주 화요일까지의 분봉종가누적...
이런식으로 일주일 분봉종가누적을 구하는 식을 부탁드립니다.
2017-04-15
231
글번호 108852
답변완료
지표식 문의드립니다.
아래의 시스템식을 차트에서 볼 수 있도록
매수라인
매도라인
매수추적스탑라인
매도추적스탑라인
을 작성하여 주시기 바라겠습니다.
1. 시스템식 1
Input : DayMult(0.25), Mult(5.5), tt(1), N(12); //m tt 변수 사용
var : cnt(0),sum(0),mav(0),sum1(0),mav1(0);
Var1 = (DayHigh(1)-DayLow(1)) * DayMult;
sum = 0;
sum1 = 0;
for cnt = 0 to N-1{
sum = sum + DayClose(cnt);
sum1 = sum1 + DayClose(cnt+1);
}
mav = sum/N;
mav1 = sum1/N;
# 진입
If EntriesToday(date) < tt and stime < 120000 Then {
if mav >mav1 and Bids > asks then
Buy("B2", AtStop, DayOpen+Var1);
if mav <mav1 and Bids < asks Then
Sell("S2", AtStop, DayOpen-Var1);
}
# 청산
Var3 = Highest(H, BarsSinceEntry+1)-ATR(15)*Mult;
Var4 = Lowest(L, BarsSinceEntry+1)+ATR(15)*Mult;
ExitLong("EL1", AtStop, Var3);
ExitShort("ES1", AtStop, Var4);
SetStopLoss(1, PercentStop);
SetStopEndofday(1450);
2. 시스템식 2
Input : Period(14), ADXRange(45), SV(0.2), tt(1), AtrMult(3);
Var : PDI(0), MDI(0), ADXV(0), HADX(0), FixADX(0), PosHigh(0), PosLow(0);
PDI = Diplus(Period);
MDI = DIMinus(Period);
ADXV = ADX(Period);
HADX = Highest(ADXV, DayIndex+1);
# 진입
If Date <> Date[1] Then FixADX = HADX[1];
If FixADX < ADXRange and ADXV > ADXV[2] and stime<120000 Then {
If PDI > MDI and C > DayOpen + SV and EntriesToday(Date)<tt and Bids > asks Then Buy();
If PDI < MDI and C < DayOpen - SV and EntriesToday(Date)<tt and Bids < Asks Then Sell();
}
# 청산
PosHigh = Highest(H, BarsSinceEntry+1);
PosLow = Lowest(L, BarsSinceEntry+1);
If MarketPosition <> 0 Then {
ExitLong("EL_추적ATR", AtStop, PosHigh-ATR(20) * AtrMult);
ExitShort("ES_추적ATR", AtStop, PosLow+ATR(20) * AtrMult);
}
SetStopLoss(1.5);
SetStopEndofday(1440);
감사합니다.
2017-04-15
248
글번호 108851