커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4734
글번호 230811
답변완료
2차매수시 1차 매도 가격 확인요청
* 항상 많은 도움 고맙습니다.
* 요청 사항 : 당일 2차 매수시 "1차 매도 호가 보다 낮고 전일 동시간대비 거래량이 1.2배 클 경우만 매수" 로직 구현요청
예) if dayindex() > 2
and C >= O then
buy("일목");
상기식으로 1차 매수 하여 매도 하였으나
2차 매수시 1차 매도 가격보다 큰 가격에 매수하여 손실이 발생 합니다.
2차 매수시에는 1차 매도 가격보다 낮고 전알 동시간대비 거래량이 1.2배 클 경우 매수 하는 로직 구현좀 부탁 드립니다.
* 고맙습니다.
2015-11-04
200
글번호 92035
답변완료
44831 재문의 드립니다.
input : Per1(23.6),Per2(38.2),Per3(50.0),Per4(61.8),Per5(76.4);
var1 = 10^(LOG(DayHigh)-(LOG(DayHigh)-LOG(DayLow))*(Per1/100));
var2 = 10^(LOG(DayHigh)-(LOG(DayHigh)-LOG(DayLow))*(Per2/100));
var3 = 10^(LOG(dayhigh)-(LOG(DayHigh)-LOG(DayLow))*(Per3/100));
var4 = 10^(LOG(dayhigh)-(LOG(DayHigh)-LOG(DayLow))*(Per4/100));
var5 = 10^(LOG(dayhigh)-(LOG(DayHigh)-LOG(DayLow))*(Per5/100));
plot1(var1,"23.6");
plot2(var2,"38.2");
plot3(var3,"50.0");
plot4(var4,"61.8");
plot5(var5,"76.4");
44831 글 재문의 드립니다^^; 위의 식이 당일 고저라인 안에 수열이 진입이 안되내요;;
그림으로 설명 드립니다.
2015-11-04
233
글번호 92034
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
삼각가중평균 60선을 기준으로, 60선위는 분홍색으로 나타나게 하고
삼각가중평균 60선 아래는 하늘색으로 표시되게 하고 싶습니다.
수식을 부탁드립니다. 감사합니다. 수고하세요!!!
2015-11-04
191
글번호 92033
답변완료
화면에 표시
그림 1
그림1
Input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell();
}
==================
위 수식에 그림화일처럼
단기청산 0.3p도달시 표시
기본청산 0.5p도달시 표시,
추세청산 1.0p도달시 표시
-==================
2015-11-04
255
글번호 92031
답변완료
부탁 드립니다.
운영자님~~!
항상 매우 만족한 수식으로
도움 주셔서 가슴 깊이 감사 드립니다.
현재의 기준 수평선을 삭제 하고
그림과 같이
대륙별로 기준 수평선을 그을수 있는
수식 부탁 드립니다.
미리 감사드리오며 경배 올립니다.
//대륙별 구분 시각//
//input : 아시아시작(081000),아시아종료(152000);
//input : 유럽시작(153000),유럽종료(213000);
//input : 미국시작(214000),미국종료(065000);
//수식
input:Sstime(081000),Eetime(070000);
If stime == Sstime or (stime > Sstime and stime[1] < Sstime) Then
{
Var1 = rsi(14);
Var2 = Var1[1];
}
if (stime >= Sstime or stime <= Eetime) Then var1=rsi(14);
plot1(Var1,"RSI");
plot2(Var2,"기준선");
2015-11-04
260
글번호 92030
답변완료
참조함수로 수정요청(11-1호)
안녕하세요?
아래의 함수를 사용하여 B종목(data2)에서 신호를 잡아 B종목(data1)을 실제주문을 내고 싶습니다.
참조함수로 수정부탁드립니다.
아울러 작성해주신 함수를 data1에서 시스템을 선택하여 적용시켜야 하나요 data2에다 적용시켜야 하나요?
var : entry1(0);
var : ho1(0),OL1(0),HL1(0);
var : maho1(0),maOL1(0),maHL1(0);
var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0);
var : EntryCnt1(0);
var : V1(0),V2(0),V3(0),V4(0),V5(0);
var : V6(0),V7(0),V8(0),V9(0),V10(0);
if bdate != bdate[1] Then
entry1 = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry1 = entry1+1;
ho1 = Dayhigh-Dayopen;
OL1 = DayOpen-DayLow;
HL1 = DayHigh-DayLow;
sumho1 = 0;
sumOL1 = 0;
sumHL1 = 0;
for cnt1 = 1 to 10{
sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1));
sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1));
sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1));
}
maho1 = sumho1/10;
maOL1 = sumOL1/10;
maHL1 = sumHL1/10;
V1 =
V2 =
V3 =
V4 =
V5 =
V6 =
V7 =
V8 =
V9 =
V10 =
if MarketPosition == 0 and entry1 == 0 Then{
if V7 > V8 Then
sell("s1",AtStop,V7-0.02);
if V7 < V8 Then
sell("s2",Atlimit,V8-0.02);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9-0.03);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9-0.03);
ExitShort("sl2",AtStop,V6);
}
var : TF(0);
var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0);
var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0);
Array : HH[50](0),LL[50](0),CC[50](0);
mav1 = ma(c,5);
mav2 = ma(C,20);
TF = TimeToMinutes(stime)%30;
if Bdate != Bdate[1] Then{
Etime = true;
if stime >= 090000 Then
Xtime = 050000;
Else
Xtime = 060000;
}
if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49{
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;
if HH[25+2] > 0 Then{
HV = HH[0];
LV = LL[0];
HV1 = HH[1];
LV1 = LL[1];
HV2 = HH[2];
LV2 = LL[2];
for cnt = 0 to 25{
if HH[cnt] > HV Then
HV = HH[cnt];
if LL[cnt] < LV Then
LV = LL[cnt];
if HH[cnt+1] > HV Then
HV = HH[cnt+1];
if LL[cnt+1] < LV Then
LV = LL[cnt+1];
if HH[cnt+2] > HV Then
HV = HH[cnt+2];
if LL[cnt+2] < LV Then
LV = LL[cnt+2];
}
var1 = (HV+LV)/2;
var2 = (HV1+LV1)/2;
var3 = (HV2+LV2)/2;
if Etime == true then{
if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then
buy("b",AtMarket);
if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then
ExitLong("bx",AtMarket);
}
}
if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{
Etime = false;
ExitLong();
}
2015-11-04
188
글번호 92029
답변완료
문의 드립니다.
1. 시스템식에서 매도할 때 상한가에서 -1틱 이상의 경우 "보통가" 매도하려면 어떻게 해야하나요?
2. 예스트레이드에서는 모의투자가 따로 없지요?
3. 예를들어 총 3개의 전략실행차트를 A 시스템으로 돌릴 때 / A의 수식을 조금 수정하여 저장하면 다른 2개의 전략실행차트에도 적용이 안되더라구요. 그래서 시스템 수식 바꾸면
모든 전략실행차트에 가서 시스템을 다시 불러오는 걸 해야하는데 이게 영 불편해서요. 방법이 있을까요?
4. 트레이더 로그인시 계좌빌밀번호 입력하라고 뜨는데 이거 자동으로 입력되게 할 순 없나요요? 계속 입력해야해서 불편하네요.
5. 시스템 리포트에서 총 손익은 수수료를 제외한 금액인가요?
6. 시스템 리포트에서 조정 총손익은 무엇을 말하는건가요?(총 손익과 어떻게 다른가요)
2015-11-04
191
글번호 92028
답변완료
수식작성 부탁드립니다
안녕하세요..
시스템매매를 하고 있는데요..
30틱 챠트에서 현재보다 6봉前의 시간(초단위)과 현재 봉종료 시간(초단위)를 계산하여 30초 이상 차이를 찾아내는 수식을 부탁드립니다.
제 실력으로는 도저히 만들수가 없네요.
미리 감사드립니다.
2015-11-03
189
글번호 92027
답변완료
문의 드립니다.
44762 답변 감사합니다.
제 설명이 미흡했나 봅니다.
횡보가 일어나면 진입 숫자가 계속 증가해야 하는데 현재 수식은 수량이 증가하지를 않네요.
2개 첫 진입 손절, 1개 스위칭, 2개 추가 합 3개
3개 손절, 2개 스위칭, 2개 추가 합 4개
4개 손절, 2개 스위칭, 3개 추가 합 5개
5개 손절, 3개 스위칭, 3개 추가 합 6개
추가 진입이 일어날 때 1개씩 증가하게 해주세요.
손절 계약수가 짝수면 1/2 스위칭하고 +1 추가진입
손절 계약수가 홀수면 직전 추가진입 계약수로 스위칭하고 같은 계약수로 추가진입(또는 직전 스위칭 계약수 +1)
홀수일 땐 손절과 동시 스위칭 계약수가 +1 증가이고 짝수일 땐 추가 진입 계약수가 +1인데 수식으로 어떻게 작성해야 할지 모르겠습니다.
수식 다시 살펴봐주시기 바랍니다.
아, 그리고 손절틱을 변경해도 시스템 성능 보고서에 변화가 없습니다.
손절도 나오고 스위칭도 나오는데 어떻게 숫자를 변경해도 변화가 없을까요?
input : 시간(90000),N(3),목표수익틱1(10),목표수익틱2(15),손절틱(10);
진입은 전에 알려주신 진입식으로 했습니다.
시가 +10틱에 매도, -10틱에 매수
if dayhigh-daylow >= PriceScale*1 and daypl < 10 Then{
if MarketPosition == 0 and stime == 151500 then{
buy("b1",AtLimit, NextBarOpen-PriceScale*10,2);
Sell("s1",AtLimit,NextBarOpen+PriceScale*10,2);
}
if stime >= 090000 and MarketPosition == 0 and stime < 151500 then{
buy("b2",AtLimit, DayOpen-PriceScale*10,2);
Sell("s2",AtLimit,DayOpen+PriceScale*10,2);
}
}
2015-11-04
204
글번호 92026