커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
8126
글번호 230811
지표
답변완료

data1

안녕하세요? data1에 있는것이 미니선물인지 선물인지 프로그램에서 알수 있나요? 감사하니다...
프로필 이미지
대가들의매매
2017-02-23
162
글번호 107201
시스템
답변완료

부탁드림니다

그림과같이 파란추세선환성에 고점에 빨강추세선완성에 저점에 번호를 넣고 싶습니다 미리 감사드림니다 ---------------------- Input:length(3); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),처리구분(""),T(0),Color(0); var:tx1(0),tx2(0); Array:고점[10,2](0),저점[10,2](0); //가격,위치 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetSize(TL1,2); if 고점[2,1] == 0 or (고점[2,1] > 0 and 고점[2,1] < 고점[1,1]) Then color = red; TL_SetColor(TL1,color); if TL_SetColor(TL1,color)>1 then { } } } If 처리구분 == "저점처리" Then { lastLoVal = L; If 저점[1,2] < 고점[1,2] then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetSize(TL1,2); if 저점[2,1] == 0 or (저점[2,1] > 0 and 저점[2,1] > 저점[1,1]) Then color = blue; TL_SetColor(TL1,color); } }
프로필 이미지
djhsfg
2017-02-23
263
글번호 107198
지표
답변완료

수식 부탁드립니다

피라미딩 적용시 최초 진입가 256.0 1차 피라미딩 257.0 2차 피라미딩 258.0 3차 피라미딩 259.0 4차 피라미딩 260.0 5차 피라미딩 및 최초 진입가 청산 261.0 6차 피라미딩 및 1차 피라미딩 청산 262.0 7차 피라미딩 및 2차 피라미딩 청산 263.0 . . . . . . 일 경우 최초 진입 256.0 이후 최고가가 5차 피라미딩 및 최초진입가 청산지점인 261.0 미만인 가격 이 최고가일 경우, 최초 진입가(256.0)를 최저가로 인식 6차 피라미딩 및 1차 피라미딩 청산이 이루어지는 261.0 이상 262.0 미만인 상태에서 최고가 를 형성할경우 1차 피라미딩 가격(257.0)을 최저가로 인식 7차 피라미딩 및 2차 피라미딩 청산이 이루어지는 262.0 이상 263.0 미만인 상태에서 최고가 를 형성할 경우 2차 피라미딩 가격(258.0)을 최저가로 인식 8차 ~~~, 9차 ~~~, 10차 ~~~ 일 경우도 적용될수 있는 시스템식을 부탁드립니다 반대로 매도의 경우도 적용할 수 있는 시스템식도 부탁드립니다.
프로필 이미지
미송
2017-02-23
209
글번호 107194
시스템

knb 님에 의해서 삭제되었습니다.

프로필 이미지
knb
2017-02-23
33
글번호 107193
지표
답변완료

다음 수식 부탁드립니다.

안녕하세요. 다음 지표와 수식을 활용하여 2가지 수식 부탁드립니다. 감사합니다. (1식) 다음 지표(수식)이 상방이고, 시가위 첫 양봉에서 매수후 종가 청산. 다음 지표(수식)이 하방이고, 시가밑 첫 음봉에서 매도후 종가 청산. (2식) 다음 지표(수식)이 상방이고 시가위 첫 양봉에서 매수후, 다음날 시초가 기준으로 같은 조건이면 보유, 반대조건(하방/시가밑 음봉)이면 포지션 청산과 매도 체결. 다음 지표(수식)이 하방이고 시가밑 첫 음봉에서 매도후, 다음날 시초가 기준으로 같은 조건이면 보유, 반대조건(상방/시가위 양봉)이면 포지션 청산과 매수 체결. input : short(12),long(26),sto1(14),sto2(3),sto3(3); var : HH(0),LL(0),FK(0),SK(0),SD(0),T(0); var1 = MACD(short,long); HH = Highest(var1, sto1); LL = Lowest(var1, sto2); FK = (var1 - LL) / (HH-LL) * 100; SK = ema(FK,sto1); SD = ema(SK,sto2); if c > dayopen then{ if SK > SK[1] and SK[1] < Sk[2] Then buy("b"); if SK < SK[1] and SK[1] > Sk[2] Then ExitLong("bx"); } if c < dayopen then{ if SK < SK[1] and SK[1] > Sk[2] Then sell("s"); if SK > SK[1] and SK[1] < Sk[2] Then ExitShort("sx"); } ----------- 지표식 input : short(12),long(26),sto1(14),sto2(3),sto3(3); var : HH(0),LL(0),FK(0),SK(0),SD(0),T(0); var1 = MACD(short,long); HH = Highest(var1, sto1); LL = Lowest(var1, sto2); FK = (var1 - LL) / (HH-LL) * 100; SK = ema(FK,sto1); SD = ema(SK,sto2); plot1(Sk); plot2(sd); PlotBaseLine1(20); PlotBaseLine2(80);
프로필 이미지
sky78
2017-02-23
196
글번호 107189
시스템

좌오비우오비 님에 의해서 삭제되었습니다.

프로필 이미지
좌오비우오비
2017-02-23
22
글번호 107187
시스템
답변완료

if 가 잘못된토큰이라고 나오네요

//매수 if MA(c, 기간1) < (if((mav1)/2>(mav2)/2,(mav1)/2,(mav2)/2)*p1) Then { buy(); }
프로필 이미지
ds2335
2017-02-23
152
글번호 107186
시스템
답변완료

수정 부탁할게요.

영웅문에서 쓰던 수식을 제 스스로 바꿔보려고 했는데 잘 안되네요... 도움 부탁합니다. 1. H) a=highestsince(1,crossup(avg(c,5),avg(c,20)),avg(c,20)); L) a=lowestsince(1,crossdown(avg(c,5),avg(C,20)),avg(C,20)); C) avg(C,20) 2. p1=14, AH=70, AL=30 R=RSI(P1); A=CROSSUP(R,AL); VALUEWHEN(1,A,L); R=RSI(P1); A=CROSSDOWN(R,AH); VALUEWHEN(1,A,H);
프로필 이미지
homeros
2017-02-23
153
글번호 107185
지표
답변완료

시스템문의

안녕하세요 하기 수정해주신 수식 중에서 잘 되지 않는 것이 있어서 메일 드립니다. 볼린져 밴드 중앙선과 만나기전에 MACD ocilltor가 바뀌었는데도 손절이나 반대매매가 이루어 지지 않고 있습니다. 주신 수식은 밴드 중앙만 만날때 청산되고 있습니다. 차라리 MACD ocillator 가 바뀌면 청산되는 식 하나로만 부탁드립니다. 매수 진입시 MACD ocillator가 음으로 바뀌면 청산 매도 진입시 MACD ocillator가 양으로 바뀌면 청산 이렇게 부탁드립니다. 청산이 되고, 그 다음에 반대매매 진입입니다. 주신 수식은 반대매매 진입이 되지 않고 있습니다. MACD ocillator가 바뀌어서 청산이 되는 것과 동시에 반대매매 진입이 이루어 졌으면 합니다. 단 반대매매는 한번만 들어가게 부탁드립니다. ADX라인이 증가하지 않는 부분은 차라리 생략하겠습니다. 상기 두가지만 다시 검토 부탁드립니다. 감사합니다. 안녕하세요 예스스탁입니다. input : P(14),BBP(20),dv(2),MAP(60); input : short(12),long(26),sig(9); var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0); var : MACDV(0),MACDS(0),Bcond(false),Scond(False),bbmd(0),diff(0),cnt(0),count(0); var : MACDO(0); ADXV = ADX(P); DP = Diplus(P); DM = DiMinus(P); bbmd = ma(c,BBP); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); mav = ma(C,MAP); MACDV = MACD(short,long); MACDS = ema(MACDV,sig); MACDO = MACDV-MACDS; diff = C-O; if MarketPosition <= 0 and C > BBup and C > O and countif(C > C[1],2) == 2 and (ADXV < 40 or (ADXV > 40 and DP > DM)) and BBup-BBdn >= PriceScale*30 and countif(adxv > adxv[1],2) == 2 Then{ buy("b2"); } if MarketPosition >= 0 and C < BBdn and C < O and countif(C < C[1],2) == 2 and (ADXV < 40 or (ADXV > 40 and DP < DM)) and BBup-BBdn >= PriceScale*30 and countif(adxv > adxv[1],2) == 2 Then{ sell("s2"); } if MarketPosition == 1 Then{ ExitLong("bx1",AtStop,BBmd); if BarsSinceEntry > 3 and CrossDown(MACDO,0) Then ExitLong("bx2"); if IsEntryName("b2") == true and BarsSinceEntry <= 3 and CrossDown(MACDO,0) Then sell("bs1"); if ADXV <= ADXV[1] Then sell("bs2"); } if MarketPosition == -1 Then{ ExitShort("sx1",AtStop,BBmd); if BarsSinceEntry > 3 and CrossUp(MACDO,0) Then ExitShort("sx2"); if IsEntryName("s2") == true and BarsSinceEntry <= 3 and CrossDown(MACDO,0) Then Buy("sb1"); if ADXV <= ADXV[1] Then buy("sb2"); } 즐거운 하루되세요 > softtoug 님이 쓴 글입니다. > 제목 : 수식문의 > 안녕하세요 하기 수식문의 드립니다. input : P(14),BBP(20),dv(2),MAP(60); input : short(12),long(26),sig(9); var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0); var : MACDV(0),MACDS(0),Bcond(false),Scond(False),bbmd(0),diff(0),cnt(0),count(0); ADXV = ADX(P); DP = Diplus(P); DM = DiMinus(P); bbmd = ma(c,BBP); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); mav = ma(C,MAP); MACDV = MACD(short,long); MACDS = ema(MACDV,sig); diff = C-O; if MarketPosition <= 0 and C > BBup and C > O and countif(C > C[1],2) == 2 and (ADXV < 40 or (ADXV > 40 and DP > DM)) and BBup-BBdn >= PriceScale*30 and countif(adxv > adxv[1],2) == 2 Then{ buy("b2"); } if MarketPosition >= 0 and C < BBdn and C < O and countif(C < C[1],2) == 2 and (ADXV < 40 or (ADXV > 40 and DP < DM)) and BBup-BBdn >= PriceScale*30 and countif(adxv > adxv[1],2) == 2 Then{ sell("s2"); } 상기 수식에서 손절방법을 부탁드립니다. 1. 매도든 매수든 가격이 볼린져 밴드 중앙선과 닿으면 손절하는 수식 부탁드립니다. 2. MACD oscillator 가 바뀌면 손절하는 수식 부탁드립니다. 그리고 MACD ocillator 변경이 진입후 3개 봉이내에 바뀔경우에는 반대매매 부탁드립니다. 반대매매는 한번만 들어가는 것으로 부탁드립니다. 3. 더이상 ADX 라인이 증가하지 않으면, 매도 진입했던 것은 매수로 반대매매 진입, 매수 진입했던 것은 매도로 반대매매 진입 부탁드립니다. 감사합니다.
프로필 이미지
softtoug
2017-02-23
218
글번호 107183
시스템