커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3457
글번호 230811
답변완료
수식 검토 부탁합니다.
아래식의 의도는 기본 시장과 data2의 시장의 스프레드를 평균화한 지표를 만드는 것입니다.
input:shortp(5),longp(20),StartTime(90000),EndTime(152000);
Vars:CH(0),CL(0),spread(0),Tcond(false);
if (stime >= StartTime) and (stime <= endTime) Then
{
Tcond = true;
spread = (C/(H/L))/(data2(C)/(data2(H)/data2(L)));
}
if (stime < StartTime) or (stime > endTime) Then
{
Tcond = False;
}
if Tcond == true Then
{
spread = spread;
}
if Tcond == false Then
{
spread = 1;
}
CH =ma(spread,shortp);
CL =ma(spread,longp);
Var1=CH-CL;
Plot1(var1,"SPREAD");
특정시간대의 스프레드는 무의미하다고 보고 1로 고정시키고 그 외의 시간대의 평균을 구하고 싶으나 위의 식대로 하면 무의미한 직선의 형태로 고정되어 나타납니다. 수정 가능한지 여부와 ma(평균)에서 특정 시간대를 제외하는 방식으로 식이 가능한지 여부도 알고 싶습니다.
그리고 어제의 특정 시간대의 가격을 소환하는 지표수식 부탁드립니다.
감사합니다.
2023-11-18
1465
글번호 174181
답변완료
수식요청드려요
현재 주가 기준으로 100봉간 주가 등락폭 위로15% 아래로15% 이내
2023-11-18
1342
글번호 174180
답변완료
문의드립니다...
질문자 수식을 인용한 내용인데, 나름대로 지표에 적용을 해보았습니다..
지료의 의미에 대해서 죄송하지만 설명부탁좀 드립니다...
input : length(20),BB_mult(2.0);
var : BB_basis(0),dev(0),BB_upper(0),BB_lower(0);
BB_basis = ma(close, length);
dev = BB_mult * std(close, length);
BB_upper = BB_basis + dev;
BB_lower = BB_basis - dev;
input : KC_mult_high(1.0);
input : KC_mult_mid(1.5);
input : KC_mult_low(2.0);
var : KC_basis(0),devKC(0);
var : KC_upper_high(0),KC_lower_high(0);
var : KC_upper_mid(0),KC_lower_mid(0);
var : KC_upper_low(0),KC_lower_low(0);
var : NoSqz(False),LowSqz(False),MidSqz(False),HighSqz(False);
var : mom(0),iff_1(0),iff_2(0),mom_color(0),sq_color(0);
KC_basis = ma(close, length);
devKC = ma(TrueRange, length);
KC_upper_high = KC_basis + devKC * KC_mult_high;
KC_lower_high = KC_basis - devKC * KC_mult_high;
KC_upper_mid = KC_basis + devKC * KC_mult_mid;
KC_lower_mid = KC_basis - devKC * KC_mult_mid;
KC_upper_low = KC_basis + devKC * KC_mult_low;
KC_lower_low = KC_basis - devKC * KC_mult_low;
//SQUEEZE CONDITIONS
NoSqz = BB_lower < KC_lower_low or BB_upper > KC_upper_low; //NO SQUEEZE: GREEN
LowSqz = BB_lower >= KC_lower_low or BB_upper <= KC_upper_low; //LOW COMPRESSION: BLACK
MidSqz = BB_lower >= KC_lower_mid or BB_upper <= KC_upper_mid ;//MID COMPRESSION: RED
HighSqz = BB_lower >= KC_lower_high or BB_upper <= KC_upper_high; //HIGH COMPRESSION: ORANGE
//MOMENTUM OSCILLATOR
mom = LRL(close - avg(avg(highest(high, length), lowest(low, length)),ma(close, length)), length);
//MOMENTUM HISTOGRAM COLOR
iff_1 = iff(mom > iff(isnan(mom[1])==true,0,mom[1]) , Cyan , Blue);
iff_2 = iff(mom < iff(isnan(mom[1])==true,0,mom[1]) , red , yellow);
mom_color = iff(mom > 0 , iff_1 , iff_2);
//SQUEEZE DOTS COLOR
sq_color = iff(HighSqz , orange ,IFf(MidSqz , red ,IFf(LowSqz , black , green)));
//PLOTS
plot1(mom, "MOM",mom_color);
plot2(0, "SQZ", sq_color);
2023-11-18
1179
글번호 174179
답변완료
수식부탁드립니다
아래수식은 지수가 전봉L을 하향돌파하면서 지수가 현재봉L과 닿을때 소리음을 나게하는 수식입니다
Input: Period1(1);
Variables: TLen1(0),TRIma1(0),;
TLen1 = Ceiling((Period1 + 1) * .5);
TRIma1 =Ema(Ema(C, TLen1), TLen1);
if TRIma1 < L[1] and TRIma1 == L then
begin
PlaySound("C:₩Users₩kim₩Desktop₩소리₩도.wav");
end
else
NoPlot(1);
그런데 이수식을 전봉L을 하향돌파하고 지수가 현재봉L과 닿으면서 그리고 지수가 현재봉 최L을 하향돌파할때 소리음이 나게하고 싶습니다
부탁드립니다
감사합니다
2023-11-18
1182
글번호 174178
답변완료
수식검토 부탁드립니다.
수고 많으십니다.
Main.MessageList("손익=",PL7,"청산=",woo1,"현재가=",Cu7,"포지션 =",po7,"목표수익=",moksu);
if ( po7 == 1 && Cu7 >=woo1)ll( po7 == 1 && Cu7 >=moksu)
//만약 계좌의 포지션이 매도이고 현재가격(Cu7)이 woo1보다 크거나 같으면 매수청산
또는(or) 현재가격이 moksu보다 크거나 같으면 매수청산
ID7 = Account7.OrderBuy(MarketData1.code,vo7, 0, 1);
//전량 시장가로 매수주문(청산) 및 ID7에 주문아이디 저장
질문) 위 수식에서 (or) 논리연산자 표시가 영어소문자 (ㅣㅣ)엘 두개가 맞는지와
(or) 논리연산자를 if ( po7 == 1 && Cu7 >=woo1)ll( po7 == 1 && Cu7 >=moksu)
수식이 맞는지 검토 부탁드립니다.
바쁘신데 항상 감사드립니다.
2023-11-18
999
글번호 174177
답변완료
문의 드립니다.
하락하다가 전봉의 고가를 돌파하면 매수 진입
청산은 전봉의 저가를 아래로 돌파 시 매도 청산
상승하다가 전봉의 저가를 아래로 돌파 하면 매도 진입
청산은 전봉의 고가를 위로 돌파 시 매수 청산
부탁드립니다
2023-11-17
908
글번호 174172
답변완료
수식추가
안녕하세요
수식추가 부탁드림니다
아라식에서 볼밴 상.하단폭이 100틱이내에서 횡보후
상단으로 돌파시 매수
하단으로 돌파시 매도
Inputs : Period(170), Sence(1.3), CC_DN(Yellow);
Vars:
VLineUp(0),
VLineDn(0),
HHighest(0),
LLowest(0),
JustChanged(FALSE),
VLine(0), DBN(0);
Array:
Highs[35](0),
Lows[35](0),
RRange[35](0),
UpWave[1](FALSE),
DnWave[1](FALSE);
If STime == 180000 Then
DBN = 0;
DBN = DBN + 1;
Var1 = Period;
Var2 = Var1 - 1;
Var3 = Var1 - 2;
Var5 = Sence;
Var6 = H-L;
JustChanged = FALSE;
if CurrentBar <= Var2 then begin
Highs[CurrentBar] = Close;
Lows[CurrentBar] = Close;
RRange[CurrentBar] = (H-L) /2;
end;
if CurrentBar == Var1 then begin
if Highs[Var2] >= Highs[Var3] then begin
UpWave[1] = TRUE;
HHighest = Highs[Var2];
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
#Plot1(VLineUp,"VLineUp");
end;
if Highs[Var2] < Highs[Var3] then begin
DnWave[1] = TRUE;
LLowest = Lows[Var2];
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
#Plot2(VLineDn,"VLineDn");
end;
end;
if CurrentBar > Var1 then begin
if DnWave[1] and Close > VLineDn then begin
DnWave[1] = FALSE;
UpWave[1] = TRUE;
JustChanged = TRUE;
HHighest = Close;
LLowest = 0;
end;
if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin
UpWave[1] = FALSE;
DnWave[1] = TRUE;
JustChanged = TRUE;
LLowest = Close;
HHighest = 0;
end;
if JustChanged == FALSE then begin
if Close > HHighest then
HHighest = Close;
else if Close < LLowest then
LLowest = Close;
end;
VLineUp = HHighest - (Var5 * MA(Var6,Var2));
VLineDn = LLowest + (Var5 * MA(Var6,Var2));
/*if UpWave[1] then Plot1(VLineUp,"VLineUp", Red);
else if DnWave[1] then Plot1(VLineDn,"VLineUp", Blue);
*/
end;
input : P(10),short(12),long(26),sig(9);
var : mav(0),macdo(0),T(0);
mav = ma(C,P);
MACDo = MACD_OSC(short,long,sig);
if T <= 0 and upwave[1] and c > mav and macdo > 0 Then
{
t =1;
Buy();
}
if T >= 0 and dnwave[1] and c < mav and macdo < 0 Then
{
T = -1;
Sell();
}
2023-11-17
1213
글번호 174171
답변완료
문의드립니다.
A = 볼린저밴드 상단값
B = 볼린저밴드 하단값
C = 볼린저밴드 중간값
매수식:
무포지션에서 L[1] <= B and H[1] > B and C > C[1] and C > B 이면
4계약 매수합니다.
이 때 매수가격을 매수가격 D 라고 합니다.
이 때 매수봉의 저가가 손절가 F 라고 합니다.
손절청산:
매수후 종가가 아닌 현재가가 손절가 F 를 하향하면 전부 손절청산합니다.
이익청산후 손절가 보정:
매수후 80틱 이익이 나면 2계약을 일부 매도하고
손절가 F = 매수가격 D 로 손절가를 수정합니다.
이후 남은 2계약 청산:
종가가 아닌 현재가가 보정된 손절가 F 를 하향하면 전부 청산하고
이익이 계속 나서 종가가 아닌 현재가가 볼린저 밴드 상단값 A 위로 올라가면
전부 이익 청산합니다.
매도수식: 반대논리로 부탁드립니다.
2023-11-17
1040
글번호 174170
회원 님에 의해서 삭제되었습니다.
2023-11-17
104
글번호 174157