커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7638
글번호 230811
답변완료
수식문의
Input : Period(200), D(2);
var1 = BollBandUp(Period,D);
var2 = BollBandDown(Period,D);
if crossup(c,var2) Then
value1 = 1;
if CrossDown(c,var1) or CrossDown(c,var2) Then
value1 = 0;
if CrossDown(c,var1) Then
value2 = -1;
if CrossUp(c,var1) or CrossUp(c,var2) Then
value2 = 0;
if value1 == 1 and crossup(c,var1) and Condition1 == False Then{
Condition1 = true;
Condition2 = false;
value3 = 0;
}
if Condition1 == true and C < O Then{
value3 = value3+1;
if value3 == 1 Then
value4 = O;
}
if value2 == -1 and CrossDown(c,var2) and Condition2 == False Then{
Condition2 = true;
Condition1 = false;
value5 = 0;
}
if Condition2 == true and C > O Then{
value5 = value5+1;
if value5 == 1 Then
value6 = O;
}
Plot1(ma(C,Period), "이평");
Plot2(BollBandUp(Period,D), "상단밴드");
Plot3(BollBandDown(Period,D), "하단밴드");
plot4(value4,"상단기준");
plot5(value6,"하단기준");
위의수식에서볼밴이 10시이후2시까지에는하얀게나오게수식좀바꾸어주세요
죄송한데요당일시초가와 전일고,저를당일로만 출력되는수식부탁합니다
2012-08-07
279
글번호 53580
주도주 님에 의해서 삭제되었습니다.
2012-08-07
17
글번호 53578
답변완료
문의...
두가지 지표선(A, B )이 있다고 가정합니다
가 와 나 구간를 보면 같은 데드상태 구간이지만
나 구간은 골드가 나고 난 다음에 다시 데드상태가 되었습니다
가 와 나 구간을 같은 데드 상태라도 구분되게 표시하고 싶습니다
코딩상 어떻게 쓰면 좋을까요?
장이 시작하자 말자 가와 같은 상태로 진행되다가 장중에 나와 같은 형태가 된겁니다
2012-08-07
265
글번호 53568
답변완료
수식문의
Average price of the current bar :
xClose = ( Open+High+Low+Close)/4
Midpoint of the previous bar :
xOpen = [xOpen(previous Bar)+Close(previous Bar)]/2
Highest value in the set :
xHigh = Max(High, xOpen, xClose)
Lowest value in the set :
xLow = Min(Low, xOpen, xClose)
HEIKIN-ASHI Closing price
= (xClose+xOpen+xHigh+xLow)/4
위의지표식을 예스로구현해주세요 감사합니다
2012-08-07
334
글번호 53567
답변완료
문의드립니다 ---추가내용--
매매신호 (CODE)
HOME > Q&A > 수식작성Q&A
if MarketPosition == 1 and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then{
ExitLong("bx11",atlimit,EntryPrice*1.005,"",int(CurrentContracts*0.5),1);
ExitLong("bx12",atlimit,EntryPrice*1.011,"",int(CurrentContracts*0.25),1);
ExitLong("bx13",atlimit,EntryPrice*1.02,"",int(CurrentContracts*0.25),1);
if CurrentContracts == MaxContracts and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then
if CurrentContracts < MaxContracts and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 1 Then ExitLong("bx22",atlimit,EntryPrice*1.005,"",int(CurrentContracts*0.25),1); if CurrentContracts < MaxContracts and countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) == 2 Then
1차매수 - 현재가 볼린저밴드(20.2) 하단선이하 -0.8% 현재가가 위치시 매수 : 매수금액 1000000원
1차 매수시 0.5%, 1.1%, 2.0% 분할 매도(or 3분봉 상 20일선 닿을 시 전량매도) - 매수 금액의 2:1:1의 비율 -이익보존율 80%
2차 매수시 0%, 0.5%, 1.1% 분할 매도(or ?분봉 상 20일선 닿을 시 전량매도)- 매수 금액의 2:1:1의 비율 -이익보존율 80%
3차 매수시 0%, 0.5% 분할 매도(or 3분봉 상 20일선 닿을 시 전량매도)- 매수 금액의 1:1 의 비율 -이익보존율 80%
3차 매수 후 2% 추가 하락시 전량 매도 된 종목은 그날 매매 하지 않는 수식으로 수정 부탁드립니다.
주문 수량 오류가 나옵니다. 현물 거래로 코스피 거래소 코스닥으로 합니다. 잘부탁드립니다.
추가내용...... 이익보존율80%내용삭제 및 15분봉상 볼린져벤드 20.2 중단선에닿을시절반매도 상단부에닿을시 전량매도내용추가및수정부탁드립니다 분할매도내용은유지해주시면감사하겠습니다
2012-08-07
325
글번호 53565
답변완료
지표식 문의 드립니다.
항상 빠른 답변에 감사드립니다.
N일전 10시까지의 평균 거래량을 구할려고 하면 어떻게 하는지 궁금합니다.
부탁드립니다.
2012-08-07
276
글번호 53564
답변완료
수식 문의드립니다.
Input : K(1);
"K"라는 변수를 둡니다.
var1=어떤값1 ;
var2=어떤값2 ;
var3=어떤값3 ;
var4=어떤값4 ;
var5=어떤값5 ;
이렇다고 할때 "K"값이 1일때
var1 값에서 하나위인 var2 값을 더한 값을 구하고
var2 값에서 하나위인 var3 값을 더한 값을 구하고
var3 값에서 하나위인 var4 값을 더한 값을 구하고
var4 값에서 하나위인 var5 값을 더한 값을 구하게 되고
"K"값이 2일때
var1 값에서 두개위인 var3 값을 더한 값을 구하고
var2 값에서 두개위인 var4 값을 더한 값을 구하고
var3 값에서 두개위인 var5 값을 더한 값을 구하고자 합니다.
이런식으로 변수에따른 각각의 값을 구하고자 할때 어떻게 해야할까요?
부탁드립니다.
그럼 수고하세요
2012-08-07
209
글번호 53563
답변완료
수식 문의합니다~
1분봉 차트에서
전일 1분봉들중 거래된 최대거래 대금 보다 많다
라는 수식 문의합니다~
2012-08-07
223
글번호 53562
답변완료
익절값 변동(재 질문입니다.)
아래 익절값 변동식에서 "value3> 100" 조건과
"당일 value3의 최대값이 200 이상"일경우를 더하려면 어떻게 해야 하는지요?
아래와 같이 바꿨는데 안되네요.
if MarketPosition == 1 Then{
if value3 > 100 and dayhigh(value3) > 200 Then
exitlong("bx1",Atlimit,EntryPrice+3.5);
Else
exitlong("bx2",Atlimit,EntryPrice+2.0);
}
if MarketPosition == -1 Then{
if value3 > 100 and dayhigh(value3) > 200 Then
ExitShort("sx1",Atlimit,EntryPrice-3.5);
Else
ExitShort("sx2",Atlimit,EntryPrice-2.0);
}
> 예스스탁 님이 쓴 글입니다.
안녕하세요
예스스탁입니다.
식을 풀어서 작성하셔야 합니다.
Input : period2(2);
input : Vol3(1),value(0);
var : count(0),cnt(0);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;}
value1 = 수식1;
value2 = 수식2;
value3 = 수식3;
#당일 발생한 청산 중 최근청산이 손절이나 목표수익이면 true 아니면 false
Condition1 = ExitDate(1) == sdate and (IsExitName("StopLoss",1) == true or IsExitName("StopProfittarget",1) == true);
if count == 0 or (MarketPosition == 0 and Condition1 == false and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
If 매수조건 then
buy("b1");
If 매도조건 then
Sell("s1");
}
if (MarketPosition == 0 and Condition1 == true and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
if MarketPosition(1) == -1 and 매수조건 then
buy("b2");
if MarketPosition(1) == 1 and 매도조건 then
Sell("s2");
}
# 매수청산
If 매수청산조건 Then
{
Exitlong();
}
# 매도청산
If 매도청산조건 Then
{
Exitshort();
}
if MarketPosition == 1 Then{
if value3 > 100 Then
exitlong("bx1",Atlimit,EntryPrice+3.5);
Else
exitlong("bx2",Atlimit,EntryPrice+2.0);
}
if MarketPosition == -1 Then{
if value3 > 100 Then
ExitShort("sx1",Atlimit,EntryPrice-3.5);
Else
ExitShort("sx2",Atlimit,EntryPrice-2.0);
}
SetStopLoss(2.0,PointStop);
SetStopEndofday(150000);
즐거운 하루되세요
> 몸통공격 님이 쓴 글입니다.
> 제목 : 익절값 변경
> 시스템식은 아래와 같습니다.
value1,value2 ,value3 지표이며 이를 바탕으로 매수,매도,청산 조건을 부여합니다.
손절,익절 모두 2.0 point 식입니다.
그런데 이중 value3지표 값의 크기에 따라서 익절폭을 달리 하고자 합니다.
즉, value3의 크기가 100 보다 크면 3.5point로 익절을 하고,
100보다 작으면 지금처럼 2.0 point 익절을 하려고 합니다.
모든 것은 그대로 두고 하나의 시스템으로서 익절폭만 달리 하고자 할 때 어떻게 만들어야 하는지 알려 주십시오,. 감사합니다.
*********************************************************************************
Input : period2(2);
input : Vol3(1),value(0);
var : count(0),cnt(0);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;}
value1 = 수식1;
value2 = 수식2;
value3 = 수식3;
#당일 발생한 청산 중 최근청산이 손절이나 목표수익이면 true 아니면 false
Condition1 = ExitDate(1) == sdate and (IsExitName("StopLoss",1) == true or IsExitName("StopProfittarget",1) == true);
if count == 0 or (MarketPosition == 0 and Condition1 == false and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
If 매수조건 then
buy("b1");
If 매도조건 then
Sell("s1");
}
if (MarketPosition == 0 and Condition1 == true and BarsSinceExit(1) > 0) or MarketPosition != 0 then{
if MarketPosition(1) == -1 and 매수조건 then
buy("b2");
if MarketPosition(1) == 1 and 매도조건 then
Sell("s2");
}
# 매수청산
If 매수청산조건 Then
{
Exitlong();
}
# 매도청산
If 매도청산조건 Then
{
Exitshort();
}
SetStopLoss(2.0,PointStop);
SetStopProfittarget(2.0,pointStop);
SetStopEndofday(150000);
2012-08-07
200
글번호 53561