커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6127
글번호 230811
답변완료
문의 드립니다.
안녕하세요.. 문의 드립니다.
해외선물거래 입니다.
매도 진입 : 종가가 볼린저 밴드 (20,2) 상단선 위에 있거나 (or),
볼린전밴드 상단선과 1%이내로 이격 되어 있는 상태에서
macd(5.20.2)선이 시그널선을 crossdown 발생 후 (첫번째 신호)
다시한번 macd(5.20.2)선이 시그널선을 crossdown 발생 (n번째 신호)
macd 기준선과 이격이 n번째신호, 첫번째신호 순이며,(n번째가 가깝고 첫번째가 멀리 있음)
신호발생가격은 첫번째 신호 발생가격보다 n번째 신호 발생가격이 20틱이상 높으면 매도 진입
매수 진입 : 종가가 볼린저 밴드 (20,2) 하단선 아래에 있거나 (or),
볼린전밴드 하단선과 1%이내로 이격 되어 있는 상태에서
macd(5.20.2)선이 시그널선을 crossup 발생 후 (첫번째 신호)
다시 한번 macd(5.20.2)선이 시그널선을 crossup 발생 (n번째 신호)
macd 기준선과 이격이 n번째신호, 첫번째신호 순이며,(n번째가 가깝고 첫번째가 멀리 있음)
신호발생가격은 첫번째 신호 발생가격보다 n번째 신호 발생가격이 20틱 이상 낮으면 매수 진입
청산 : 50틱 수익 발생후 최고수익의 30%하락시 청산
가변 변수 설정은 : macd와 볼린저밴드 변수로 해주십시요.
2018-08-19
167
글번호 121438
답변완료
엑셀로 출력할수있게 부탁드립니다
1.상하한가 30%이후 기준으로
(일봉상)
거래대금 500억 이상의 상한가 출현시
상한가 당일의 시.고.저.종.거래대금.5.10.20.60.120이평값과
상한가이후의 N일까지 (N은 외부변수로 빼주세요)
시.고.저.종.거래대금.5.10.20.60.120이평값을 엑셀로 출력할수 있게 만들어주세요
(거래대금은 꼭 일봉상 완성된봉의 거래대금이 출력될수 있도록 부탁드립니다)
2.위에 조건에서 N일까지가 아니라 일봉상 종가가 20이평아래로 떨어질때까지 엑셀로 출력
하도록 만들어주세요
항상 고맙습니다
수고하세요!
2018-08-20
173
글번호 121437
답변완료
Moving Average Oscllator
MAO(Moving Average Oscllator -기본 변수값)매매수식 부탁합니다
(1) MAO가 상승하면 매수하고 하락하면 매도
(2) MAO가 기준선을 상향 돌파하면 매수, 기준선을 하향 돌파하면 매도
2018-08-19
175
글번호 121436
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2018-08-18
11
글번호 121434
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
아래 전략은 진입횟수 1로 해도 하루 진입횟수를 초과해서 진입하더라구요. 어떻게 수정해야 하나요?
/*
1. 전략내용
LRL지표의 변화율이(현재봉과 두봉전) 상승하면서 일정값 이상이면 매수, 하락하면서 일정값 이하면 매도
매수포지션 상태에서 진입후 LRL의 최고가에서 일정값 이상 하락하면 매도
매도포지션 상태에서 진입후 LRL의 최저가에서 일정값 이상 상승하면 매수
2. 기타
LRL지표를 이용하여 TrailingStop과 같은 기능을 구현한게 눈에 띔
매수와 매도 변수를 각각 따로 최적화 하는 것이 갠적으로 걸림..
*/
inputs: ndays(30),//10~100(10)
pctup(0.01),//0.001~0.01(0.001)
pctdn(0.005),//0.001~0.01(0.001)
jmpup(0.20),//0.10~0.60(0.02)
jmpdn(0.18);//0.10~0.60(0.02)
vars: pf(0),le(0),se(0);
pf = LRL(close, ndays);
if marketposition == 0 then begin
if pf / pf[2]*100 > 100 + jmpup then begin
buy("B1", atmarket);
le = 1;
end;
if pf / pf[2]*100 < 100 - jmpdn then begin
sell("S1", atmarket);
se = 1;
end;
end;
input :
진입횟수(1),
손절률(1),
익절률(1)
;
var : count(0),T1(0);
input : 진입시간(90000),제한시간(150000),청산시간(153400);
var : Tcond(false);
SetStopLoss(손절률,PercentStop);
SetStopProfittarget(익절률,PercentStop);
if stime == 청산시간 or (stime > 청산시간 and stime < 청산시간) Then{
Tcond = false;
if MarketPosition == 1 Then
exitlong();
if MarketPosition == -1 Then
ExitShort();
}
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) then
{
Tcond = true;
T1 = TotalTrades;
}
if (sdate != sdate[1] and stime >= 제한시간) or
(sdate == sdate[1] and stime >= 제한시간 and stime[1] < 제한시간) then
{
Tcond = false;
}
if MarketPosition == 0 Then
count = TotalTrades-T1;
Else
count = TotalTrades-T1+1;
if Count < 진입횟수 and Tcond == true then
{
if marketposition == 1 then begin
if pf < highest(pf, le) * (1 - pctdn) then begin
sell("S2", atmarket);
le = 0;
end;
le = le + 1;
end;
if marketposition == -1 then begin
if pf > lowest(pf, se) * (1 + pctup) then begin
buy("B2", atmarket);
se = 0;
end;
se = se + 1;
end;
}
2. 기타
아래 전략 시뮬차트에서도 쓸 수 있게 수정부탁드립니다.
Inputs: TrixLen(3), TSLen(8), ZeroCrss("Y"), AvgCrss("Y");
Vars: TRXval(0), AvgTRX(0), Zero(0), NewTrix(0);
Vars: LogP(0), alpha(0), sm1(0), sm2(0), sm3(0);
//newTrix 시작
LogP = Log(Close);
IF CurrentBar == 1 Then Begin
sm1 = LogP;
sm2 = LogP;
sm3 = LogP;
alpha = 2 / (TRIXLen + 1);
End
Else Begin
sm1 = (LogP - sm1) * alpha + sm1;
sm2 = (sm1 - sm2) * alpha + sm2;
sm3 = (sm2 - sm3) * alpha + sm3;
NewTrix = (sm3 - sm3[1]) * 100;
End;
//newTrix 끝
TRXval = NewTRIX;
AvgTRX = LRL(TRXval, TSLen);
IF UpperStr(ZeroCrss) == "Y" Then Begin
IF CrossUp(TRXval , Zero) Then
Buy("B_ZCrss");
IF CrossDown(TRXval , Zero) Then
Sell("S_ZCrss");
End;
IF UpperStr(AvgCrss) == "Y" Then Begin
IF CrossUp(TRXval , AvgTRX) Then
Buy("B_AvgCrss");
IF Crossdown(TRXval , AvgTRX) Then
Sell("S_AvgCrssS");
End;
3. 기타
전에 만들어주신 수식인데요. 한번 진입한 뒤 진입을 안합니다. 가장 첫 거래때 손실이면 0이 되서 진입을 안하는 건지 이유를 잘 모르겠습니다. 수정 부탁드립니다.
1.
input : 설정수량(1),증감수량(1),제한수량(10);
var : vol(0);
if MarketPosition == 0 then
{
if TotalTrades == 0 Then
vol = 설정수량;
Else
{
if PositionProfit(1) >= 0 Then
vol = MaxContracts(1)+증감수량;
else
vol = MaxContracts(1)-증감수량;
}
}
else
{
if PositionProfit(0) >= 0 Then
vol = MaxContracts(0)+증감수량;
else
vol = MaxContracts(0)-증감수량;
}
if MarketPosition <= 0 and vol <= 제한수량 and 매수진입조건 Then
{
Buy("b",OnClose,def,vol);
}
if MarketPosition >= 0 and vol <= 제한수량 and 매도진입조건 Then
{
sell("s",OnClose,def,vol);
}
2
input : 설정수량(1),증감수량(1),제한수량(10);
var : vol(0);
if MarketPosition == 0 then
{
if TotalTrades == 0 Then
vol = 설정수량;
Else
{
if PositionProfit(1) >= 0 Then
vol = MaxContracts(1)+증감수량;
}
}
else
{
if PositionProfit(0) >= 0 Then
vol = MaxContracts(0)+증감수량;
}
if MarketPosition <= 0 and vol <= 제한수량 and 매수진입조건 Then
{
Buy("b",OnClose,def,vol);
}
if MarketPosition >= 0 and vol <= 제한수량 and 매도진입조건 Then
{
sell("s",OnClose,def,vol);
}
2018-08-19
207
글번호 121433
세발낚지 님에 의해서 삭제되었습니다.
2018-08-18
31
글번호 121432
답변완료
검증기간을 늘릴려면 어떻게 해야되나요?
input : Period(2),익절틱수(1),손절틱수(30),하락틱수(1);
input : P1(100),P2(1);
var : DParity(0);
DParity = Disparity(Period);
if CrossDown(DParity,P1) Then
Buy("매수");
if CrossUp(DParity,P2) Then
Sell("매도");
SetStopTrailing(PriceScale*하락틱수,PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수, PointStop);
2018-12-02
233
글번호 121431
답변완료
이격도접점표시3
안녕하세요 관리자님!!
날씨가 많이 선선해졌습니다. 저의 수익도 관리자님 덕에 시원하게 불어나리라 믿습니다.ㅋㅋ
아래지표는 前주의 최고,최저가에서 시작하는 이격도를 제가 편집한 건데요
접점이 발생합니다. 저번처럼 이 접점발생시 이격도지표내에서 수평선을 표현하고 싶습니다.
왠만한건 제가 편집하겠는데 이건 좀 어렵습니다. 부탁드립니다.
-아 래-
var : wo(0),wh(0),wl(0);
var : wo1(0),wh1(0),wl1(0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
{
WO = O;
WH = H;
WL = L;
WO1 = WO[1];
WH1 = WH[1];
WL1 = WL[1];
}
if h > wh Then
wh = h;
if l < wl Then
wl = l;
if WO1 > 0 then
{
var1 = C/WO1*100-100;
plot1(var1,"시가");
}
if WH1 > 0 then
{
var2 = -(C/WH1*100-100);
plot2(var2,"고가");
}
if WL1 > 0 then
{
var3 = C/WL1*100-100;
plot3(var3,"저가");
}
PlotBaseLine1(0,"중심선");
2018-08-17
238
글번호 121430
답변완료
이평선 매매
안녕하세요
현물 주식 입니다
1,
월봉 차트 에서보면 단순이동평균선 3 >7 > 28 > 14 > 56 이렇게 나열되는 종목있는데요
나열된 상테 에서
주가가 또는 현재 값 이 단순이동평균선 14 이평 만나는경우 매수
월봉 차트 에서보면 단순이동평균선 3 < 7 < 28 < 14 < 56 이렇게 나열되는 종목있는데요
역나열된 상테 에서
주가가 또는 현재 값 이 단순이동평균선 14 이평 만나는경우 매도
2,
주봉 차트 에서보면 단순이동평균선 3 >7 > 28 > 14 > 56 이렇게 나열되는 종목있는데요
나열된 상테 에서
주가가 또는 현재 값 이 단순이동평균선 14 이평 만나는경우 매수
주봉 차트 에서보면 단순이동평균선 3 < 7 < 28 < 14 < 56 이렇게 나열되는 종목있는데요
역나열된 상테 에서
주가가 또는 현재 값 이 단순이동평균선 14 이평 만나는경우 매도
3,
일봉 차트 에서보면 단순이동평균선 3 >7 > 28 > 14 > 56 이렇게 나열되는 종목있는데요
나열된 상테 에서
주가가 또는 현재 값 이 단순이동평균선 14 이평 만나는경우 매수
일봉 차트 에서보면 단순이동평균선 3 < 7 < 28 < 14 < 56 이렇게 나열되는 종목있는데요
역나열된 상테 에서
주가가 또는 현재 값 이 단순이동평균선 14 이평 만나는경우 매도
하는 식 부탁요 감사합니다^^
2018-08-17
267
글번호 121426