커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5448
글번호 230811
답변완료
문의드립니다.
안녕하세요. 수고많으십니다.
1. 파라볼릭이 양이면 2점
2. macd, signal 골드면 1점
3. obv, signal 골드면 1점
4. heiken ashi이 상승이면 1점
5. 시가위에 봉이 종가상 올라타면 1점
6. 당일 고가, 저가의 평균가선 위에 봉이 종가상 올라타면 1점
총 점수는 7점 만점입니다.
양봉이고 7점중에 5점 이상이면(5점, 6점, 7점) 투자금의 50% 매수
양봉이고 7점중에 6점 이상이면(6점, 7점) 나머지 투자금의 50%도 매수
(만일 4점 이하에서 바로 6점 이상이 된다면 바로 100% 매수)
음봉이고 4점 이하면(1점, 2점, 3점, 4점) 전체 매수량의 50% 매도
음봉이고 3점 이하면(1점, 2점, 3점) 전체 매수량의 100% 매도
(만일 5점 이상에서 바로 3점이하가 된다면 바로 100% 매도)
그외 원하는 추가조건은
1. [당일청산] 3시에 전량 청산
2. [트레일링 스탑] 평단기준 5% 이상 수익후 3%이상 밀리면 전량 청산
3. [손절] 평단기준 8%에 도달하면 무조건 전량 청산
마지막으로 투자금 대비 절반만 매수했는데 절반 매도 조건이 만족된다면
전량 청산이 아닌 절반에서 절반만 매도하는 것을 가능하다면 원합니다.
또한 절반 매수후 그기서 절반을 매도했는데 다시 절반 매수조건이 만족하면
남은 투자금에서 절반을 추가로 매수하는 것을 가능하다면 원합니다.
그리고 점수나 조건을 수정하면서 테스트해볼 수 있게
간단한 주석도 좀 부탁드립니다.
좀 복잡한 내용하고 많은 내용이라 죄송합니다만 잘 부탁드리겠습니다.
그리고 노고에 미리 감사드립니다.
2020-01-24
309
글번호 135404
답변완료
문의합니다.
input: PeriodRSI(14); // Indicator period
input: StepSizeFast(5); // Fast step
input: StepSizeSlow(15); // Slow step
var: fmin(9999),fmax(-9999);
var: smin(9999),smax(-9999);
var: ftrend(1),strend(1);
var: RSI0(0);
//---- restore values of the variables
RSI0=RSI(PeriodRSI);
fmax=RSI0+2*StepSizeFast;
fmin=RSI0-2*StepSizeFast;
if(RSI0>fmax[1]) then ftrend=1;
if(RSI0<fmin[1]) then ftrend=-1;
if(ftrend>0 && fmin<fmin[1]) then fmin=fmin[1];
if(ftrend<0 && fmax>fmax[1]) then fmax=fmax[1];
smax=RSI0+2*StepSizeSlow;
smin=RSI0-2*StepSizeSlow;
if(RSI0>smax[1]) then strend=1;
if(RSI0<smin[1]) then strend=-1;
if(strend>0 && smin<smin[1]) then smin=smin[1];
if(strend<0 && smax>smax[1]) then smax=smax[1];
if(ftrend>0) then var3=fmin+StepSizeFast;
if(ftrend<0) then var3=fmax-StepSizeFast;
if(strend>0) then var4=smin+StepSizeSlow;
if(strend<0) then var4=smax-StepSizeSlow;
plot1(var3-var4,"diff");
PlotBaseLine3(0, "기준선0");
위수식에서 plot1 라인이 (PlotBaseLine3)기준선 교차때 화살표식 부탁합니다.
2020-01-24
307
글번호 135403
답변완료
질문 올립니다.
안녕하세요.
새해 복 많이 받으시고 번창하세요~
1.
변수들 최적화할 때에, 시뮬레이션 차트에서 최대한 많이 사용할 수 있는 Bar 수는 몇 개인지요?
차트를 보니, 아마도 2000개가 아닌가 싶은데 맞는지요?
((eFriend Golbal YesTrader 사용 중입니다))
이 것을 더 늘릴 수 있는 방법이 있을까요?
2.
항셍은 원래는 시가가 18:15 가격, 종가는 17:30의 가격으로 일봉이 표시되지만,
실질적으로는 04:00에 장이 끝나고 10:15에 개장하므로, 사실상 시초가는 10:15, 종가는 04:00으로 보는 것이 더 유용할 때가 많다고 생각이 됩니다.
그래서, 일봉 차트를, 10:15의 가격을 시가로, 04:00의 가격을 종가로 표시된 차트로 보고 싶은데 어떻게 하면 될지요?
감사합니다~
2020-01-24
274
글번호 135402
답변완료
부탁 드릴께요~~
1번 : 당일 시가 이탈 했다가 다시 시가 돌파 종목을 찾고 싶습니다.
분 주기로 나뉜다면 5분 주기로 부탁 드릴께요~^^
2번 : 15분봉으로 당일 최고 저점 캔들에 고가를 돌파 하는 종목을 잡을 수 있을까요?
꼭 좀 부탁 드립니다.
새해 복 많이 받으세요~~
2020-01-27
347
글번호 135401
답변완료
지표 재질문 입니다.
지난번에 답변 받았던 지표 틱봉을 N분봉으로 바꾸는 답변을 받아 확인해본 결과
1분봉은 표현하질 못하는거 같습니다.
변수를 1로 하여 적용시켜보니 1분봉이 아닌 일봉으로 나타나는거 같습니다.
1분봉을 표현하고 싶은데 가능할까요?
이전에 답변 받은 지표 아래에 올려놓도록 하겠습니다.
감사합니다.
input : ntime1(30);
var : TF(0),S1(0),D1(0),TM(0),cnt(0);
Array : OO[10](0), HH[10](0),LL[10](0),CC[10](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
OO[0] = O;
HH[0] = H;
LL[0] = L;
for cnt = 1 to 9
{
OO[cnt] = OO[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
plot1(OO[0],"시가");
plot2(HH[0],"고가");
plot3(LL[0],"저가");
plot4(CC[0],"종가");
}
2020-01-23
298
글번호 135400
답변완료
원하는 지점에서 진입이 되지 않아서요 확인 부탁드려요~~
나스닥 분봉 차트입니다.
왼쪽 진입은 제가 원하는 진입이아님니다.
오른쪽 진입이 제가 원하는 진입시점입니다.
가끔씩 왼쪽같이 일정부분 상승후 진입하는 결과가 있어 분석한결과는 다음과 같습니다.
RSI(14) < 40 과 심리도 (35) < 38 이하일때 매수진입 버전인데요...
추가로 일봉의 RSI(8) > 45 이상일때만 진입 하는것을 목적인데요...
1. A: (일봉 RSI(8)>45) 와 B: (분봉 RSI(14)<40 & 심리도(35)<38) 의 교집합시
"하락틱수"(변수)_만큼 아래에서 매수 진입이 되어야 하는데
시뮬레이션 결과를 보면 그렇게 진행되는 것도 있으며 어떤것은 어느정도 상승한후에 진입되
는 결과가 있어서 나름대로 생각한 경과 두가지 오류 현상을 발견하였습니다.
1. B조건((분봉 RSI(14)<40 & 심리도(35)<38)) 을 만족하나 A조건((일봉 RSI(8)>45))을 만족하지 않을 때 B조건이 충족되지 않는 상태가 되더라도 A조건이 만족되는 시점에 매수 진입함.
(A조건과 B조건의 교집합이 안되더라도 A조건이 나중에 충족되어 버리면 진입하게됨)
아마도 조건만족후 일정하락폭이하발생시 진입이라는 조건때문에 생기는 현상이라고 추정 )
--> 그게 어느 정도 상승하게되는후 매수진하게됨.,
조건만족시 일정폭 하락 시점 진입할때는 B조건이 충족되지 않아도 됨다는 전제가 있음
이부분을 특히 신경 써주셨으면 합니다.
==>
2. 위에 해당 되는 것은 하락틱수의 변수의 값이 적용되지 않음
일단 A와 B조건을 만족할때 하락틱수 만큼 아래에서 진입하는 수식 수정 부탁드려요
그리고 기타 다른 기능은 유지하는 조건입니다.
(1) A,B조건을 만족한후 하락틱수만큼 하락하지 않는 경우 초기화 (7) 일자만큼 경과된경우
초기화 되는 기능
(2) 나머지 기능도 다 동일하게 유지(즉시손절1.본전청산1등 발생시 당일 매매 중지 등등)
사용 수식 --- 진입수식까지만 기재하였습니다.
Input : RSIPeriod(14),RSI매수값(40),SimPeriod(35),심리도값(38);
Input : 초기화(7);
Input : CCI기간(30),CCI값(350);
Input : 하락틱수(50);
Input : RSIPeriod1(8),A(45);
var : cnt(0),SigSum(0),count2(0),RSIsig(0);
Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0);
var : idx(0), PreUpAvg(0), preDownAvg(0),RSIVv(0);
Array : C1[100](0);
var : CCIv(0),RSIv(0),Simri(0),BuySetup(false),DD(0),entry(0);
CCIv = CCI(CCI기간);
RSIV = RSI(RSIPeriod);
Simri = Simrido(SimPeriod);
if Bdate != Bdate[1] Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
PreUpAvg = UpAvg[1];
preDownAvg = DownAvg[1];
idx = idx + 1;
}
C1[0] = C;
If idx == RSIPeriod1+2 Then
{
UpSum = 0;
DownSum = 0;
For Counter = 0 To RSIPeriod1 - 1
{
UpAmt = C1[Counter] - C1[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else
{
DownAmt = -UpAmt;
UpAmt = 0;
}
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
}
UpAvg = UpSum / RSIPeriod1;
DownAvg = DownSum / RSIPeriod1;
}
If idx > RSIPeriod1+2 Then
{
UpAmt = C1[0] - C1[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else
{
DownAmt = -UpAmt;
UpAmt = 0;
}
UpAvg = (PreUpAvg * (RSIPeriod1 - 1) + UpAmt) / RSIPeriod1;
DownAvg = (preDownAvg * (RSIPeriod1 - 1) + DownAmt) / RSIPeriod1;
}
If UpAvg + DownAvg <> 0 Then
RSIvv = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSIvv = 0;
if bdate != bdate[1] Then
{
Entry = 0;
Condition2 = true;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if TotalTrades > TotalTrades[1] and
(IsExitName("즉시손절1",1) == true or IsExitName("본전청산1",1)) then
Condition2 = false;
Condition1 = RSIv < RSI매수값 and Simri < 심리도값;
if bdate != bdate[1] Then
{
DD = DD+1;
if var2 > 0 and DD == var2+초기화 Then
BuySetup = false;
}
if BuySetup == false and Condition1 == true and Condition1[1] == false Then
{
var1 = C;
var2 = DD;
BuySetup = true;
}
if Condition2 == true and MarketPosition == 0 and BuySetup == true and RSIVV > A Then
buy("매수",AtLimit,var1-PriceScale*하락틱수);
2020-01-24
467
글번호 135399
답변완료
수식 부탁드립니다.
안녕하세요?
아래의 수식을 { 10시 이후부터 적용 }
하려합니다
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
감사합니다.
더욱
건강하시고
행복하시길 바랍니다.
2020-01-23
288
글번호 135398
답변완료
수식작성 부탁드립니다.
안녕하세요? 간단한 수식작성 부탁드립니다.
감사합니다.
[1]
**진입
이평선 2개이용 (이평선2개 외부변수)
정배열 에서, 양봉 음봉 양봉 출현시 매수
역배열 에서, 음봉 양봉 음봉 출현시 매도
**청산
익절 (외부변수)틱 / 손절 (외부변수)틱
**기타
하루 매매횟수 (외부변수)회
포지션 청산후 신호발생시 진입
[2] (1번시스템에서 정배열 열배열만 바뀐매매)
**진입
이평선 2개이용 (이평선2개 외부변수)
역배열 에서, 양봉 음봉 양봉 출현시 매수
정배열 에서, 음봉 양봉 음봉 출현시 매도
**청산
익절 (외부변수)틱 / 손절 (외부변수)틱
**기타
하루 매매횟수 (외부변수)회
포지션 청산후 신호발생시 진입
2020-01-23
266
글번호 135397
답변완료
일정 비중의 분할 매도 문의
당일 일괄 매수한 금액의 50%를 당일 종가 SetStopEndofday(151900)에
가격 관계없이 청산하는 식좀 부탁드립니다.
2020-01-23
237
글번호 135396