커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4681
글번호 230811
답변완료
일목균형표
일목균형표 하단을 돌파하고 구름대 진입시 매수
일목균형표 상단을 추락하고 구름대 진입시 매도하는 식을 구합니다
감사합니다
2016-02-12
189
글번호 95342
답변완료
추적+1개씩더하기
# 추적청산
input : AtrMult(9.), AtrPeriod(9);
var : AtrVal(0), posHigh(0), posLow(0);
# ATR 추적청산
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+2);
PosLow = Lowest(L,BarsSinceEntry+2);
If MarketPosition == 1 and C < ma(c,20) Then
sell("ATR1", AtStop, PosHigh - ATRVal);
If MarketPosition == -1 and C > ma(c,20) Then
buy("ATR2", AtStop, PosLow + ATRVal);
위추적매매에서
손실마다1개씩더투자할수있게부탁합니다
즉1개 투자후손실시 2개 또손실시 3개...목표가나오온후 원상복귀 다시한개씩투자
감사합니다
2016-02-12
134
글번호 95341
답변완료
이전글 추가문의
아래글에서 맨아래 (1) 번 질문을 다음과 같이 약간 수정합니다.
1) 9시 30분 이전에 시초가 대비 16% 상승한 경우에,
16%이상 상승후 하락반전하는 상황을 가정한다.
16% 가격 대비 5% 이상 하락한 이후에,
신저점대비 5% 상승한 가격에 매수함.(역트레일스탑(?) 적용)
-> 예로, 16% 가격 대비 5% 하락하고, 여기서 7% 더 추가 하락하는 경우에
7% 추가하락가격을 저점으로 하여, 여기서 5% 상승한 가격에 매수함.
(5% 하락이후, 신저점대비 5% 재상승한 가격에 매수함. 트레일스탑
을 익절이 아닌 저가매수에 적용함)
이때, 트레일스탑(익절)은 매수가격이 아닌, 16% 상승가격 대비 15% 상승한
가격으로 정함. (-> 매수가격에 관계없이 시초가 대비 16% 상승가격의 1.15배
가격으로 고정. 이 경우, 트레일감소폭은 3%로 고정)
손절은 매수가격 대비 10% 하락한 가격으로 고정함.
만약, 시초가 대비 16% 상승 못하면 매수 안함.
이상입니다.
수식 부탁합니다.
==============================================================
안녕하세요
예스스탁입니다.
트레일링 스탑은 일정 수익이후 감소폭도 같이 지정하셔야 합니다.
수익폭만 있어 기존수식에서와 같이 1% 감소로 지정했습니다.
var : TT(0),T1(0),Entry(0),T(0);
TT = TotalTrades;
if date != date[1] Then{
T1 = TT[1];
T = 0;
}
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if T == 0 and stime < 93000 and H >= dayopen*1.16 Then
T = 1;
if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 Then
buy("b1",AtLimit,DayHigh*0.95);
if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then
buy("b2",AtStop,Dayopen*1.16);
if MarketPosition == 1 and IsEntryName("b1") == true Then{
ExitLong("BL1",AtStop,EntryPrice*0.91);
if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then
ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099);
}
if MarketPosition == 1 and IsEntryName("b2") == true Then{
ExitLong("BL2",AtStop,EntryPrice*0.85);
if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then
ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099);
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 시스템 문의..
> 아래와 같은 수식을 받아 쓰고 있읍니다.
(당일 시초가 대비 16% 상승하면 매수하여
트레일스탑 15%, 손절 15% 작용)
var : TT(0),T1(0),Entry(0);
TT = TotalTrades;
if date != date[1] Then
T1 = TT[1];
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if MarketPosition == 0 and stime < 100000 and entry < 1 Then
buy("b",AtStop,dayopen*1.16);
#손절
SetStopLoss(15,PercentStop);
#트레일링스탑
SetStopTrailing(1,15,PercentStop,1);
위 식을 아래와 같이 좀더 세분화하고 싶읍니다.
1) 9:30 이전에 시초가 대비 16% 상승한 경우에,
16% 가격 대비 5% 하락한 가격에 매수함.
-> 16%이상 상승후 하락반전하는 상황에서
5% 이상 하락시에 그 가격으로 매수 들어감.
(16% 상승후 하락반전하여 재상승하는 경우 가정함)
(트레일스탑 22%, 손절 9%)
만약, 시초가 대비 16% 상승 못하면 매수 안함.
2) 9:30 이후
시초가 대비 16% 상승한 가격에 매수하여
트레일스탑 15%, 손절 15%
가능하겠읍니까?
2016-02-12
148
글번호 95340
답변완료
질문 있습니다.
안녕하세요~
틱 차트에서 90분 스토캐스틱 지표를 사용할려고 합니다. 그래서 90분 DATA2 로 추가 시켜 놓고 아래와 같이 코딩을 했는데 제대로 된 값이 출력이 안됩니다..
if date != date[1] Then{
gubun = 0;
}
StoK = data2(StochasticsK(StoPeriod_01,StoPeriod_02));
StoD = data2(StochasticsD(StoPeriod,StoPeriod_01,StoPeriod_02));
if StoK >= StoD then gubun = 1;
if StoK < StoD then gubun = -1;
if gubun != 0 Then
{
90분 스토캐스틱 방향 진입
} else {
90분 스토캐스틱 반대 반향 진입
}
모든 신호가 90분 스토캐스틱 방향 진입으로 뜹니다.. 무엇이 문제일까요?
2016-02-12
139
글번호 95337
답변완료
부탁 드립니다.
항상 도움 주셔서 감사 드립니다.
46355번의 아래 수식 답변 내용중에서
일자 및 시간을 삭제하고
ma(avgv,p)의 형식으로 표현 가능하겠는지요?
미리 감사 드립니다.
46355답변 수식)
input:일자(20160205);
input : 시작시간(100000),종료시간(210000);
var : mav(0),avgv(0),sum1(0),diff(0),Cond1(false),idx(0);
var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0);
mav = ma(C,1);
if sdate == 일자 and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) then{
Cond1 = true;
var1 = mav;
idx = 0;
var11 = TimeToMinutes(stime)*60;
var12 = FracPortion(stime/100)*100;//시작시간 초
stimeTosecond = var11+var12;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then
Cond1 = false;
if cond1 == true then{
value1 = TimeToMinutes(time)*60;
value2 = FracPortion(time/100)*100;//긑시간 초
timeTosecond = value1+value2;
SecondMakecandle = timeTosecond-stimeTosecond;
diff = mav-var1;
sum1 = sum1+diff;
idx = idx+1;
avgv = sum1/SecondMakecandle;
plot1(avgv);
}
2016-02-12
154
글번호 95336
매매초보 님에 의해서 삭제되었습니다.
2016-02-12
16
글번호 95332
답변완료
질문드립니다.
아래의 식과 같이 봉이 20일선을 교차(골든, 데드)할 때
누적횟수를 나타내는 식을 사용하고 있는데요.
여기서 교차(골든, 데드)가 아니라 봉의 종가기준으로 돌파(골든 돌파, 데드 돌파)할 때
누적횟수로 나타내는 식으로 수정할 수 있을까요?
감사합니다.
var : T(0);
if date != date[1] Then
T = 0;
if CrossUp(C, ma(C,20)) then
T = T+1;
if CrossDown(C, ma(C,20)) then
T = T+1;
plot1(T);
2016-02-12
117
글번호 95331
답변완료
변환부탁드립니다
안녕하세요
예스로 변환부탁드립니다.
RSIDelta = MOMENTUM(RSI(CLOSE,21),14)
RSIsma = AVERAGE(RSI(CLOSE,5)5)
Plot1(RSIdelta+RSIsma,"Plot1");
Plot2(average((plot1),10),"Plot2");
Plot3(average((plot1),20),"Plot3");
2016-02-12
149
글번호 95319
답변완료
이전글 추가문의...
잔고는 실제잔고입니다.
그러면 예스스팟으론 가능하겠읍니까?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템 문의...
>
안녕하세요
예스스탁입니다.
문의하신 내용에 잔고가 실제 잔고이시면
예스랭귀지 수식에서 알수 없습니다.
신호상 포지션이면 기존수식에 아래와 같이 작성해 추가하시면 됩니다.
지정한 시간에 신호를 내기 위해서는
전봉에서 조건을 충종시켜야 합니다.
차트 주기에 따라 시간이 다르므로
수식에 주석으로 적어드린 차트 기준봉 유의하시기 바랍니다.
1
#1분차트
#시초가에 청산
if stime == 151500 then{
if MarketPosition == 1 Then
exitlong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("bx",AtMarket);
}
2.
#30초 차트에 적용
#9시 30초
if stime == 90000 then{
if MarketPosition == 1 Then
exitlong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("bx",AtMarket);
}
3
#1분 차트에 적용
#12시40분에 청산
if stime == 123900 then{
if MarketPosition == 1 Then
exitlong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("bx",AtMarket);
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 시스템 문의...
> 연결선물지수 하고 있읍니다.
잔고에 매수계약이 있으면 (매수포지션이면), 매도체결하고,
예) 잔고 (매수 2계약) -> 매도 2계약
잔고에 매도계약이 있으면 (매도포지션이면), 매수체결하는
예) 잔고 (매도 2계약) -> 매수 2계약
수식 부탁합니다.
아래의 3가지 경우로 부탁합니다.
1) 시초가 매매
2) 9시 0분 30초 매매
3) 12시 40분 매매
2016-02-12
153
글번호 95318