커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7433
글번호 230811
답변완료
문의 드립니다
Input : Period(12), Period1(5), Period2(5);
var : StoK(0),StoD(0),T(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if T <= 0 and stok >= 80 then{
T = 1;
value1 = L;
}
if T >= 0 and stok <= 20 then{
T = -1;
value1 = H;
}
if T == 1 then
plot1(value1,"지표",RED);
Else
plot1(value1,"지표",BLUE);
...................................................................
상기식을 시스템식으로 바꿔 주세요
감사합니다
2016-01-21
119
글번호 94681
답변완료
부탁드립니다
> 미안합니다 46071번재질문입니다*첨부파일처럼빨간선이연결되는수식부탁드립니다*
당일 9시~15시15분이고요.ATM등가date2-3형성할때2-3이 교차전 간격이(0.1)선과교차돼서data2(최고가)와data3(고가)든 data3(최저가)와data2(저가)든 간격이(0.1)먼져만나 이여지는수식
1.date4-5 도 적용 부탁드립니다 (번거롭게해서 죄송합니다) 수고하세요
2016-01-21
225
글번호 94680
답변완료
수식신호
당일시가
전일시가
전일고가
전일저가
전일종가
pivot기준선
demark기준선
당일시고저평균선
==> 수식을 시스템에 적용할때--->한글안내글자는 없고
라인----숫자만나옵니다===>라인과+한글안내글이 나오게 하여 주시면
감사하겠습니다
---------------------------------0.5포=10틱단위라인은 필요하지않고요
매도방향과 매수진입신호로 부터~~"0.5포수익"이란 "onclose"한글글자가 챠트상에
나오게하여주세요
Input : Period1(3),Period2(3), shortPeriod(5), longPeriod(12), Period(5),Length1(14),Length2(3),Length3(3),rsiperiod(12),trixperiod(7);
Inputs: Length(7), Pval(0.01);
Variables: Mom(0),Tl(0),tx(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
var : DD(0),TT(0),TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0);
var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
R1 = 2*Pivot-DayLow(1);
R2 = Pivot+DayHigh(1)-DayLow(1);
S1 = 2*Pivot-DayHigh(1);
S2 = Pivot-DayHigh(1)+DayLow(1);
If DayClose(1) > DayOpen(1) Then
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else If DayClose(1) < DayOpen(1) Then
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else
{
var1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayLow(1);
var2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayHigh(1);
var3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Mom = C- C[Length];
value1 = ema( c,period1);
value2 = ma(macd(shortperiod,longperiod),period);
value3 = StochasticsD(Length1,Length2,Length3);
value4 = rsi(rsiperiod);
value5 = trix(trixperiod);
value6 = highest(H, Period2);
value7 = lowest(l,period2);
if value1- value1[1] > 0 and value2 > value2[1] and value3 - value3[1] > 0 and value4 - value4[1] > 0 and value5 - value5[1] > 0
and (value6 + value7)/2 - (value6 + value7[1])/2 >0 and Mom > 0 AND Mom >= Mom[1] AND MarketPosition() <> 1 then
# 매수/매도청산
{
Buy("매수",onclose);
}
# 매도/매수청산
If value1- value1[1] < 0 and value2 < value2[1] and value3 - value3[1] < 0 and value4 - value4[1] < 0 and value5 - value5[1] < 0
and (value6 + value7)/2 - (value6 + value7[1])/2 < 0 and Mom < 0 AND Mom <= Mom[1] AND MarketPosition() <> -1 Then
{
Sell("매도",onclose);
}
var : TL1(0),TL2(0),TL3(0),TL4(0);
var : TX1(0),TX2(0),TX3(0),TX4(0);
if MarketPosition == 1 Then{
TL_Delete(tl1);
TL1 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*10,sdate,stime,EntryPrice+PriceScale*10);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,EntryPrice+PriceScale*10,NumToStr(EntryPrice+PriceScale*10,2));
Text_SetStyle(Tx1,2,2);
TL_Delete(tl2);
TL2 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*20,sdate,stime,EntryPrice+PriceScale*20);
Text_Delete(tx2);
tx2 = Text_New(sdate,stime,EntryPrice+PriceScale*20,NumToStr(EntryPrice+PriceScale*20,2));
Text_SetStyle(Tx2,2,2);
TL_Delete(tl3);
TL3 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*30,sdate,stime,EntryPrice+PriceScale*30);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,EntryPrice+PriceScale*30,NumToStr(EntryPrice+PriceScale*30,2));
Text_SetStyle(Tx3,2,2);
TL_Delete(tl4);
TL4 = TL_New(EntryDate,entrytime,EntryPrice+PriceScale*40,sdate,stime,EntryPrice+PriceScale*40);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,EntryPrice+PriceScale*40,NumToStr(EntryPrice+PriceScale*40,2));
Text_SetStyle(Tx4,2,2);
}
if MarketPosition == -1 Then{
TL_Delete(tl1);
TL1 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*10,sdate,stime,EntryPrice-PriceScale*10);
Text_Delete(tx1);
tx1 = Text_New(sdate,stime,EntryPrice-PriceScale*10,NumToStr(EntryPrice-PriceScale*10,2));
Text_SetStyle(Tx1,2,2);
TL_Delete(tl2);
TL2 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*20,sdate,stime,EntryPrice-PriceScale*20);
Text_Delete(tx2);
tx2 = Text_New(sdate,stime,EntryPrice-PriceScale*20,NumToStr(EntryPrice-PriceScale*20,2));
Text_SetStyle(Tx2,2,2);
TL_Delete(tl3);
TL3 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*30,sdate,stime,EntryPrice-PriceScale*30);
Text_Delete(tx3);
tx3 = Text_New(sdate,stime,EntryPrice-PriceScale*30,NumToStr(EntryPrice-PriceScale*30,2));
Text_SetStyle(Tx3,2,2);
TL_Delete(tl4);
TL4 = TL_New(EntryDate,entrytime,EntryPrice-PriceScale*40,sdate,stime,EntryPrice-PriceScale*40);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,EntryPrice-PriceScale*40,NumToStr(EntryPrice-PriceScale*40,2));
Text_SetStyle(Tx4,2,2);
}
if date != date[1] Then{
DD = sdate[1];
TT = stime[1];
}
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
TL_Delete(TL18);
TL11 = TL_New(dd,tt,dayopen,sdate,stime,dayopen);
TL12 = TL_New(dd,tt,dayopen(1),sdate,stime,dayopen(1));
TL13 = TL_New(dd,tt,DayHigh(1),sdate,stime,DayHigh(1));
TL14 = TL_New(dd,tt,daylow(1),sdate,stime,daylow(1));
TL15 = TL_New(dd,tt,DayClose(1),sdate,stime,DayClose(1));
TL16 = TL_New(dd,tt,pivot,sdate,stime,pivot);
TL17 = TL_New(dd,tt,var3,sdate,stime,var3);
TL18 = TL_New(dd,tt,(dayhigh+daylow)/2,sdate,stime,(dayhigh+daylow)/2);
Text_Delete(tx11);
Text_Delete(tx12);
Text_Delete(tx13);
Text_Delete(tx14);
Text_Delete(tx15);
Text_Delete(tx16);
Text_Delete(tx17);
Text_Delete(tx18);
tx11 = Text_New(sdate,stime,dayopen,NumToStr(dayopen,2));
tx12 = Text_New(sdate,stime,dayopen(1),NumToStr(dayopen(1),2));
tx13 = Text_New(sdate,stime,DayHigh(1),NumToStr(DayHigh(1),2));
tx14 = Text_New(sdate,stime,daylow(1),NumToStr(daylow(1),2));
tx15 = Text_New(sdate,stime,DayClose(1),NumToStr(DayClose(1),2));
tx16 = Text_New(sdate,stime,pivot,NumToStr(pivot,2));
tx17 = Text_New(sdate,stime,var3,NumToStr(var3,2));
tx18 = Text_New(sdate,stime,(dayhigh+daylow)/2,NumToStr((dayhigh+daylow)/2,2));
Text_SetStyle(Tx11,2,2);
Text_SetStyle(Tx12,2,2);
Text_SetStyle(Tx13,2,2);
Text_SetStyle(Tx14,2,2);
Text_SetStyle(Tx15,2,2);
Text_SetStyle(Tx16,2,2);
Text_SetStyle(Tx17,2,2);
Text_SetStyle(Tx18,2,2);
2016-01-21
235
글번호 94679
답변완료
안녕하세요. 시스템식 도움 부탁드립니다.
안녕하십니까? 늘 도움 주셔서 고맙습니다.
N(예:20)개의 각각 다른 조건을 만족할 때 대기하고 있다가 해당 가격을 상향돌파할 때
매수를 하고 싶습니다. 일일이 N의 값을 변경할 때마다 필요한 코드를 새로 넣으려고 하니 힘도 들고 답도 아닌 것 같습니다. 매수명은 각각 다른 이름으로 진입을 하려고 합니다.
피라미딩 조건으로 "다른 진입신호만 허용"
[1안]
cnt = 1;
If C < (운전가격 - 가격단위*cnt) Then {
Buy("매수1", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
cnt = cnt + 1;
}
If C < (운전가격 - 가격단위*cnt) Then {
Buy("매수2", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
cnt = cnt + 1;
}
...
If C < (운전가격 - 가격단위*cnt) Then {
Buy("매수20", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
cnt = cnt + 1;
}
[1안]과 같이 한다는 것이 너무 힘듭니다.
[2안]
피라미딩조건: "다른 진입신호만 허용"
....
For cnt = 0 To (20-1) {
If C < (운전가격 - 가격단위*cnt) Then {
Buy("", AtStop, 운전가격-가격단위*cnt, Floor(투자금/(운전가격-가격단위*cnt)));
}
}
...
이렇게 구현을 했더니, "Buy1"으로만 딱 1번 매수/매도 만 되고, 나머지 19개의 조건에 해당될 때에도 매수 진입이 되지 않았습니다.
"매수진입명"을 "매수 & 1" 등 문자조작함수가 있다면 어떻게 해볼 수도 있을 것 같은데 해결책을 못찾았습니다.
N은 변수로 사용하여 임의의 값을 넣고 싶습니다.
도움 부탁드리겠습니다.
늘 고맙습니다.
2016-01-21
145
글번호 94678
답변완료
질문드립니다.
46081번 질문을 변형해서 드립니다.
그럼 틱차트에서 거래량이 10000주 이상 되는것을 누적해서 몇개 나왔는지 표현은 안되나요??
2016-01-21
140
글번호 94677
답변완료
문의드립니다.
강추위에 감기조심하십시요~
분봉에서 체결강도를 누적으로 나타내는 지표식을 작성하였는데
검색식과 누적수량이 다소 차이가 납니다.
제대로 작성한건지 검토 부탁드립니다.
감사합니다.
if date != date[1] Then{
var1 = 0;
var2 = 0;
}
var1 = var1+Upvol;
var2 = var2+DownVol;
If var1 >= var2 Then
{
Plot1(var1,"매수");
Plot2(var2,"매도");
}
Else
{
Plot3(var2,"매도");
Plot4(var1,"매수");
}
2016-01-21
135
글번호 94676
삼족오 님에 의해서 삭제되었습니다.
2016-01-21
40
글번호 94673
답변완료
간단히 문의드립니다.
항상 친절한 답변에 많은 궁금증이 해결이 됩니다. 정말 감사드립니다.
1. 랭귀지 매매 시그널을 이벤트로 삼아 스팟에서 매매를 진행시키려 한다면 랭귀지가 적용된 전략차트 창은 시그널만 발생시키고 실제 매매는 못하게 만들어야 할텐데요, 설정을 어떻게 해주면 되죠?
2. 모의거래로 buy, sell 함수를 실행시키니 1계약만 설정해놓면 2계약 진입이, 5계약 설정해 놓으면 10계약 진입이 되는거 같습니다. 아마도 buy함수가 '청산 그리고 진입'이 한세트이다 보니 기존 포지션 미보유시 청산 물량까지 진입되버려서 그런거 같습니다.
이런 스텝이 꼬이는 걸 방지 하는 방법이 뭔가요?
2016-01-21
162
글번호 94663
답변완료
옵션 기준가 지표
안녕하세요?
새해 복 많이 받으시고 회사도 더 크게 번창하시기 바랍니다.
옵션 등가와 내가 3종목, 외가 2종목, 총 5종목의 (당월물)기준가 지표식을 부탁드리고자 합니다.
1) 콜과 풋을 따로 작성
2) 등가는 변수처리 (장세 등락에 따라 자동변환도 무방)
이러한 수식이 가능하시다면 부탁드리겠습니다.
감사합니다.
2016-01-21
186
글번호 94659