커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8139
글번호 230811
느림 님에 의해서 삭제되었습니다.
2015-06-04
14
글번호 86790
답변완료
매매횟수 제한 문의 합니다
안녕 하세요~~
매매횟수 제한 문의 합니다
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if count<2 then{
if 매수조건식1 then
buy("b1");
if 매수조건식2 then
buy("b2");
.
.
.
if 매수조건식10 then
buy("b10");
}
위와 같은 진입식에서 각각의 조건식에 해당하는 진입횟수를
하루 2회 이내로 제한하고 싶습니다.
현재는 어느 조건식에서든 하루 2회로 끝납니다
하루 전체 횟수가 2회가 넘더라도 각각의 조건식에서 2회 이내로
진입이 가능한지가 궁금합니다.
만약 그게 가능하다면 피라미딩으로 적용했을경우 신호가
어떻게 나타는지도 설명 부탁드립니다
항상 빠른 답변 미리 감사드립니다.
수고 하세요~~
2015-06-04
184
글번호 86788
답변완료
부탁드립니다
var : AA(0),BB(0),누적수량(0),diff(0);
if date != date[1] Then{
AA = 0;
BB = 0;
}
AA = AA+Upvol;
BB = BB+DownVol;
diff = AA - BB;
if diff > 0 Then
plot3(diff ,"차이",RED);
Else
plot3(diff ,"차이",BLUE);
이 식에서 diff가 직전보다 높으면 red 직전보다 낮으면 blue으로
변경 좀 부탁드립니다
2015-06-04
176
글번호 86787
답변완료
안녕하세요*
안녕하세요. 반갑습니다
1.StochasticsK를
Fibonacci Ratrace화 할수없을까요.
감사합니다
2016-12-11
197
글번호 86786
답변완료
부탁드립니다.
하기수식은 예스님이 작설해주신 당일수익포함... 수식입니다.
여기에 추가로 당일손실 80틱이면 시간관계없이 매매종료되게 부탁드립니다.
p.s) 혹 , 예를들면 5분,10분에 각각 시스템을 적용하면 당연 각 차트마다 수익100틱, 손실 80틱이 되는거 맞는거죠?
- 근데 같은차트에 계약수가 2계약이면 수익 200틱, 손실 160틱이 되는건가요?
왕초보질문입니다.
--- 청산은 조건만족시, 진입은 봉완성시로 알고있는데...맞나요?
실제로는 청산도 봉완성시로 되는것 같은데...
(하기식은 없지만 한신호당 40틱 익절조건이 들어가 있는데..조건이 만족되어 청산이...한신호는 52틱, 또한번은 27틱 익절이 되어서요..) 혹 시스템 설정에 "봉롼성" 조건에 체크되어 그런지요? "조건만족"시로 하게되면 진입도 조건만족되면 진입되지 않나요?)
혹 다른 방법이나 수식이 있으면 같이 부탁드립니다.
input : 당일수익(100);#틱수
var : NP(0),PreNP(0),dayPL(0),Econd(false);
NP = NetProfit;
if bdate != bdate[1] Then{
PreNP = NP[1];
Econd = false;
}
dayPL = NP-PreNP;
if BarsSinceExit(1) == 1 and (IsExitName("bx1",1) or IsExitName("sx1",1)) Then
Econd = true;
if Econd == false Then{
if stime >= 200000 or stime < 030000 then{
if crossup(SMIV,SMIS) Then
buy();
if CrossDown(SMIV,SMIS) Then
sell();
}
}
if MarketPosition == 1 Then{
exitlong("BL",AtStop,O[BarsSinceEntry]-PriceScale*10);
if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*20 Then{
ExitLong("bx",AtStop,EntryPrice+PriceScale*1);
}
ExitLong("bx1",AtLimit,EntryPrice+((당일수익*PriceScale)-daypl));
}
if MarketPosition == -1 Then{
ExitShort("SL",AtStop,O[BarsSinceEntry]+PriceScale*10);
if Lowest(l,BarsSinceEntry) <= EntryPrice-PriceScale*20 Then{
ExitShort("sx",AtStop,EntryPrice-PriceScale*1);
}
ExitShort("sx1",AtLimit,EntryPrice-((당일수익*PriceScale)-daypl) );
}
if stime == 030000 or (stime > 030000 and stime[1] < 030000) Then{
ExitLong();
ExitShort();
}
미리감사드립니다.
2015-06-04
178
글번호 86784
답변완료
합성요청
메뉴의 '시스템합성관리자'가 아닌 함수를 통해서
시스템A와 시스템B를 다음의 청산 조건을 추가하여
하나의 시스템으로 만들고 싶습니다.
- 청산조건(시스템A와 시스템B에 모두 적용) : 손절매 : 0.5%
목표수익 : 1%
최소가격변화 : 0.5%, 10봉이내
- 시스템A
var : entry(0);
if bdate != bdate[1] Then
entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
var : ho(0),OL(0),HL(0);
var : maho(0),maOL(0),maHL(0);
var : cnt(0),sumho(0),sumOL(0),sumHL(0);
var : EntryCnt(0);
ho = Dayhigh-Dayopen;
OL = DayOpen-DayLow;
HL = DayHigh-DayLow;
sumho = 0;
sumOL = 0;
sumHL = 0;
for cnt = 1 to 10{
sumho = sumho + (dayhigh(cnt)-dayopen(cnt));
sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt));
sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt));
}
maho = sumho/10;
maOL = sumOL/10;
maHL = sumHL/10;
var1 = dayopen(0)+maho;
var2 = DayOpen(0)-maOL;
var3 = DayOpen(0)+maHL;
var4 = DayOpen(0)-maHL;
var5 = NthMaxList(1,var1,var2,var3,var4);
var6 = NthMaxList(2,var1,var2,var3,var4);
var9 = NthMaxList(3,var1,var2,var3,var4);
var10 = NthMaxList(4,var1,var2,var3,var4);
var7 = (var5+var10)/3;
var8 = (var6+var9)/3;
if MarketPosition == 0 and entry == 0 Then{
if var7 > var8 Then
sell("s1",AtStop,var7);
if var7 < var8 Then
sell("s2",Atlimit,Var8);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,var9);
ExitShort("sl1",AtStop,var6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,var9);
ExitShort("sl2",AtStop,var6);
}
- 시스템B
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)/3;
var2 = (HV1+LV1)/3;
var3 = (HV2+LV2)/3;
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-06-04
190
글번호 86780
답변완료
오류가 나오네요
input :P1(5),P2(10),P3(20),진입틱수(3),목표수익틱수(10);
var1 = ma(C,P1);
var2 = ma(C,P2);
var3 = ma(C,P3);
#정배열
if var1 > var2 and var2 > var3 and var3 > var3[1] Then
buy("b1",atlimit,var1-PriceScale*진입틱수);
#역배열
if var1 < var2 and var2 < var3 and var3 < var3[1] Then
sell("s1",atlimit,var1+PriceScale*진입틱수);
SetStopProfittarget(PriceScale*목표수익틱수,PointStop);
SetStopEndofday(150000);
위의 수식데로 했는데 검증시 오류가 나오네요. 다시한번만 검토 부탁드립니다.^^
2015-11-02
168
글번호 86778
답변완료
지표 표현 부탁드립니다
안녕하세요...
보통 볼린저밴드가 단순이평으로 종가를 기준으로 만들어져 있는것 같습니다.
그래서 볼린저밴드를 단순이평 대신 가중이평선으로도 표현하고, 또 지수이평선으로도
표현하고,
가격을 종가 대신 고가 , 저가 , 고가+저가+종가/3 등으로도 표현하게 부탁드립니다.
문의1)
볼린저밴드를 가중이평선으로 볼린저밴드를 표현 부탁드립니다.
1-1)여기에 가격을 종가 대신 (고가+저가+종가/3)으로 표현되게 합니다.
1-2)여기에 가격을 종가 대신 (저가)로 표현되게 합니다.
1-3)여기에 가격을 종가 대신 (고가)로 표현되게 합니다.
1-4)여기에 가격을 종가로 표현합니다.
문의2)
볼린저밴드를 지수이평선으로 볼린저밴드를 표현합니다
2-1)여기에 가격을 종가 대신 (고가+저가+종가/3)으로 표현되게 합니다.
2-2)가격을 종가 대신 (저가)로 표현되게 합니다.
2-3)가격을 종가 대신 (고가)로 표현되게 합니다.
2-4)가격을 종가로 표현합니다.
감사합니다.
2015-06-04
186
글번호 86772
답변완료
손실발생시 매매중지 또는 타수식 적용
손실 발생시 연속적으로 3회정도 발생됨에 따라
이후 2회는 매매 중지 또는 타식으로 진입하고 싶읍니다.
input:period(30);
var:wr(0);
wr=willr(period);
if crossup(wr,-20) then buy();
if crossdown(wr,-80) then sell();
손실발생시 매매 중지 또는
스토캐스틱 교차매매로 2회 진입하고 싶음니다.
감사합니다.
2015-06-04
181
글번호 86771