커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

주식 거래 시 특정 조건 만족 시 미리 매수/매도를 걸어놓는 형태로 매매를 하려고 하는데 수식 부탁드려 봅니다. 감사합니다. 예) 1분봉 거래 시 시가에서 가격이 하락하다가 9시 30분에 5500원까지 하락할 때, 5000원 및 4500원에 분할로 미리 매수를 걸어 놓는 방법. (조건 만족 시점에는 매수 가격에 도달하지 않고 미래 시점(10시에 5000원, 10시 30분에 4500원 등) 도달한다고 가정)
프로필 이미지
깜피
2021-03-03
838
글번호 146749
시스템
답변완료

alert 정수형 출력

alert("%.2f ",C); C=102.24 일때 102로 출력되게 하려면 어떻게 하면 되나요 ? 수고하세요
프로필 이미지
thrupass
2021-03-03
729
글번호 146746
지표
답변완료

수정부탁드립니다

안녕하세요. 아래식에서 파동의시작을 국내선물 장시작시간부터 계산되고 종료후에는 초기화되어 익일장은 또 새롭게 계산되는식으로 수정하면 좋겠습니다, 도움 부탁드립니다. input : af(0.02), maxAF(0.2),크기(0); input : 텍스트출력(1); var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0); var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0),DarkGray(0); var : ni(0),nP(0),nN(0),tx1(0),tx2(0),hi(0),li(0); var1 = CSar(af,maxAF); if crossup(c,var1) Then { T = 1; HH = H; HD = sdate; HT = stime; Hi = Index; HH1 = HH[1]; HD1 = HD[1]; HT1 = HT[1]; if LL > 0 Then { ni = Hi-Li+1; nP = CountIf(C>O,ni); nN = CountIf(C<O,ni); if 텍스트출력 == 1 then { Tx1 = Text_New(HD,HT,HH,NumToStr(ni,0)+"("+NumToStr(nP,0)+","+NumToStr(nN,0)+")"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,MAGENTA); Text_SetSize(tx1,크기); } } } if CrossDown(c,var1) Then { T = -1; LL = L; LD = sdate; LT = stime; Li = Index; LL1 = LL[1]; LD1 = LD[1]; LT1 = LT[1]; if HH > 0 Then { ni = Li-Hi+1; nP = CountIf(C>O,ni); nN = CountIf(C<O,ni); if 텍스트출력 == 1 then { Tx2 = Text_New(LD,LT,LL,NumToStr(ni,0)+"("+NumToStr(nP,0)+","+NumToStr(nN,0)+")"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,BLUE); Text_SetSize(tx2,크기); } } } if T == 1 then { if H > HH Then { HH = H; HD = sdate; HT = stime; HI = Index; ni = Hi-Li+1; nP = CountIf(C>O,ni); nN = CountIf(C<O,ni); if 텍스트출력 == 1 then { Text_Delete(tx1); Tx1 = Text_New(HD,HT,HH,NumToStr(ni,0)+"("+NumToStr(nP,0)+","+NumToStr(nN,0)+")"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,MAGENTA); Text_SetSize(tx1,크기); } } } if T == -1 then { if L < LL Then { LL = L; LD = sdate; LT = stime; Li = Index; ni = Li-Hi+1; nP = CountIf(C>O,ni); nN = CountIf(C<O,ni); if 텍스트출력 == 1 then { Text_Delete(tx2); Tx2 = Text_New(LD,LT,LL,NumToStr(ni,0)+"("+NumToStr(nP,0)+","+NumToStr(nN,0)+")"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,BLUE); Text_SetSize(tx2,크기); } } }
프로필 이미지
크라켄
2021-03-03
765
글번호 146744
지표
답변완료

문의

리버스거래 수식이며 피라미딩은 max 3개입니다. 문의1) b1-b2-b3-s1-s2-s3-b1-b2-b3...이런 패턴을 예상했으나 이러한 패턴을 포함하여 b1-b2-b3-s2-s3-s3-b3-b1-b2...처럼 뒤집을 때 s1보다 s2가 먼저 진입하며 피라미딩도 s2-s3-s3 처럼 s3가 중복되는 진입도 있으며 피라미딩 순서도 b3-b1-b2 처럼 순차적이 아닌 경우도 있습니다. 요청내용 첫째, 포지션을 뒤집을 때는 b1이나 s1부터 시작되고 둘째, s2-s3-s3 에서 s3 가 두번 들어가는데 동일 진입명은 피라미딩에서 제외하고 셋째, b1-b2-b3나 s1-s2-s3 처럼 순차적으로 피라미딩이 되게 수식을 수정하여 주십시요. ************************************************************************************ input:이평1(35),이평2(105),이평3(75),이평4(95); input:이평5(15),이평6(10),이평7(70),이평8(10); input:이평9(5),이평10(10),이평11(55),이평12(30); var : v1(0,data2),v2(0,data2); var : v3(0,data3),v4(0,data3); var : v5(0,data2),v6(0,data2); var : v7(0,data3),v8(0,data3); var : v9(0,data2),v10(0,data2); var : v11(0,data3),v12(0,data3); v1 = data2(ma(C,이평1)); v2 = data2(ma(C,이평2)); v3 = data3(ma(C,이평3)); v4 = data3(ma(C,이평4)); v5 = data2(ma(C,이평5)); v6 = data2(ma(C,이평6)); v7 = data3(ma(C,이평7)); v8 = data3(ma(C,이평8)); v9 = data2(ma(C,이평9)); v10 = data2(ma(C,이평10)); v11 = data3(ma(C,이평11)); v12 = data3(ma(C,이평12)); if MarketPosition <= 0 and CrossUp(v1,v2) or CrossUp(v3,v4) Then BuY("b1"); if MarketPosition == 1 and MaxEntries == 1 and CrossUp(v5,v6) or CrossUp(v7,v8) Then BuY("b2"); if MarketPosition == 1 and MaxEntries == 2 and CrossUp(v9,v10) or CrossUp(v11,v12) Then buy("b3"); if MarketPosition >= 0 and CrossDown(v1,v2) or CrossDown(v3,v4) Then Sell("s1"); if MarketPosition == -1 and MaxEntries == 1 and CrossDown(v5,v6) or CrossDown(v7,v8) Then Sell("s2"); if MarketPosition == -1 and MaxEntries == 2 and CrossDown(v9,v10) or CrossDown(v11,v12) Then Sell("s3");
프로필 이미지
목마와숙녀
2021-03-03
734
글번호 146743
시스템
답변완료

청산식 설명좀 부탁합니다

안녕하세요 아래는 제가 쓰는 매수청산식중에 하나인데요 얼마전에 "익일 3시15분이후까지 청산이 안되면 그이후 강제청산"식을 추가해 달라고했더니 if sDate > EntryDate and sTime >= 151500 Then ExitLong("bx"); 이렇게 넣어주셨더라고요 혹시 식 설명좀 부탁드려도될까요? 왜 저식이 매수당일이 아닌 익일 3시 15분까지 청산이 안되면 강제청산이 되는 식인지요 if MarketPosition == 0 and 진입조건 Then { Buy("A1.3"); #진입과 동시에 셋팅되서 진입봉 다음봉만 익절/손절감시해 신호 발생 ExitLong("A1.3.11",AtLimit,C*1.16,"A1.3"); ExitLong("A1.3.31",AtStop,C*0.99,"A1.3"); } if MarketPosition == 1 Then { #A1.3진입 if CurrentContrActs > CurrentContrActs[1] And LAtestEntryNAme(0) == "A1.3" Then { A1.3Price = LAtestEntryPrice(0); A1.3high = H; } if A1.3high > 0 And H > A1.3high Then A1.3high = H; if A1.3Price > 0 Then { ExitLong("A1.3.1",AtLimit,A1.3Price*1.16,"A1.3"); if A1.3high >= A1.3Price*1.01 Then ExitLong("A1.3.2",AtStop,A1.3high*0.93,"A1.3"); ExitLong("A1.3.3",AtStop,A1.3Price*0.99,"A1.3"); } if sDate > EntryDate and sTime >= 151500 Then ExitLong("bx"); }
프로필 이미지
말라
2021-03-03
699
글번호 146742
시스템
답변완료

지표

예를들어 10시 시가선 11시 시가선 12시 시가선 이런식으로 각 시간마다 시가선을 우측연장으로 표현하고 시가가 올라가면 올라가는 계단형식으로 표현하고 내려가면 반대로 표현이 가능한지요.(현재가도 추가 부탁합니다) 가능하다면 지표속성에서 변수로 시간을 조정할수 있게 해주시고요 차트표시에 나타나서 체우기를 할수 있게 부탁 드립니다.
프로필 이미지
야크
2021-03-03
763
글번호 146741
지표
답변완료

시그널메이커를 예스로요~

안녕하세요? 시그널메이커에서 예스로 이사중입니다.꼭좀 변환 부탁드립니다.^^ input : Exit_PT(200),Exit_LPT(200),BuyProfit(150),SellProfit(150),StopTick(100); var :SP(0); Params : TradingStartTime1(090000),TradingEndTime1(045400); var : Today_P( 0 ), Pre_NetProfit( 0 ), ProfitPoint( 0 ),LossPoint(0), myOpenProfit(0),TickPoint(0); Params : FastPeriod(92), SlowPeriod(109), SignalPeriod(85); SP = SignalPosition; TickPoint = OneTick * PriceScale; V0 = MACD(C, FastPeriod, SlowPeriod); V1 = XAverage(V0, SignalPeriod); if Time = 090000 Or (Time >= 090000 And (Time[1] < 090000 Or Date<>date[1])) Then Begin ProfitPoint = 0; Today_P = 0; Pre_NetProfit = NetProfit[1]; condition99 = false; condition88 = false; End; Today_P = NetProfit - Pre_NetProfit; // 하루 누적 수익 myOpenProfit = OpenPositionProfit; If (Today_P + myOpenProfit) >= (Exit_PT * TickPoint ) Then condition99 = true; If (Today_P + myOpenProfit) <= (-Exit_LPT * TickPoint) Then condition88 = true; if TradingStartTime1 < TradingEndTime1 Then Begin If TradingStartTIME1 <= TIME And TIME <= TradingEndTIME1 Then COND44 = True Else COND44 = False; End Else Begin If TradingStartTIME1 <= TIME Or TIME <= TradingEndTIME1 Then COND44 = True Else COND44 = False; End; If Cond44 = False Then Begin if SP <> 0 Then Begin ExitLong("마감 매수 청산",OnClose,def,def,CurrentContracts); ExitShort("마감 매도 청산",OnClose,def,def,CurrentContracts); End; Cond44 = False; End; ProfitPoint = Exit_PT * TickPoint? - Today_P - myOpenProfit; LossPoint = Exit_LPT * TickPoint + Today_P + myOpenProfit; if 1 = Sp then Begin ExitLong("매수 익절마감", Atlimit, close + ProfitPoint); ExitLong("매수 손절마감", AtStop, close - LossPoint); ExitLong("매수 청산", Atlimit, EntryPrice + BuyProfit * TickPoint ); End Else if -1 = Sp then Begin ExitShort("매도 익절마감", Atlimit, close - ProfitPoint); ExitShort("매도 손절마감", AtStop, close + LossPoint); ExitShort("매도 청산", Atlimit, EntryPrice - SellProfit * TickPoint ); End; //지정한 시간대에만 거래 if Cond44 And false = condition99 And false = condition88 Then Begin if CrossUp(V0,V1) Then Buy("매수") Else if CrossDown(V0,V1) Then Sell("매도"); End; SetStopLoss(StopTick * TickPoint * currentcontracts ,pointstop); //Trailing 적용하기 Params : up_price1(135), dn_price1(100), up_price2(100), dn_price2(80),up_price3(50), dn_price3(1); var : TickSize(0); TickSize = OneTick * PriceScale; If MaxContractProfit < TickSize * (up_price1 + 10) Then SetStopTrailing(TickSize * dn_price1, TickSize * up_price1) Else if MaxContractProfit < TickSize * (up_price2 + 10) Then setstopTrailing(TickSize * dn_price2, TickSize * up_price2) Else SetStopTrailing(TickSize * dn_price3, TickSize * up_price3);
프로필 이미지
jyck
2021-03-02
772
글번호 146740
시스템
답변완료

부탁합니다

안녕하세요 시스템식좀 부탁합니다 이평선 5 10 20 40 60 사용합니다 매수 --- 이평선 40 60 이 같거나 40 이평선이 60 보다 크고 5 일 이평선이 10 일 이평선보다 크고 음봉때 매수 추가매수 --- 20 이평선 또는 40 이평선이 각도가 살아있고 터치하고 아래꼬리가 발생하면 매수 손절 -- 60 이평선 이탈시 손절 반대 매도도 부탁합니다
프로필 이미지
kjdkdh
2021-03-02
784
글번호 146718
시스템
답변완료

추가 식좀 부탁합니다

안녕하세요 추가 식좀 부탁합니다 매수 매도 진입청산 색상을 이용합니다 1 진입 해서 20틱 이상 수익이 발생하지 않고 손절은 되지 않았으나 진입 가격을 이탈하고 다시 회복하면 진입가 3틱 이상에서 청산 2 진입 해서 30틱 이상 수익이 발생하고 내려오면 진입가 5틱 이상에서 청산 3 진입 해서 60틱 이상 수익이 발생하고 내려오면 20틱 이상에서 청산 4 300틱 이상 수익나면 포지션 완전청산 5 특정이평선 (예 60이평선) 매수시 아래에 있으면 완전청산 200틱 매수시 위에 있으면 완전청산 50틱 6 특정이평선이 (예 60이평선) 연속 4봉 올라가면 손절 반대식도 부탁합니다 이 기능들은 변수 에서 처리 할수 있겠금 부탁합니다
프로필 이미지
kjdkdh
2021-03-03
1320
글번호 146716
시스템