커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6138
글번호 230811
답변완료
수식문의
안녕하세요
하시 수식에서 추가사항이 있어서 문의 드립니다.
검토 부탁드립니다.
하기 수식에서 봉완성후가 아니라, 칼라가 바뀌면 바로 진입할 수는 없는지요?
실제 적용을 해보니, 봉완성후로 진입되면 대부분 큰 변동이 발생한 후 진입하게 됩니다.
칼라가 바뀌는 시점에서 바로 진입하게 부탁드립니다.
감사합니다.
input : P(20);
var1 = ma(c,P);
var2 = var1-var1[1];
if var2 >= PriceScale*10 Then
var3 = 1;#plot1(var2,"등락",RED);
Else if var2 < PriceScale*10 and var2 > 0 Then
var3 = 2;#plot1(var2,"등락",magenta);
else if var2 <= 0 and var2 > -PriceScale*10 Then
var3 = -1;#plot1(var2,"등락",clay);
Else if var2 <= -PriceScale*10 Then
var3 = -2;#plot1(var2,"등락",blue);
if crossup(var3,0) Then
buy();
if CrossDown(var3,0) Then
sell();
2018-06-26
193
글번호 120067
답변완료
수식 수정 부탁드립니다.
1차든 2차든 3차든 매수후에 매도가 진행되어 모든 물량이 0 이되면
그날 다시 1차 또는 2차 또는 3차 매수가 아무것도 일어나지 않게 하고 싶습니다.
1차매수후 5% 까지 올랐다가 다시 2%까지 수익이 떨어지면 전량 매도
2차매수 가격에서 5%까지 올랐다가 다시 2%까지 수익이 떨어지면 전량 매도
3차매수 가격에서 5%까지 올랐다가 다시 2%까지 수익이 떨어지면 전량 매도
추가 하고 싶습니다.
input : 투자금액(10000000),투자비율1(40),투자비율2(30),투자비율3(30);
input : P1(10),P2(14);
var : count(0),sumV1(0),sumV2(0);
var : mav1(0),mav2(0);
var : m1(0),m2(0),m3(0),dd(0);
sumV1 = 0;
sumV2 = 0;
for count = 0 to P2{
if count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumV2 = sumV2+DayClose(count);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
m1 = 투자금액*(투자비율1/100);
m2 = 투자금액*(투자비율2/100);
m3 = 투자금액*(투자비율3/100);
if bdate != bdate[1] Then
{
dd = dd+1;
}
if MarketPosition == 0 and Condition1 == false and L < mav1 Then
{
buy("b1",AtLimit,mav1,Floor(m1/mav1));
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
Condition1 = false;
Condition2 = false;
if MaxEntries == 1 Then
var1 = dd;
}
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bl1" Then
Condition3 = true;
if MaxEntries == 1 and L > mav2 Then
buy("b2",AtLimit,mav2,Floor(m2/mav2));
if MaxEntries == 2 Then
{
buy("b3",AtLimit,LatestEntryPrice(0)*0.95,Floor(m3/LatestEntryPrice(0)*0.95));
}
if MaxEntries == 3 then
{
if Condition3 == false then
ExitLong("bl1",AtStop,LatestEntryPrice(0)*0.95,"",Floor(MaxContracts*0.5),1);
ExitLong("bl2",AtStop,LatestEntryPrice(0)*0.90);
}
if Condition1 == false then
{
ExitLong("bp1",atlimit,AvgEntryPrice*1.05,"",Floor(MaxContracts*0.5),1);
}
if Condition2 == false then
{
ExitLong("bp2",atlimit,AvgEntryPrice*1.10,"",Floor(MaxContracts*0.5),1);
}
ExitLong("bp3",atlimit,AvgEntryPrice*1.15);
if NextBarSdate > sdate and dd >= var1+4 Then
exitlong("bx",AtMarket);
}
Else
{
Condition3 = false;
}
2018-06-26
199
글번호 120062
답변완료
수식수정부탁드립니다
#,아래수식을 분봉에 적용했을때는 이상이 없는데요 틱봉에 적용할경우에는 시간이 경과됨에도 구름때의 포지션이이 원래와 다르다보니 주기적으로 바꿔줘야하는 불편함이 있습니다 왜일까요 점검부탁드립니다.
Inputs: shortperiod(9), midperiod(26), longperiod(52);
Variables: 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, shortperiod) + Lowest(Low, shortperiod)) / 2;
기준선 = (Highest(High, midperiod) + Lowest(Low, midperiod)) / 2;
선행스팬1 = (전환선 + 기준선) / 2 ;
선행스팬2 = (Highest(High, longperiod) + Lowest(Low, longperiod)) / 2;
Plot1(선행스팬1," 선행스팬1");
Plot2(선행스팬2, "선행스팬2");
/*
지표속성창 차트표시탭
선행스팬1 수평이동 +25
선행스팬2 수평이동 +25
*?
언제나 늘 고맙습니다.
2018-06-26
231
글번호 120047
답변완료
이동평균선 주문
안녕하세요.
20일 이동평균선을 지지 및 저항선으로 매매하려고 합니다.
예를 들어
이전에 20일 이동평균선을 하향 돌파한 상태(이동평균선 기준 25틱 이상 하락: 값 0.0025)에서
다시 20일 이동평균선으로 반등하고 있는 중에
20일 이동평균선에서 2틱 아래(값: 0.0002)에 매도 주문을 내고자 합니다.
그리고 그 주문값은 20일 이동평균선 값이 바뀌면 계속 수정되었으면 합니다.
더불어 매도가격에서 10틱(값: 0.001) 상승하면 손절하고 싶습니다.
반대로 매도가격에서 20틱(값: 0.002) 하락하면 익절하고 싶습니다.
수식을 어떻게 구성하는지 부탁드립니다.
감사합니다.
2018-06-26
240
글번호 120046
답변완료
문의드립니다.
문의 1번.
안녕하세요.
다음과 같은 형태의 검색식을 작성해봤는데 원하는 대로 검색이 안되네요.
수식 확인 부탁드립니다.
감사합니다.
* 60봉 동안 최고-최저가 20% 이내
* 종가 위치가 박스권의 하단 25% 이내
* 60봉 중 상단(20%) 부분에서 종가가 5회 이상 위치
* 60봉 중 하단(20%) 부분에서 종가가 5회 이상 위치
Variables : count1(0),count2(0), HH(0), LL(0), H_count(0), L_count(0);
input: 날짜(20100101);
HH = Highest(C[1],60);
LL = Lowest(C[1],60);
H_count = AccumN(iff(C > (HH -LL)*3/4 + LL, 1,0),60) ;
L_count = AccumN(iff(C < (HH -LL)*4 + LL, 1,0),60) ;
If HH <= LL * 1.2
and C < LL + (HH-LL) / 4
and H_count >=5 and L_count >=5
Then
value1 = C;
Else
value1 = 0;
Find(Value1);
--------------------------------------------------------------------------------------
문의 2번.
2차 매수 관련 문의
* 1차 매수 시 매수가와 직전 30봉의 최저가 체크
* 2차 매수는 1차 매수가(종가)와 직전 30봉 최저가(종가)의 차이에 따라서 변경됨
** 최저가가 매수가 대비 -15% 이내일 경우 2차 매수 금지
** 최저가가 매수가 대비 -15~ -20% 이내일 경우 crossdown(C, 1차매수가 * 0.85)하는 봉의 종가에서 2차 매수
** 최저가가 매수가 대비 -20 ~ -30% 이내일 경우 crossdown(C, 1차매수가 * 0.80)하는 봉의 종가에서 2차 매수
** 최저가가 매수가 대비 -30% 이상 벌어진 경우 2차 매수 금지
파란 원 부분에서 2차 매수가 나와야할 것 같은데 안나왔습니다.
수식 검토 부탁드립니다. 감사합니다.
low30 = lowest(C,30);
ma_min = min(ma(c,5), ma(c,10),ma(c,20), ma(c,60), ma(c,120));
MessageLog("%.2f %.2f %.2f %.2f %.2f", edate, low30, LatestEntryPrice, low30_no, low30_no);
if 조건 만족 then {
buy("b");
edate = entrydate;
}
////추가 매수
If CurrentEntries == 1 and edate == EntryDate then {
If low30 > LatestEntryPrice * 0.85 Then { low30_no = 1; }
else If low30 <= LatestEntryPrice * 0.85 and low30 > LatestEntryPrice * 0.8 Then {
low30_no = 2;
}
else If low30 > LatestEntryPrice * 0.7 Then {
low30_no = 3;
}
Else { low30_no = 4;
}
}
If CurrentEntries == 0 then edate = 0;
if sdate >= 날짜 and currententries == 1 Then {
If low30_no == 1 Then { }
else If low30_no ==2 Then {
if L<= latestentryprice * 0.85 then {buy("b2(-15%)",AtMarket,def);}
}
else If low30 == 3 Then {
If L <= avgentryprice * 0.8 Then { buy("b2(-20%)",AtMarket,def);}
}
Else {}// 30% 이하찍으면 2차 매수 안함
}
2018-06-26
251
글번호 120045
답변완료
박스돌파후 지지
박스돌파 후 지지되는 종목 검색식을 부탁합니다.
일단 박스는 다음과 같이 정의 합니다. input된 기간 (예를 들어 40일)의 최고값과 최저값을 박스로 정의하고, 이 박스의 최고/최저는 20% 이하로 정의 합니다.
1. 이런 박스가 5~7일전에 돌파되고 5~7일 후에 박스의 고점에서 지지되는 종목 검색식
2. 박스를 정의하는 다른 방법이 있으면 같이 감안해서 반영해 주시면 감사하겠습니다. 예를 들면 박스는 3%이내의 2개의 고점과 3%이내의 2개의 저점으로 정의할 수도 있겠는데... 이런 경우 그 2개의 고점과 저점들을 어떻게 찾아낼 지 잘 모르겠습니다만, 이런 생각은 어떤가요. 주어진 기간의 반이 20일이므로 20일 전을 기준으로 20봉의 최고 초저를 찾고 현재봉을 기준으로 20봉의 최고 최저를 찾아서 최고끼리는 3%이내, 최저끼리도 3%이내로 정의하면 어떨까요... 이런 방법으로 박스를 정의하고 이 박스를 5~7전에 돌파하고 5~7일 후에 고점에서 지지되는 검색식.
위와 같은 검색식을 부탁드립니다.
2018-06-26
238
글번호 120044
깜피 님에 의해서 삭제되었습니다.
2018-06-26
0
글번호 120043
답변완료
문의드립니다
수고하십니다.
선물차트에서 하루장이 시작해, 최고점에서 최저점까지 "현재 몇틱이나 움직였는지"
틱수를 우측 또는 좌측상단에 표기되었으면 합니다.
부탁드립니다.
2018-06-26
205
글번호 120042
답변완료
식좀 여쭤봅니다.ㅎ
안녕하세요?
질문 58331번의 답변중에
아래와 같은 부분이 있는데요
if MarketPosition == 0 and Condition1 == false and L < mav1 Then
{
buy("b1",AtLimit,mav1,Floor(m1/(c*0.98)));
여기에서
Floor(m1/(c*0.98)));
이부분의 의미가 어떤건지 모르겠어서
여쭤봅니다.
2018-06-26
223
글번호 120039