커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3502
글번호 230811
불타는토끼 님에 의해서 삭제되었습니다.
2020-01-13
7
글번호 135121
답변완료
부탁드립니다.
var : TL1(0), TL2(0);
if stime == 090000 and BarInterval <> 1 then {
TL1 = TL_New(sdate, stime, 0, sdate, stime,999999999);
TL2 = TL_New_self(sdate, stime, -999999, sdate, stime,999999);
TL_SetColor(TL1, RGB(180,182,182));
TL_SetColor(TL2, RGB(180,182,182));
}
var1 = (dayHigh-dayClose(1))/dayClose(1)*100;
var2 = (C - dayClose(1))/dayClose(1)*100;
var3 = (dayLow-dayClose(1))/dayClose(1)*100;
if C >= dayClose(1) then {
plot1(var2,"몸통",red);
Else {
plot1(var2,"몸통",blue);
위수식을 빨강매수 파랑 매도 화살표로 부탁드립니다.
2020-01-13
189
글번호 135120
답변완료
수식 문의
수식 문의 :
아래 수식의 MACD osc 에 대한 당일 평균 이평선을 구하고 싶습니다.
Input : shortPeriod(12), longPeriod(26), Period(9);
Var : MACDv(0), MACDsig(0),macdosc(0) ;
MACDv = MACD(shortPeriod, longPeriod);
MACDsig = ema(MACDv,Period);
macdosc = MACDv-ema(MACDv,Period);
2020-01-13
197
글번호 135105
답변완료
함수요청
안녕하세요?
아래 스크립트 검증 부탁드립니다.
(전략과 컨셉이 상이하다면 새롭게 작성 요청드립니다.)
전략은 다음과 같습니다.
항셍지수선물 3분봉으로 거래를 하고자 하는데 T장(10:15~17:30)에서만 생성하고자 합니다.
해당봉의 저가가 볼린저밴드 상단 위에 위치해 있으면 익봉 시가 매도
해당봉의 고가가 볼린저밴드 하단 아래에 위치해 있으면 익봉 시가 매수
진입 후 종가가 볼린저밴드 중심선(20ma)을 크로스하면 익봉 시가에 청산
진입 기준으로 매매횟수가 최대 2회까지이며
17시에 시간청산하고자 합니다.
input : BBP(20),dv(2);
var : mav(0),bbup(0),BBdn(0),BBmd(0),entry(0);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
if (sdate != sdate[1] and stime >= 101500) or
(sdate != sdate[1] and stime >= 101500 and stime[1] < 101500) Then
entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if stime >= 101500 and stime < 170000 then
{
if entry < 3 and L > bbup Then
sell("s");
if entry < 3 and H < bbdn Then
buy("b");
if MarketPosition == 1 and Crossup(C,bbmd) Then
ExitLong("bx");
if MarketPosition == -1 and Crossdown(C,bbmd) Then
ExitShort("sx");
}
SetStopEndofday(170000);
2020-01-13
176
글번호 135101
답변완료
수식작성 문의 드립니다~!
시그널 : 종가상 highest(c,26) 상향돌파시 매수시그널, lowest(c,26) 하향돌파시 매도 시그널 발생
매수 : 시그널 발생 후의 3번째 봉의 Close가 시그널이 발생한 캔들의 Close보다 높으면 매수
매도 : 시그널 발생 후의 3번째 봉의 Close가 시그널이 발생한 캔들의 Close보다 낮으면 매도
피라미딩 (매수): 첫 번째 매수 포지션 진입 이후의 캔들 중 low값이 가격이 중신선(highest(c,26) + lowest(c,36)의 평균값) 보다 아래로 내려갔다가 lowest(c,26)을 갱신하지 않고서 highest(c,26)을 종가상 상방돌파 하면 추가매수. 최대 3번까지 피라미딩.
피라미딩 (매도): 첫 번째 매도 포지션 진입 이후의 캔들 중 high값이 중신선(highest(c,26) + lowest(c,36)의 평균값) 보다 위로 올라갔다가 highest(c,26)을 갱신하지 않고서 lowest(c,26)을 종가상 하방돌파 하면 추가매도. 최대 3번까지 피라미딩.
포지션 진입규모 : 매수/매도 주문이 발생하는 날의 atr(5)*2의 값이 전체 자산의 1프로가 되도록 진입수량 세팅.
(ex 매수가 : 256.45, 매수일의 atr(5)의 값이 1.56P일 경우 손절선은 256.45-(1.56*2)의 값인 3.12P가 전체 자산의 1%rk 되도록 진입 규모 계산하는 수식.)
손절선 (매수): (포지션 진입 단가) - (매수 진입일의 atr(5)*2)
손절선 (매도): (포지션 진입 단가) + (매도 진입일의 atr(5)*2)
트레일링 스탑 : 3번의 피라미딩 이후에 20선 이탈시 전량매도 (매수/매도 모두 동일한 조건)
2020-01-13
199
글번호 135100
답변완료
재문의합니다.
아래수식이 진입이 되지 않고 있습니다.
안녕하세요
예스스탁입니다.
var : t(0);
var1 = (O+C)/2;
var2 = ma(C,30);
if t <= 0 and crossup(var1,var3) then
{
t = 1;
if C > O Then
{
t = 2;
value1 = c;
}
}
if t >= 0 and CrossDown(var1,var3) then
{
t = -1;
if C < O Then
{
t = -2;
value1 = c;
}
}
if t == 2 Then
{
if MarketPosition == 0 and c > value1 Then
{
buy();
t = 3;
}
}
if t == -2 Then
{
if MarketPosition == 0 and c < value1 Then
{
sell();
t = -3;
}
}
if MarketPosition == 1 and CrossDown(var1,var2) Then
exitlong();
if MarketPosition == -1 and CrossUp(var1,var2) Then
ExitShort();
즐거운 하루되세요
> 종호 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 중간가격을 mid = (시가 + 종가)/2 ;
이라 정의 합니다.
매수:
무포지션에서
양봉이면서 동시에 중간가격 mid 가 30 이평선 위에 있으면
즉 mid > ma(c.30) 이면 매수조건= true 가 되고
중간가격 mid가 최초로 30 이평선 상방 돌파한 봉의 그 봉의 종가가 매수기준가가 됩니다.
매수기준가 = c ; 가 되고
그 이후의 발생하는 이후 언제가의 봉의 중간가격 mid 가 mid > ma(c.30) 이면서
종가 c > 매수기준가
이면 매수합니다.
단 무포지션에서 매수조건= true 가 되고 매수전에 중간가격 mid 가 mid < ma(c.30)
되면 매수조건= false 가 되어 매수조건은 취소됩니다.
매수청산:
매수후에 중간가격 mid 가 mid < ma(c.30)
되면 청산합니다.
매도:
무포지션에서
음봉이면서 동시에 중간가격 mid 가 30 이평선 아래에 있으면
즉 mid < ma(c.30) 이면 매도조건= true 가 되고
중간가격 mid가 최초로 30 이평선 하방 돌파한 봉의 그 봉의 종가가 매도기준가가 됩니다.
매도기준가 = c ; 가 되고
그 이후의 발생하는 이후 언제가의 봉의 중간가격 mid 가 mid< ma(c.30) 이면서
종가 c < 매도기준가
이면 매도합니다.
단 무포지션에서 매도조건= true 가 되고 매도전에 중간가격 mid 가 mid > ma(c.30)
되면 매도조건= false 가 되어 매도조건은 취소됩니다.
매도청산:
매수후에 중간가격 mid 가 mid > ma(c.30)
되면 청산합니다.
2020-01-13
202
글번호 135098
답변완료
DayClose 값이 항상 Close와 같게 나옵니다.
MessageLog("Close: %.0f, DayClose:%.0f, Open:%.0f, DayOpen:%.0f, Volume:%.0f, DayVolume:%.0f", Close, DayClose(0), Open, DayOpen, Volume, DayVolume);
--------------------------------------------
DayOpen, DayVolume은 제대로 값이 나오는데 DayClose는 항상 Close와 같은 값으로 나옵니다. DayClose 값을 제대로 나오게 하려면 어떻게 해야하나요?
친절한 답변 항상 감사합니다. ^^!
2020-01-13
238
글번호 135097
답변완료
부탁드립니다.
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선+기준선)/2;
선행스팬2 = (highest(H,52)+lowest(L,52))/2;
if CrossDown(선행스팬1[25],선행스팬2[25]) then
Var1 = H;
plot1 (선행스팬1[25], "line1");
plot2 (선행스팬2[25], "line2");
Plot3 (Var1, "line3", BLACK);
plot4(C,"현재가",iff(C>var2,RED,BLUE));
위수식으로 시스템식부탁합니다.
Plot3 (Var1, "line3", BLACK);라인을
plot4(C,"현재가",iff(C>var2,RED,BLUE));가 교차할때
화살표 나오게 해주세요.
2020-01-13
173
글번호 135094
답변완료
지표 수정 부탁드립니다
안녕하세요.
항상 수고가 많으십니다.
질문드립니다 -----------------------------------------------------------------------
아래 수식은 삼성전자, SK하이닉스, POSCO 의 전일대비 오늘 상승률을
지표에 표시하려는 수식입니다.
var : data1_전일종가(0, data1);
var : data2_전일종가(0, data2);
var : data3_전일종가(0, data3);
var : data1_등락률(0, data1);
var : data2_등락률(0, data2);
var : data3_등락률(0, data3);
if DayIndex == 0 Then
{
data1_전일종가 = data1(DayClose(1));
data2_전일종가 = data2(DayClose(1));
data3_전일종가 = data3(DayClose(1));
data1_등락률 = (data1(c) - data1_전일종가)/data1_전일종가*100;
data2_등락률 = (data2(c) - data2_전일종가)/data2_전일종가*100;
data3_등락률 = (data3(c) - data3_전일종가)/data3_전일종가*100;
}
if DayIndex >= 0 and stime <= 154500 Then
{
data1_등락률 = (data1(c) - data1_전일종가)/data1_전일종가*100;
data2_등락률 = (data2(c) - data2_전일종가)/data2_전일종가*100;
data3_등락률 = (data3(c) - data3_전일종가)/data3_전일종가*100;
}
plot1(data1_등락률, "삼전");
plot2(data2_등락률, "SK하이닉스");
plot3(data3_등락률, "POSCO");
위 수식의 잘못 된 부분을 수정 부탁드립니다.
-------------------------------------------------------------------------------------
항상 감사드립니다.
좋은 일만 많이 생기시기를 ......
2020-01-13
195
글번호 135091