커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

1. var1 = wma(c,5); var2 = wma(c,20); if crossup(var1,var2) then value1 = var1; if CrossDown(var1,var2) Then value1 = var1; var3 = var1-value1; if var3 > 0 Then{ plot1(var1,"선1"); plot2(value1-(var3),"선2"); } else{ plot1(var1,"선1"); plot2(value1+abs(var3),"선2"); } 2. var : V_J1(0),V_J2(0); var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉) gap = Open-Close[1]; // 일간갭 sumGap = sumGap+gap; // 일간갭 누적 } GO = O - sumGap;// 갭보정 시가 GH = H - sumGap;// 갭보정 고가 GL = L - sumGap;// 갭보정 저가 GC = C - sumGap; // 갭보정 종가 V_j1 = wma(C,120)/(wma(C,60)/100); V_j2 = wma(C,60)/(wma(C,120)/100); Plot1(wma(GC,20)/(wma(GC,5)/100),"단기-"); Plot2(wma(GC,5)/(wma(GC,20)/100),"단기+"); Plot3(wma(GC,60)/(wma(GC,20)/100),"중기-"); Plot4(wma(GC,20)/(wma(GC,60)/100),"중기+"); Plot5(V_j1,"장기-"); Plot6(V_j2,"장기+"); /* If V_J1 < V_J2 Then Plot3(V_J2-(V_J2-V_J1)); Else Plot4(V_J2); 3. Input : Period(20), D(2); var : BBdown(0),BBUp(0),BandB(0); BBDown = BollBandDown(Period,D); BBUp = BollBandUp(Period,D); BandB = ((C-BBDown)/(BBUp-BBDown))*100; Plot1(BandB, "Band %b"); PlotBaseLine1(10, "기준선10"); PlotBaseLine2(90, "기준선90"); 4. inputs: Price( Close ), BaseLength( 10 ), ArithOrGeom_1or2( 1 ), IncrementOrMultiplier( 10 ), FastColor( Yellow ), SlowColor( Red ) ; variables: Counter( 0 ) ; arrays: Length[8]( 0 ), SmoothingFactor[8]( 0 ), XMA[8]( 0 ), Color[8]( 0 ) ; if CurrentBar == 1 then begin Length[1] = BaseLength ; SmoothingFactor[1] = 2 / ( Length[1] + 1 ) ; XMA[1] = Price ; Color[1] = RGB(255,0,0) ; for Counter = 1 to 7 begin if ArithOrGeom_1or2 == 1 then Length[ Counter + 1 ] = Length[Counter] + IncrementOrMultiplier ; else Length[ Counter + 1 ] = Length[Counter] * IncrementOrMultiplier ; SmoothingFactor[ Counter + 1 ] = 2 / ( Length[ Counter + 1 ] + 1 ) ; XMA[ Counter + 1 ] = Price ; Color[ Counter + 1 ] = RGB(255,int((255/8)*(Counter + 1)),0); end ; end else for Counter = 1 to 8 begin XMA[Counter] = XMA[Counter][1] + SmoothingFactor[Counter] * ( Price - XMA[Counter][1] ) ; end ; Plot1( XMA[1], "XMA1", Color[1] ) ; Plot2( XMA[2], "XMA2", Color[2] ) ; Plot3( XMA[3], "XMA3", Color[3] ) ; Plot4( XMA[4], "XMA4", Color[4] ) ; Plot5( XMA[5], "XMA5", Color[5] ) ; Plot6( XMA[6], "XMA6", Color[6] ) ; Plot7( XMA[7], "XMA7", Color[7] ) ; Plot8( XMA[8], "XMA8", Color[8] ) ; 상기 1,2,3,4번을 모두 데이타2식으로 바꾸어 주세요 감사드립니다
프로필 이미지
회원
2014-04-05
221
글번호 74159
지표
답변완료

문의 드립니다..

항상 수고 많으십니다... 5분봉차트에서 장시작후 5분봉 첫번째봉의 고가와저가의 가격차이만큼 위 아래로 선을 자동으로 그릴수 있을까요.? 예를 들어 5분봉 첫번째봉의 고가값이 50 이고, 저가값이 40 이라면,, 5분봉 첫번째봉의 고가50과 저가40에 각각 수평선을 그리고,,, 50과 40의 중간값 45에 수평선을 그리고,,,,,, 고가와 저가값의 차이가 10 이므로... 고가위에 +10의 간격으로 60과 70값에 수평선을 각각 그리고,, 저가아래엔 -10의 간격으로 30과 20값에 수평선을 자동으로 각각 그릴수 있는 지표를 만들고 싶습니다.. 부탁드립니다..
프로필 이미지
회원
2014-04-07
157
글번호 74158
지표
답변완료

수정부탁합니다

수정부탁합니다 시스템식에 적용해보니 2번매수하고 추가 매수가 안됩니다 1.매수 20일선이 60일선을 골드크로스할때만요 첫번째 매수하고 6시간후에 골든크로스(2번째매수,2번째매수한후 6시간후에 3번째매수..3번째매수후 6시간후4번째매수 ,다시말하면 1번째매수후 4번째매수는 18시간후에 골든크로스 나오면 매수하겠죠 )이런식으로요 다시말해서 매수조건은 골든크로스와 6시간이 지나고 골든크로스가 오면 매수-너무 잦은 매수를 할수있어서 입니다 2. 만약에 매도 못하고 물렸을경우 그 다음날도 2번까지 매수 가능하게 해주세요...그다음날도 그다음날도 계속 ... 계속 물타기 3.손실 날때는 절대 청산금지, 첫번째 매수+10에서 매도 그다음 2번,3번째,4번째, 5번째 계속 .. 은 +3틱에서 매도(평균) 4.1틱매수는 빼주세요 1번식은 매수, 2번식은 매도로 만들어주세요 1.매수 input : per(1.5),시작날짜(20140307); var1 = ma(c,20); var2 = ma(C,60); if MarketPosition <= 0 and CrossUp(var1,var2) and sdate >= 시작날짜 Then buy("b",OnClose,def,1); if MarketPosition == 1 Then{ if MaxEntries == 1 Then{ ExitLong("bx1",atlimit,EntryPrice+PriceScale*10); buy("bb",atlimit,EntryPrice-PriceScale*20,1); } if MaxEntries == 2 Then{ ExitLong("bx2",atlimit,AvgEntryPrice+PriceScale*3); } } 2, 매도 input : per(1.5),시작날짜(20140307); var1 = ma(c,20); var2 = ma(C,60); if MarketPosition <= 0 and CrossDown(var1,var2) and sdate >= 시작날짜 Then Sell("s",OnClose,def,1); if MarketPosition == -1 Then{ if MaxEntries == 1 Then{ ExitShort("sx1",atlimit,EntryPrice-PriceScale*10); sell("ss",atlimit,EntryPrice+PriceScale*20,1); } if MaxEntries == 2 Then{ ExitShort("sx2",atlimit,AvgEntryPrice-PriceScale*3); } }
프로필 이미지
회원
2014-04-06
135
글번호 74157
시스템

상박이 님에 의해서 삭제되었습니다.

프로필 이미지
상박이
2014-04-04
0
글번호 74156
시스템
답변완료

매도 시스템

매수한 종목이 칠프로 수익나면 비중의 5십프로 매도 나머지 5할은 첫 매도가격의 삼프로 이하면 올매도
프로필 이미지
상박이
2014-04-04
163
글번호 74155
시스템
답변완료

지표문의

1봉전 기준 120일 신고가 라인을 구현하고 싶습니다.
프로필 이미지
상박이
2014-04-04
148
글번호 74154
지표
답변완료

시스템 질문드립니다.

전에 시스템 질문번호 35402에서 질문드려서 분할매수 분할손절(1차매수에 100주를 매수한다음 1차매수지지라인을 깨면 50주를 손절하고 2차지지매수라인에서 2차매수 50주를 하고 2차매수지지라인도 깨지면 전체 손절)을 할수있게 수식을 설명해주셨는데요. 매수와 손절기능은 있는데 이익을 내구 매도하는걸 강제청산설정에서 목표수익을 설정하고 예를 들면 목표수익 '3%'에 청산시점은 '조건만족시 즉시'로 했는데 막상 실제 장중에 테스트를 해보니 (제가 원하는건 1차 매수후 1차손절하고 2차 매수가 되면 1차매수와 2차매수의 평균값의 3%가 되는 조건만족 즉시 수익매도를 원한건데 강제청산설정에서 목표수익을 설정해놓으면 예를 들면 '1차매수에 1000원에 100주를 매수후 990원에 50주를 1차손절하고 2차에 다시 2차매수900원에 50주가 매수가 다시 되고 난 다음에는 두 평균가격이 된 950의 3%의 조건만족시 매도가 될줄 알았더니 실제로는 2차매수된 900원의 50주만 3%의 조건만족이 되는 시점에서 그 50주만 매도되고 1차매수물량은 그대로 남아있습니다. 질문을 요약드리면 1차매수에 1000원 100주 매수후 990원에 50주 1차손절하고 2차매수 900원에 50주가 다시 매수되서 매수평균가가 물타기가 되서 950원에 물량이 100주가 되었는데 이 매수평균가인 950원의 3%가 조건 만족이 되는 즉시 100주 전부 수익매도를 할수 있게 수식을 작성하고 싶습니다.(1차에 매수가 되고 1차손절이나 2차매수까지 가지 않은 상황에서도 3%만 조건 만족되면 무조건 매도할수있게끔) 잘 부탁드립니다. 예를 들어 테스트해본 신성솔라에너지 14년 3월31일화면입니다. 매수1차 1485 매수2차 1460 청산1차 1470 청산2차는 1400으로 해놓고 해보면 각각 수익이 따로 청산이 됩니다. ================================= >> input : 매수금액(1000000); var : 매수수량(0),청산수량1(0),청산수량2(0); Input : 매수1차(9470),매수2차(9200),청산1차(9400),청산2차(9100); #매수1차 = 9400; #매수2차 = 9270; #청산1차 = 9340; #청산2차 = 9240; If CodeCategoryEx== 11 and BasePrice < 50000 Then{ 매수수량 = floor(int((매수금액/C)/10)*10); 청산수량1 = floor(int((매수수량*0.5)/10)*10); } Else{ 매수수량 =floor((매수금액/C)*0.5); 청산수량1 =floor(매수수량*0.5); } if MarketPosition == 0 and L > 매수1차 Then{ buy("매수가B1",atlimit,매수1차,매수수량); #1차 진입과 동일봉에서 신호가 발생하기 위한 내용 ExitLong("손절11",AtStop,청산1차,"",청산수량1,1); buy("매수가B2",atlimit,매수2차,청산수량1); ExitLong("손절21",AtStop,청산2차); } #진입봉 다음봉부터 동작 if MarketPosition == 1 Then{ If CodeCategoryEx== 11 and BasePrice < 50000 Then 청산수량2 = floor(int((MaxContracts*0.5)/10)*10); Else 청산수량2 =floor(Maxcontracts*0.5); if lowest(L,BarsSinceEntry+1) > 청산1차 Then exitlong("손절C12",atstop,청산1차,"",청산수량2,1); if MaxEntries == 1 and lowest(L,BarsSinceEntry+1) > 매수2차 Then Buy("매수가B3",atlimit,매수2차,청산수량2); if lowest(L,BarsSinceEntry+1) > 청산2차 Then exitlong("손절22",atstop,청산2차); }
프로필 이미지
비엔에프
2014-04-04
195
글번호 74153
시스템
답변완료

수식문의입니다.

초보자라 영 어렵네요. 30분봉 기준으로 1.가중이동평균 10 20 50이 역배열상태이고 2.20과 50의 가중이동평균선이 수렴하지않고 어느정도 이격이 있을경우 (두선의 벌어짐의 차이는 붙어있지않는 정도의 수치를 넣어주시면 감사하겠습니다.) 3 현재봉에서 50 가중이동평균선을 상향돌파. 4.9시의 시가가 10 가중이동평균선 위에 있는조건. 5.특정증권사의 순매수량이 1이상 (이거 가능한지 모르겠네요.예를 들어 한국증권사 순매수량이 1이상) 이런 수식을 부탁드리겠습니다.^^
프로필 이미지
엔즈
2014-04-04
186
글번호 74152
종목검색

투자자123 님에 의해서 삭제되었습니다.

프로필 이미지
투자자123
2014-04-04
0
글번호 74151
시스템