커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

15분봉에서

안녕 하세요... 처음 인사 드립니다. 저는 15분봉에서 시가 돌파시 종목을 검색할 수 있는 검색식을 만들어 보고 싶어서 문의 드립니다.
프로필 이미지
정규남
2019-07-26
225
글번호 130670
종목검색
답변완료

테이타표작성

수고 많으십니다. 챠트를 보다보니 데이타표가 필요하게 되더군요 선물 옵션의 월봉 주봉 일봉의 전월,전주, 전일,캔들의 고가 저가 중심 의 가격을 차월 과 차차월 순으로 함께 20일 40일 60일 간격으로 한꺼번에 볼수 있는 데이타표의 예제가 있을 까요? 1)기본 현선물,선물차월,선물차차월(월,주,일) 2)옵션 각등가,옵션차월,옵션차차월(월,주,일)
프로필 이미지
회원
2019-07-26
234
글번호 130664
시스템
답변완료

피라미딩순 청산

피라미딩 설정후 아래 수식을 일반적으로 사용하고 있습니다. 아래 설정대로면 총 3번의 진입이 발생합니다. 첫번째 진입은 수식의 전략대로 진입하며, 두번째 진입과 세번째는 변동폭에 따라 진입합니다. 요청내용) 진입순서별로 구분하여 손절할 수 있는 수식을 요청합니다. 1st 진입의 손절 2nd 진입의 손절 3th 진입의 손절 항상 고맙습니다. ************************************************************************************ 1) buy만 거래하는 수식 input : 변동폭(0.50),수량(3); if MarketPosition == 1 and MaxContracts < 수량 Then buy("bb",AtStop,LatestEntryPrice(0)+변동폭); 2)sell만 거래하는 수식 input : 변동폭(0.50),수량(3) ; if MarketPosition == -1 and MaxContracts < 수량 Then sell("ss",AtStop,LatestEntryPrice(0)-변동폭);
프로필 이미지
목마와숙녀
2020-01-20
233
글번호 130663
시스템
답변완료

추가라인작업

기존라인표입니다 추가 -이격2(0.63)을 더 넣으려는 수식을 작성하려니 어렵읍니다 검토해보시고 ,라인 하나 더 넣는 수식표 부탁드립니다 이격3(0.63)은 (2.5-1.25)에서 나온 (0.625)입니다 수식하실때 이격3(이격1-이격2)더 정확 할것 같읍니다. Input : 기준1(290), 이격1(2.5), 이격2(1.25), AA1(5); var3 = 기준1; var1=0; if var1 <= AA1 Then { plotbaseline1(Var3,"1"); plotbaseline2(Var3-이격2,"2"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline3(Var3-(이격1*1),"3"); plotbaseline4(Var3-(이격1*1)-이격2,"4"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline5(Var3-(이격1*2),"5"); plotbaseline6(Var3-(이격1*2)-이격2,"6"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline7(Var3-(이격1*3),"7"); plotbaseline8(Var3-(이격1*3)-이격2,"8"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline9(Var3-(이격1*4),"9"); plotbaseline10(Var3-(이격1*4)-이격2,"10"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline11(Var3-(이격1*5),"11"); plotbaseline12(Var3-(이격1*5)-이격2,"12"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline13(Var3-(이격1*6),"13"); plotbaseline14(Var3-(이격1*6)-이격2,"14"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline15(Var3-(이격1*7),"15"); plotbaseline16(Var3-(이격1*7)-이격2,"16"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline17(Var3-(이격1*8),"17"); plotbaseline18(Var3-(이격1*8)-이격2,"18"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline19(Var3-(이격1*9),"19"); plotbaseline20(Var3-(이격1*9)-이격2,"20"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline21(Var3-(이격1*10),"21"); plotbaseline22(Var3-(이격1*10)-이격2,"22"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline23(Var3-(이격1*11),"23"); plotbaseline24(Var3-(이격1*11)-이격2,"24"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline25(Var3-(이격1*12),"25"); plotbaseline26(Var3-(이격1*12)-이격2,"26"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline27(Var3-(이격1*13),"27"); plotbaseline28(Var3-(이격1*13)-이격2,"28"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline29(Var3-(이격1*14),"29"); plotbaseline30(Var3-(이격1*14)-이격2,"30"); var1 = var1 +1 ; } if var1 <= AA1 Then { plotbaseline31(Var3-(이격1*15),"31"); plotbaseline32(Var3-(이격1*15)-이격2,"32"); var1 = var1 +1 ; }
프로필 이미지
회원
2019-07-26
243
글번호 130662
지표

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

프로필 이미지
좌오비우오비
2019-07-26
2
글번호 130660
시스템
답변완료

시스템

안녕하세요 아래시스템식 해석 부탁드립니다 감사합니다 input : Period(50),Multiplier(3); var : dAtr(0),UpperLevel(0),LowerLevel(0),Direction(0); dAtr=ATR(Period); UpperLevel=(High+Low)/2+Multiplier*dAtr; LowerLevel=(High+Low)/2-Multiplier*dAtr; Direction = Direction[1]; if close > UpperLevel[1] then Direction = 1; if close < LowerLevel[1] then Direction = -1; if Direction > 0 then { LowerLevel = Max(LowerLevel,LowerLevel[1]); #plot1(LowerLevel,"SuperTrend",rgb(65,105,225)); } else { UpperLevel = Min(UpperLevel,UpperLevel[1]); #plot1(UpperLevel,"SuperTrend",rgb(255,99,71)); } # 매수/매도청산 if Direction > 0 then { Buy("매수"); }
프로필 이미지
달마7
2019-07-26
217
글번호 130659
시스템
답변완료

시스템 수식 질문입니다

매도신호가 발생하면 매도신호가 발생한 음봉 시가에 매도하고, 매수신호가 발생하면 매수신호가 발생한 양봉 시가에 매수하는시스템 수식을 알고 싶습니다
프로필 이미지
회원
2019-07-26
182
글번호 130658
시스템
답변완료

부탁 드립니다.

WAVG를 어떻게 변환하는지요? 미리 감사 드립니다.
프로필 이미지
뮬리
2019-07-26
196
글번호 130655
지표
답변완료

기준라인 수식과 피라미딩

별첨파일은 아래수식을 시뮬레이션한 결과들 입니다. 피라미딩시 20개까지 진입하는 수식이고 Array : EP[30](0); 이고 피라미딩설정창에서 다른진입신호만허용입니다. 질문1) 첨부파일 첫번째 2019년 1월 28일 첫번째 진입의 손절(미니선물 50틱 ,1.00)이 적용되지 않고 end of day로 청산되었습니다. 2017년 3월 24일 첫번째 진입 손절은 정상처리됨. 질문2) 첨부파일 두번째 EP[1], EP[5], EP[30]순으로 방배열을 조정해 보았음 3가지 경우 모두 2019.4.19 MAX16개 진입이 발생했습니다.(년간 진입횟수와 수익은 서로 다름) 방배열 숫자가 작으면 피라미딩MAX도 작아지는 것 아닌지요 질문3) 피라미딩설정창에서 다른진입신호만허용과 모든진입신호허용이 있는데 buy만 진입하는 수식에서 위 구분은 어떤 차이를 발생시키나요. 항상 고맙습니다. *********************************************************************************** input : 기준(283),상승(0.10); input : 손절1(50),익절1(300),TR1(150); input : 손절2(50),익절2(300),TR2(150); input : 손절3(50),익절3(300),TR3(150); input : 손절4(50),익절4(300),TR4(150); input : 손절5(50),익절5(300),TR5(150); input : 손절6(50),익절6(300),TR6(150); input : 손절7(50),익절7(300),TR7(150); input : 손절8(50),익절8(300),TR8(150); input : 손절9(50),익절9(300),TR9(150); input : 손절10(50),익절10(300),TR10(150); input : 손절11(50),익절11(300),TR11(150); input : 손절12(50),익절12(300),TR12(150); input : 손절13(50),익절13(300),TR13(150); input : 손절14(50),익절14(300),TR14(150); input : 손절15(50),익절15(300),TR15(150); input : 손절16(50),익절16(300),TR16(150); input : 손절17(50),익절17(300),TR17(150); input : 손절18(50),익절18(300),TR18(150); input : 손절19(50),익절19(300),TR19(150); input : 손절20(50),익절20(300),TR20(150); Array : EP[30](0); if MarketPosition == 0 and NextBarOpen < 기준+상승 and ExitDate(1) != sdate Then buy("b1",AtStop,기준+상승); if MarketPosition == 1 Then { var1 = (기준+상승) + 상승*MaxEntries; EP[MaxEntries] = LatestEntryPrice(0); if MaxEntries == 1 and NextBarOpen < var1 Then buy("b2",AtStop,var1); if MaxEntries == 2 and NextBarOpen < var1 Then buy("b3",AtStop,var1); if MaxEntries == 3 and NextBarOpen < var1 Then buy("b4",AtStop,var1); if MaxEntries == 4 and NextBarOpen < var1 Then buy("b5",AtStop,var1); if MaxEntries == 5 and NextBarOpen < var1 Then buy("b6",AtStop,var1); if MaxEntries == 6 and NextBarOpen < var1 Then buy("b7",AtStop,var1); if MaxEntries == 7 and NextBarOpen < var1 Then buy("b8",AtStop,var1); if MaxEntries == 8 and NextBarOpen < var1 Then buy("b9",AtStop,var1); if MaxEntries == 9 and NextBarOpen < var1 Then buy("b10",AtStop,var1); if MaxEntries == 10 and NextBarOpen < var1 Then buy("b11",AtStop,var1); if MaxEntries == 11 and NextBarOpen < var1 Then buy("b12",AtStop,var1); if MaxEntries == 12 and NextBarOpen < var1 Then buy("b13",AtStop,var1); if MaxEntries == 13 and NextBarOpen < var1 Then buy("b14",AtStop,var1); if MaxEntries == 14 and NextBarOpen < var1 Then buy("b15",AtStop,var1); if MaxEntries == 15 and NextBarOpen < var1 Then buy("b16",AtStop,var1); if MaxEntries == 16 and NextBarOpen < var1 Then buy("b17",AtStop,var1); if MaxEntries == 17 and NextBarOpen < var1 Then buy("b18",AtStop,var1); if MaxEntries == 18 and NextBarOpen < var1 Then buy("b19",AtStop,var1); if MaxEntries == 19 and NextBarOpen < var1 Then buy("b20",AtStop,var1); if MaxEntries >= 1 and EP[1] > 0 Then { ExitLong("bl1",AtStop,EP[1]-PriceScale*손절1,"b1"); ExitLong("bp1",Atlimit,EP[1]+PriceScale*익절1,"b1"); ExitLong("btr1",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR1,"b1"); } if MaxEntries >= 2 and EP[2] > 0 Then { ExitLong("bl2",AtStop,EP[2]-PriceScale*손절2,"b2"); ExitLong("bp2",Atlimit,EP[2]+PriceScale*익절2,"b2"); ExitLong("btr2",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR2,"b2"); } if MaxEntries >= 3 and EP[3] > 0 Then { ExitLong("bl3",AtStop,EP[3]-PriceScale*손절3,"b3"); ExitLong("bp3",Atlimit,EP[3]+PriceScale*익절3,"b3"); ExitLong("btr3",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR3,"b3"); } if MaxEntries >= 4 and EP[4] > 0 Then { ExitLong("bl4",AtStop,EP[4]-PriceScale*손절4,"b4"); ExitLong("bp4",Atlimit,EP[4]+PriceScale*익절4,"b4"); ExitLong("btr4",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR4,"b4"); } if MaxEntries >= 5 and EP[5] > 0 Then { ExitLong("bl5",AtStop,EP[5]-PriceScale*손절5,"b5"); ExitLong("bp5",Atlimit,EP[5]+PriceScale*익절5,"b5"); ExitLong("btr5",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR5,"b5"); } if MaxEntries >= 6 and EP[6] > 0 Then { ExitLong("bl6",AtStop,EP[6]-PriceScale*손절6,"b6"); ExitLong("bp6",Atlimit,EP[6]+PriceScale*익절6,"b6"); ExitLong("btr6",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR6,"b6"); } if MaxEntries >= 7 and EP[7] > 0 Then { ExitLong("bl7",AtStop,EP[7]-PriceScale*손절7,"b7"); ExitLong("bp7",Atlimit,EP[7]+PriceScale*익절7,"b7"); ExitLong("btr7",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR7,"b7"); } if MaxEntries >= 8 and EP[8] > 0 Then { ExitLong("bl8",AtStop,EP[8]-PriceScale*손절8,"b8"); ExitLong("bp8",Atlimit,EP[8]+PriceScale*익절8,"b8"); ExitLong("btr8",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR8,"b8"); } if MaxEntries >= 9 and EP[9] > 0 Then { ExitLong("bl9",AtStop,EP[9]-PriceScale*손절9,"b9"); ExitLong("bp9",Atlimit,EP[9]+PriceScale*익절9,"b9"); ExitLong("btr9",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR9,"b9"); } if MaxEntries >= 10 and EP[10] > 0 Then { ExitLong("bl10",AtStop,EP[10]-PriceScale*손절10,"b10"); ExitLong("bp10",Atlimit,EP[10]+PriceScale*익절10,"b10"); ExitLong("btr10",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR10,"b10"); } if MaxEntries >= 11 and EP[11] > 0 Then { ExitLong("bl11",AtStop,EP[11]-PriceScale*손절11,"b11"); ExitLong("bp11",Atlimit,EP[11]+PriceScale*익절11,"b11"); ExitLong("btr11",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR11,"b11"); } if MaxEntries >= 12 and EP[12] > 0 Then { ExitLong("bl12",AtStop,EP[12]-PriceScale*손절12,"b12"); ExitLong("bp12",Atlimit,EP[12]+PriceScale*익절12,"b12"); ExitLong("btr12",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR12,"b12"); } if MaxEntries >= 13 and EP[13] > 0 Then { ExitLong("bl13",AtStop,EP[13]-PriceScale*손절13,"b13"); ExitLong("bp13",Atlimit,EP[13]+PriceScale*익절13,"b13"); ExitLong("btr13",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR13,"b13"); } if MaxEntries >= 14 and EP[14] > 0 Then { ExitLong("bl14",AtStop,EP[14]-PriceScale*손절14,"b14"); ExitLong("bp14",Atlimit,EP[14]+PriceScale*익절14,"b14"); ExitLong("btr14",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR14,"b14"); } if MaxEntries >= 15 and EP[15] > 0 Then { ExitLong("bl15",AtStop,EP[15]-PriceScale*손절15,"b15"); ExitLong("bp15",Atlimit,EP[15]+PriceScale*익절15,"b15"); ExitLong("btr15",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR15,"b15"); } if MaxEntries >= 16 and EP[16] > 0 Then { ExitLong("bl16",AtStop,EP[16]-PriceScale*손절16,"b16"); ExitLong("bp16",Atlimit,EP[16]+PriceScale*익절16,"b16"); ExitLong("btr16",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR16,"b16"); } if MaxEntries >= 17 and EP[17] > 0 Then { ExitLong("bl17",AtStop,EP[17]-PriceScale*손절17,"b17"); ExitLong("bp17",Atlimit,EP[17]+PriceScale*익절17,"b17"); ExitLong("btr17",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR17,"b17"); } if MaxEntries >= 18 and EP[18] > 0 Then { ExitLong("bl18",AtStop,EP[18]-PriceScale*손절18,"b18"); ExitLong("bp18",Atlimit,EP[18]+PriceScale*익절18,"b18"); ExitLong("btr18",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR18,"b18"); } if MaxEntries >= 19 and EP[19] > 0 Then { ExitLong("bl19",AtStop,EP[19]-PriceScale*손절19,"b19"); ExitLong("bp19",Atlimit,EP[19]+PriceScale*익절19,"b19"); ExitLong("btr19",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR19,"b19"); } if MaxEntries >= 20 and EP[20] > 0 Then { ExitLong("bl20",AtStop,EP[20]-PriceScale*손절20,"b20"); ExitLong("bp20",Atlimit,EP[20]+PriceScale*익절20,"b20"); ExitLong("btr20",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR20,"b20"); } }
프로필 이미지
목마와숙녀
2020-01-20
316
글번호 130654
시스템