커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3468
글번호 230811
답변완료
지표수식요청
수고많으십니다 아래 수식을 예스언어로 부탁드립니다
MO=floor(date/100);
TO=sum(H);
TT=countsince(MO!=MO(1),c>0);
TD=TO-valuewhen(1,MO!=MO(1),TO(1));
CROSSUP(C,TD/TT)
감사합니다
2023-07-23
1332
글번호 170857
답변완료
진입신호 안되던데?
안녕하세요 식좀 수정 부탁드려요 감사합니다
========================================================================================
//지수
Vars : CodeES ("ES.1" ), 일봉ES (25), 시작시분초ES (090000), 종료시분초ES (055000), 상단저항가ES (1.00 ), 하단지지가ES (1.00 ), 상단전환가ES (3 ), 하단전환가ES (3 ), 고점매도가ES (11.0 ), 저점매수가ES (11.0 ), 상단목표가ES (12 ), 하단목표가ES (12 ), 진입횟수ES ( 100 ) ; // 미니S&P500
Vars : CodeYM ("YM.1" ), 일봉YM (25), 시작시분초YM (090000), 종료시분초YM (055000), 상단저항가YM (10.0 ), 하단지지가YM (10.0 ), 상단전환가YM (30 ), 하단전환가YM (30 ), 고점매도가YM (110.0 ), 저점매수가YM (110.0 ), 상단목표가YM (120 ), 하단목표가YM (120 ), 진입횟수YM ( 100 ) ; // 미니다우
Vars : CodeNQ ("NQ.1" ), 일봉NQ (25), 시작시분초NQ (090000), 종료시분초NQ (055000), 상단저항가NQ (2.50 ), 하단지지가NQ (2.50 ), 상단전환가NQ (7.5 ), 하단전환가NQ (7.5 ), 고점매도가NQ (27.5 ), 저점매수가NQ (27.5 ), 상단목표가NQ (30 ), 하단목표가NQ (30 ), 진입횟수NQ ( 100 ) ; // 미니나스닥100
//에너지
Vars : CodeCL ("CL.1" ), 일봉CL (25), 시작시분초CL (090000), 종료시분초CL (055000), 상단저항가CL (0.05 ), 하단지지가CL (0.05 ), 상단전환가CL (0.15 ), 하단전환가CL (0.15 ), 고점매도가CL (0.55 ), 저점매수가CL (0.55 ), 상단목표가CL (0.6 ), 하단목표가CL (0.6 ), 진입횟수CL ( 100 ) ; // 크루드오일
Vars : CodeBZ ("BZ.1" ), 일봉BZ (25), 시작시분초BZ (090000), 종료시분초BZ (055000), 상단저항가BZ (0.05 ), 하단지지가BZ (0.05 ), 상단전환가BZ (0.15 ), 하단전환가BZ (0.15 ), 고점매도가BZ (0.55 ), 저점매수가BZ (0.55 ), 상단목표가BZ (0.6 ), 하단목표가BZ (0.6 ), 진입횟수BZ ( 100 ) ; // 브렌트오일
Vars : CodeHO ("HO.1" ), 일봉HO (25), 시작시분초HO (090000), 종료시분초HO (055000), 상단저항가HO (0.00119 ), 하단지지가HO (0.00119 ), 상단전환가HO (0.00357 ), 하단전환가HO (0.00357 ), 고점매도가HO (0.01310 ), 저점매수가HO (0.01310 ), 상단목표가HO (0.01429 ), 하단목표가HO (0.01429 ), 진입횟수HO ( 100 ) ; // 히팅오일
Vars : CodeRB ("RB.1" ), 일봉RB (25), 시작시분초RB (090000), 종료시분초RB (055000), 상단저항가RB (0.00119 ), 하단지지가RB (0.00119 ), 상단전환가RB (0.00357 ), 하단전환가RB (0.00357 ), 고점매도가RB (0.01310 ), 저점매수가RB (0.01310 ), 상단목표가RB (0.01429 ), 하단목표가RB (0.01429 ), 진입횟수RB ( 100 ) ; // 가솔린
Vars : CodeNG ("NG.1" ), 일봉NG (25), 시작시분초NG (090000), 종료시분초NG (055000), 상단저항가NG (0.005 ), 하단지지가NG (0.005 ), 상단전환가NG (0.015 ), 하단전환가NG (0.15 ), 고점매도가NG (0.055 ), 저점매수가NG (0.055 ), 상단목표가NG (0.06 ), 하단목표가NG (0.06 ), 진입횟수NG ( 100 ) ; // 천연가스
//금속
Vars : CodeGC ("GC.1" ), 일봉GC (25), 시작시분초GC (090000), 종료시분초GC (055000), 상단저항가GC (0.50 ), 하단지지가GC (0.50 ), 상단전환가GC (1.5 ), 하단전환가GC (1.5 ), 고점매도가GC (5.5 ), 저점매수가GC (5.5 ), 상단목표가GC (6 ), 하단목표가GC (6 ), 진입횟수GC ( 100 ) ; // 골드
Vars : CodeSI ("SI.1" ), 일봉SI (25), 시작시분초SI (090000), 종료시분초SI (055000), 상단저항가SI (0.01 ), 하단지지가SI (0.01 ), 상단전환가SI (0.03 ), 하단전환가SI (0.03 ), 고점매도가SI (0.11 ), 저점매수가SI (0.11 ), 상단목표가SI (0.12 ), 하단목표가SI (0.12 ), 진입횟수SI ( 100 ) ; // 실버
Vars : CodePL ("PL.1" ), 일봉PL (25), 시작시분초PL (090000), 종료시분초PL (055000), 상단저항가PL (1.00 ), 하단지지가PL (1.00 ), 상단전환가PL (3 ), 하단전환가PL (3 ), 고점매도가PL (11.0 ), 저점매수가PL (11.0 ), 상단목표가PL (12 ), 하단목표가PL (12 ), 진입횟수PL ( 100 ) ; // 플래티넘
Vars : CodeHG ("HG.1" ), 일봉HG (25), 시작시분초HG (090000), 종료시분초HG (055000), 상단저항가HG (0.2 ), 하단지지가HG (0.2 ), 상단전환가HG (0.6 ), 하단전환가HG (0.6 ), 고점매도가HG (2.2 ), 저점매수가HG (2.2 ), 상단목표가HG (2.4 ), 하단목표가HG (2.4 ), 진입횟수HG ( 100 ) ; // 구리
//농축산물
Vars : CodeZW ("ZW.1" ), 일봉ZW (25), 시작시분초ZW (090000), 종료시분초ZW (031000), 상단저항가ZW (0 ), 하단지지가ZW (0 ), 상단전환가ZW (3 ), 하단전환가ZW (3 ), 고점매도가ZW (11.0 ), 저점매수가ZW (11.0 ), 상단목표가ZW (12 ), 하단목표가ZW (12 ), 진입횟수ZW ( 100 ) ; // Wheat
Vars : CodeZS ("ZS.1" ), 일봉ZS (25), 시작시분초ZS (090000), 종료시분초ZS (031000), 상단저항가ZS (0 ), 하단지지가ZS (0 ), 상단전환가ZS (3 ), 하단전환가ZS (3 ), 고점매도가ZS (11.0 ), 저점매수가ZS (11.0 ), 상단목표가ZS (12 ), 하단목표가ZS (12 ), 진입횟수ZS ( 100 ) ; // Soybean
Vars : CodeZM ("ZM.1" ), 일봉ZM (25), 시작시분초ZM (090000), 종료시분초ZM (031000), 상단저항가ZM (0 ), 하단지지가ZM (0 ), 상단전환가ZM (1.5 ), 하단전환가ZM (1.5 ), 고점매도가ZM (5.5 ), 저점매수가ZM (5.5 ), 상단목표가ZM (6 ), 하단목표가ZM (6 ), 진입횟수ZM ( 100 ) ; // Soybean Meal
Vars : CodeLE ("LE.1" ), 일봉LE (25), 시작시분초LE (224000), 종료시분초LE (030000), 상단저항가LE (0 ), 하단지지가LE (0 ), 상단전환가LE (0.375 ), 하단전환가LE (0.375 ), 고점매도가LE (1.375 ), 저점매수가LE (1.375 ), 상단목표가LE (1.5 ), 하단목표가LE (1.5 ), 진입횟수LE ( 100 ) ; // Live Cattle
Vars : CodeHE ("HE.1" ), 일봉HE (25), 시작시분초HE (224000), 종료시분초HE (030000), 상단저항가HE (0 ), 하단지지가HE (0 ), 상단전환가HE (0.375 ), 하단전환가HE (0.375 ), 고점매도가HE (1.375 ), 저점매수가HE (1.375 ), 상단목표가HE (1.5 ), 하단목표가HE (1.5 ), 진입횟수HE ( 100 ) ; // Lean Hogs
Vars : CodeKC ("KC.1" ), 일봉KC (25), 시작시분초KC (171500), 종료시분초KC (022000), 상단저항가KC (0 ), 하단지지가KC (0 ), 상단전환가KC (0.4 ), 하단전환가KC (0.4 ), 고점매도가KC (1.46667 ), 저점매수가KC (1.46667 ), 상단목표가KC (1.60 ), 하단목표가KC (1.60 ), 진입횟수KC ( 100 ) ; // ICE Coffee
//통화
Vars : Code6A ("6A.1" ), 일봉6A (25), 시작시분초6A (090000), 종료시분초6A (055000), 상단저항가6A (0 ), 하단지지가6A (0 ), 상단전환가6A (0.0015 ), 하단전환가6A (0.0015 ), 고점매도가6A (0.0055 ), 저점매수가6A (0.0055 ), 상단목표가6A (0.006 ), 하단목표가6A (0.006 ), 진입횟수6A ( 100 ) ; // 호주 달러
Vars : Code6C ("6C.1" ), 일봉6C (25), 시작시분초6C (090000), 종료시분초6C (055000), 상단저항가6C (0 ), 하단지지가6C (0 ), 상단전환가6C (0.0015 ), 하단전환가6C (0.0015 ), 고점매도가6C (0.0055 ), 저점매수가6C (0.0055 ), 상단목표가6C (0.006 ), 하단목표가6C (0.006 ), 진입횟수6C ( 100 ) ; // 캐나다 달러
Vars : Code6B ("6B.1" ), 일봉6B (25), 시작시분초6B (090000), 종료시분초6B (055000), 상단저항가6B (0 ), 하단지지가6B (0 ), 상단전환가6B (0.0024 ), 하단전환가6B (0.0024 ), 고점매도가6B (0.0088 ), 저점매수가6B (0.0088 ), 상단목표가6B (0.0096 ), 하단목표가6B (0.0096 ), 진입횟수6B ( 100 ) ; // 영국 파운드
Vars : Code6J ("6J.1" ), 일봉6J (25), 시작시분초6J (090000), 종료시분초6J (055000), 상단저항가6J (0 ), 하단지지가6J (0 ), 상단전환가6J (12 ), 하단전환가6J (12 ), 고점매도가6J (44.00 ), 저점매수가6J (44.00 ), 상단목표가6J (48 ), 하단목표가6J (48 ), 진입횟수6J ( 100 ) ; // 일본 엔
Vars : Code6N ("6N.1" ), 일봉6N (25), 시작시분초6N (090000), 종료시분초6N (055000), 상단저항가6N (0 ), 하단지지가6N (0 ), 상단전환가6N (0.0015 ), 하단전환가6N (0.0015 ), 고점매도가6N (0.0055 ), 저점매수가6N (0.0055 ), 상단목표가6N (0.006 ), 하단목표가6N (0.006 ), 진입횟수6N ( 100 ) ; // 뉴질랜드 달러
Vars : Code6S ("6S.1" ), 일봉6S (25), 시작시분초6S (090000), 종료시분초6S (055000), 상단저항가6S (0 ), 하단지지가6S (0 ), 상단전환가6S (0.0012 ), 하단전환가6S (0.0012 ), 고점매도가6S (0.0044 ), 저점매수가6S (0.0044 ), 상단목표가6S (0.0048 ), 하단목표가6S (0.0048 ), 진입횟수6S ( 100 ) ; // 스위스 프랑
Vars : Code6E ("6E.1" ), 일봉6E (25), 시작시분초6E (090000), 종료시분초6E (055000), 상단저항가6E (0 ), 하단지지가6E (0 ), 상단전환가6E (0.0012 ), 하단전환가6E (0.0012 ), 고점매도가6E (0.0044 ), 저점매수가6E (0.0044 ), 상단목표가6E (0.0048 ), 하단목표가6E (0.0048 ), 진입횟수6E ( 100 ) ; // 유럽연합 유로
Vars : CodeVX ("VX.1" ), 일봉VX (25), 시작시분초VX (090000), 종료시분초VX (055000), 상단저항가VX (0.05 ), 하단지지가VX (0.05 ), 상단전환가VX (0.2 ), 하단전환가VX (0.2 ), 고점매도가DX (2.75 ), 저점매수가DX (2.75 ), 상단목표가VX (0.6 ), 하단목표가VX (0.6 ), 진입횟수VX ( 100 ) ; // VIX
Vars : CodeDX ("DX.1" ), 일봉DX (25), 시작시분초DX (090000), 종료시분초DX (055000), 상단저항가DX (0.05 ), 하단지지가DX (0.05 ), 상단전환가DX (0.2 ), 하단전환가DX (0.2 ), 고점매도가VX (0.55 ), 저점매수가VX (0.55 ), 상단목표가DX (0.6 ), 하단목표가DX (0.6 ), 진입횟수DX ( 100 ) ; // 달러인덱스
//Input : 일봉이평선수정 (0);
//Input : 시작시분초수정 (0);
//Input : 종료시분초수정 (0);
//Input : 상단저항가수정 (0) ;
//Input : 하단지지가수정 (0) ;
//Input : 상단전환가수정 (0) ;
//Input : 하단전환가수정 (0) ;
//Input : 고점매도가수정 (0) ;
//Input : 저점매수가수정 (0) ;
//Input : 상단목표가수정 (0) ;
//Input : 하단목표가수정 (0) ;
Vars : CodeCheck ( FALSE ) ;
Vars : 일봉이평선조정 (0);
Vars : 시작시분초조정 (0);
Vars : 종료시분초조정 (0);
Vars : 상단저항가조정 (0) ;
Vars : 하단지지가조정 (0) ;
Vars : 상단전환가조정 (0) ;
Vars : 하단전환가조정 (0) ;
Vars : 고점매도가조정 (0) ;
Vars : 저점매수가조정 (0) ;
Vars : 상단목표가조정 (0) ;
Vars : 하단목표가조정 (0) ;
Vars : 진입횟수조정 (0) ;
if( CodeES == SymbolCode ) then { 일봉이평선조정 = 일봉ES ; 시작시분초조정 = 시작시분초ES ; 종료시분초조정 = 종료시분초ES ; 상단저항가조정 = 상단저항가ES ; 하단지지가조정 = 하단지지가ES ; 상단전환가조정 = 상단전환가ES ; 하단전환가조정 = 하단전환가ES ; 고점매도가조정 = 고점매도가ES ; 저점매수가조정 = 저점매수가ES ; 상단목표가조정 = 상단목표가ES ; 하단목표가조정 = 하단목표가ES ; 진입횟수조정 = 진입횟수ES ; CodeCheck = TRUE ; }
else if( CodeYM == SymbolCode ) then { 일봉이평선조정 = 일봉YM ; 시작시분초조정 = 시작시분초YM ; 종료시분초조정 = 종료시분초YM ; 상단저항가조정 = 상단저항가YM ; 하단지지가조정 = 하단지지가YM ; 상단전환가조정 = 상단전환가YM ; 하단전환가조정 = 하단전환가YM ; 고점매도가조정 = 고점매도가YM ; 저점매수가조정 = 저점매수가YM ; 상단목표가조정 = 상단목표가YM ; 하단목표가조정 = 하단목표가YM ; 진입횟수조정 = 진입횟수YM ; CodeCheck = TRUE ; }
else if( CodeNQ == SymbolCode ) then { 일봉이평선조정 = 일봉NQ ; 시작시분초조정 = 시작시분초NQ ; 종료시분초조정 = 종료시분초NQ ; 상단저항가조정 = 상단저항가NQ ; 하단지지가조정 = 하단지지가NQ ; 상단전환가조정 = 상단전환가NQ ; 하단전환가조정 = 하단전환가NQ ; 고점매도가조정 = 고점매도가NQ ; 저점매수가조정 = 저점매수가NQ ; 상단목표가조정 = 상단목표가NQ ; 하단목표가조정 = 하단목표가NQ ; 진입횟수조정 = 진입횟수NQ ; CodeCheck = TRUE ; }
else if( CodeCL == SymbolCode ) then { 일봉이평선조정 = 일봉CL ; 시작시분초조정 = 시작시분초CL ; 종료시분초조정 = 종료시분초CL ; 상단저항가조정 = 상단저항가CL ; 하단지지가조정 = 하단지지가CL ; 상단전환가조정 = 상단전환가CL ; 하단전환가조정 = 하단전환가CL ; 고점매도가조정 = 고점매도가CL ; 저점매수가조정 = 저점매수가CL ; 상단목표가조정 = 상단목표가CL ; 하단목표가조정 = 하단목표가CL ; 진입횟수조정 = 진입횟수CL ; CodeCheck = TRUE ; }
else if( CodeBZ == SymbolCode ) then { 일봉이평선조정 = 일봉BZ ; 시작시분초조정 = 시작시분초BZ ; 종료시분초조정 = 종료시분초BZ ; 상단저항가조정 = 상단저항가BZ ; 하단지지가조정 = 하단지지가BZ ; 상단전환가조정 = 상단전환가BZ ; 하단전환가조정 = 하단전환가BZ ; 고점매도가조정 = 고점매도가BZ ; 저점매수가조정 = 저점매수가BZ ; 상단목표가조정 = 상단목표가BZ ; 하단목표가조정 = 하단목표가BZ ; 진입횟수조정 = 진입횟수BZ ; CodeCheck = TRUE ; }
else if( CodeHO == SymbolCode ) then { 일봉이평선조정 = 일봉HO ; 시작시분초조정 = 시작시분초HO ; 종료시분초조정 = 종료시분초HO ; 상단저항가조정 = 상단저항가HO ; 하단지지가조정 = 하단지지가HO ; 상단전환가조정 = 상단전환가HO ; 하단전환가조정 = 하단전환가HO ; 고점매도가조정 = 고점매도가HO ; 저점매수가조정 = 저점매수가HO ; 상단목표가조정 = 상단목표가HO ; 하단목표가조정 = 하단목표가HO ; 진입횟수조정 = 진입횟수HO ; CodeCheck = TRUE ; }
else if( CodeRB == SymbolCode ) then { 일봉이평선조정 = 일봉RB ; 시작시분초조정 = 시작시분초RB ; 종료시분초조정 = 종료시분초RB ; 상단저항가조정 = 상단저항가RB ; 하단지지가조정 = 하단지지가RB ; 상단전환가조정 = 상단전환가RB ; 하단전환가조정 = 하단전환가RB ; 고점매도가조정 = 고점매도가RB ; 저점매수가조정 = 저점매수가RB ; 상단목표가조정 = 상단목표가RB ; 하단목표가조정 = 하단목표가RB ; 진입횟수조정 = 진입횟수RB ; CodeCheck = TRUE ; }
else if( CodeNG == SymbolCode ) then { 일봉이평선조정 = 일봉NG ; 시작시분초조정 = 시작시분초NG ; 종료시분초조정 = 종료시분초NG ; 상단저항가조정 = 상단저항가NG ; 하단지지가조정 = 하단지지가NG ; 상단전환가조정 = 상단전환가NG ; 하단전환가조정 = 하단전환가NG ; 고점매도가조정 = 고점매도가NG ; 저점매수가조정 = 저점매수가NG ; 상단목표가조정 = 상단목표가NG ; 하단목표가조정 = 하단목표가NG ; 진입횟수조정 = 진입횟수NG ; CodeCheck = TRUE ; }
else if( CodeGC == SymbolCode ) then { 일봉이평선조정 = 일봉GC ; 시작시분초조정 = 시작시분초GC ; 종료시분초조정 = 종료시분초GC ; 상단저항가조정 = 상단저항가GC ; 하단지지가조정 = 하단지지가GC ; 상단전환가조정 = 상단전환가GC ; 하단전환가조정 = 하단전환가GC ; 고점매도가조정 = 고점매도가GC ; 저점매수가조정 = 저점매수가GC ; 상단목표가조정 = 상단목표가GC ; 하단목표가조정 = 하단목표가GC ; 진입횟수조정 = 진입횟수GC ; CodeCheck = TRUE ; }
else if( CodeSI == SymbolCode ) then { 일봉이평선조정 = 일봉SI ; 시작시분초조정 = 시작시분초SI ; 종료시분초조정 = 종료시분초SI ; 상단저항가조정 = 상단저항가SI ; 하단지지가조정 = 하단지지가SI ; 상단전환가조정 = 상단전환가SI ; 하단전환가조정 = 하단전환가SI ; 고점매도가조정 = 고점매도가SI ; 저점매수가조정 = 저점매수가SI ; 상단목표가조정 = 상단목표가SI ; 하단목표가조정 = 하단목표가SI ; 진입횟수조정 = 진입횟수SI ; CodeCheck = TRUE ; }
else if( CodePL == SymbolCode ) then { 일봉이평선조정 = 일봉PL ; 시작시분초조정 = 시작시분초PL ; 종료시분초조정 = 종료시분초PL ; 상단저항가조정 = 상단저항가PL ; 하단지지가조정 = 하단지지가PL ; 상단전환가조정 = 상단전환가PL ; 하단전환가조정 = 하단전환가PL ; 고점매도가조정 = 고점매도가PL ; 저점매수가조정 = 저점매수가PL ; 상단목표가조정 = 상단목표가PL ; 하단목표가조정 = 하단목표가PL ; 진입횟수조정 = 진입횟수PL ; CodeCheck = TRUE ; }
else if( CodeHG == SymbolCode ) then { 일봉이평선조정 = 일봉HG ; 시작시분초조정 = 시작시분초HG ; 종료시분초조정 = 종료시분초HG ; 상단저항가조정 = 상단저항가HG ; 하단지지가조정 = 하단지지가HG ; 상단전환가조정 = 상단전환가HG ; 하단전환가조정 = 하단전환가HG ; 고점매도가조정 = 고점매도가HG ; 저점매수가조정 = 저점매수가HG ; 상단목표가조정 = 상단목표가HG ; 하단목표가조정 = 하단목표가HG ; 진입횟수조정 = 진입횟수HG ; CodeCheck = TRUE ; }
else if( CodeZW == SymbolCode ) then { 일봉이평선조정 = 일봉ZW ; 시작시분초조정 = 시작시분초ZW ; 종료시분초조정 = 종료시분초ZW ; 상단저항가조정 = 상단저항가ZW ; 하단지지가조정 = 하단지지가ZW ; 상단전환가조정 = 상단전환가ZW ; 하단전환가조정 = 하단전환가ZW ; 고점매도가조정 = 고점매도가ZW ; 저점매수가조정 = 저점매수가ZW ; 상단목표가조정 = 상단목표가ZW ; 하단목표가조정 = 하단목표가ZW ; 진입횟수조정 = 진입횟수ZW ; CodeCheck = TRUE ; }
else if( CodeZS == SymbolCode ) then { 일봉이평선조정 = 일봉ZS ; 시작시분초조정 = 시작시분초ZS ; 종료시분초조정 = 종료시분초ZS ; 상단저항가조정 = 상단저항가ZS ; 하단지지가조정 = 하단지지가ZS ; 상단전환가조정 = 상단전환가ZS ; 하단전환가조정 = 하단전환가ZS ; 고점매도가조정 = 고점매도가ZS ; 저점매수가조정 = 저점매수가ZS ; 상단목표가조정 = 상단목표가ZS ; 하단목표가조정 = 하단목표가ZS ; 진입횟수조정 = 진입횟수ZS ; CodeCheck = TRUE ; }
else if( CodeZM == SymbolCode ) then { 일봉이평선조정 = 일봉ZM ; 시작시분초조정 = 시작시분초ZM ; 종료시분초조정 = 종료시분초ZM ; 상단저항가조정 = 상단저항가ZM ; 하단지지가조정 = 하단지지가ZM ; 상단전환가조정 = 상단전환가ZM ; 하단전환가조정 = 하단전환가ZM ; 고점매도가조정 = 고점매도가ZM ; 저점매수가조정 = 저점매수가ZM ; 상단목표가조정 = 상단목표가ZM ; 하단목표가조정 = 하단목표가ZM ; 진입횟수조정 = 진입횟수ZM ; CodeCheck = TRUE ; }
else if( CodeLE == SymbolCode ) then { 일봉이평선조정 = 일봉LE ; 시작시분초조정 = 시작시분초LE ; 종료시분초조정 = 종료시분초LE ; 상단저항가조정 = 상단저항가LE ; 하단지지가조정 = 하단지지가LE ; 상단전환가조정 = 상단전환가LE ; 하단전환가조정 = 하단전환가LE ; 고점매도가조정 = 고점매도가LE ; 저점매수가조정 = 저점매수가LE ; 상단목표가조정 = 상단목표가LE ; 하단목표가조정 = 하단목표가LE ; 진입횟수조정 = 진입횟수LE ; CodeCheck = TRUE ; }
else if( CodeHE == SymbolCode ) then { 일봉이평선조정 = 일봉HE ; 시작시분초조정 = 시작시분초HE ; 종료시분초조정 = 종료시분초HE ; 상단저항가조정 = 상단저항가HE ; 하단지지가조정 = 하단지지가HE ; 상단전환가조정 = 상단전환가HE ; 하단전환가조정 = 하단전환가HE ; 고점매도가조정 = 고점매도가HE ; 저점매수가조정 = 저점매수가HE ; 상단목표가조정 = 상단목표가HE ; 하단목표가조정 = 하단목표가HE ; 진입횟수조정 = 진입횟수HE ; CodeCheck = TRUE ; }
else if( CodeKC == SymbolCode ) then { 일봉이평선조정 = 일봉KC ; 시작시분초조정 = 시작시분초KC ; 종료시분초조정 = 종료시분초KC ; 상단저항가조정 = 상단저항가KC ; 하단지지가조정 = 하단지지가KC ; 상단전환가조정 = 상단전환가KC ; 하단전환가조정 = 하단전환가KC ; 고점매도가조정 = 고점매도가KC ; 저점매수가조정 = 저점매수가KC ; 상단목표가조정 = 상단목표가KC ; 하단목표가조정 = 하단목표가KC ; 진입횟수조정 = 진입횟수KC ; CodeCheck = TRUE ; }
else if( Code6A == SymbolCode ) then { 일봉이평선조정 = 일봉6A ; 시작시분초조정 = 시작시분초6A ; 종료시분초조정 = 종료시분초6A ; 상단저항가조정 = 상단저항가6A ; 하단지지가조정 = 하단지지가6A ; 상단전환가조정 = 상단전환가6A ; 하단전환가조정 = 하단전환가6A ; 고점매도가조정 = 고점매도가6A ; 저점매수가조정 = 저점매수가6A ; 상단목표가조정 = 상단목표가6A ; 하단목표가조정 = 하단목표가6A ; 진입횟수조정 = 진입횟수6A ; CodeCheck = TRUE ; }
else if( Code6C == SymbolCode ) then { 일봉이평선조정 = 일봉6C ; 시작시분초조정 = 시작시분초6C ; 종료시분초조정 = 종료시분초6C ; 상단저항가조정 = 상단저항가6C ; 하단지지가조정 = 하단지지가6C ; 상단전환가조정 = 상단전환가6C ; 하단전환가조정 = 하단전환가6C ; 고점매도가조정 = 고점매도가6C ; 저점매수가조정 = 저점매수가6C ; 상단목표가조정 = 상단목표가6C ; 하단목표가조정 = 하단목표가6C ; 진입횟수조정 = 진입횟수6C ; CodeCheck = TRUE ; }
else if( Code6B == SymbolCode ) then { 일봉이평선조정 = 일봉6B ; 시작시분초조정 = 시작시분초6B ; 종료시분초조정 = 종료시분초6B ; 상단저항가조정 = 상단저항가6B ; 하단지지가조정 = 하단지지가6B ; 상단전환가조정 = 상단전환가6B ; 하단전환가조정 = 하단전환가6B ; 고점매도가조정 = 고점매도가6B ; 저점매수가조정 = 저점매수가6B ; 상단목표가조정 = 상단목표가6B ; 하단목표가조정 = 하단목표가6B ; 진입횟수조정 = 진입횟수6B ; CodeCheck = TRUE ; }
else if( Code6J == SymbolCode ) then { 일봉이평선조정 = 일봉6J ; 시작시분초조정 = 시작시분초6J ; 종료시분초조정 = 종료시분초6J ; 상단저항가조정 = 상단저항가6J ; 하단지지가조정 = 하단지지가6J ; 상단전환가조정 = 상단전환가6J ; 하단전환가조정 = 하단전환가6J ; 고점매도가조정 = 고점매도가6J ; 저점매수가조정 = 저점매수가6J ; 상단목표가조정 = 상단목표가6J ; 하단목표가조정 = 하단목표가6J ; 진입횟수조정 = 진입횟수6J ; CodeCheck = TRUE ; }
else if( Code6N == SymbolCode ) then { 일봉이평선조정 = 일봉6N ; 시작시분초조정 = 시작시분초6N ; 종료시분초조정 = 종료시분초6N ; 상단저항가조정 = 상단저항가6N ; 하단지지가조정 = 하단지지가6N ; 상단전환가조정 = 상단전환가6N ; 하단전환가조정 = 하단전환가6N ; 고점매도가조정 = 고점매도가6N ; 저점매수가조정 = 저점매수가6N ; 상단목표가조정 = 상단목표가6N ; 하단목표가조정 = 하단목표가6N ; 진입횟수조정 = 진입횟수6N ; CodeCheck = TRUE ; }
else if( Code6S == SymbolCode ) then { 일봉이평선조정 = 일봉6S ; 시작시분초조정 = 시작시분초6S ; 종료시분초조정 = 종료시분초6S ; 상단저항가조정 = 상단저항가6S ; 하단지지가조정 = 하단지지가6S ; 상단전환가조정 = 상단전환가6S ; 하단전환가조정 = 하단전환가6S ; 고점매도가조정 = 고점매도가6S ; 저점매수가조정 = 저점매수가6S ; 상단목표가조정 = 상단목표가6S ; 하단목표가조정 = 하단목표가6S ; 진입횟수조정 = 진입횟수6S ; CodeCheck = TRUE ; }
else if( Code6E == SymbolCode ) then { 일봉이평선조정 = 일봉6E ; 시작시분초조정 = 시작시분초6E ; 종료시분초조정 = 종료시분초6E ; 상단저항가조정 = 상단저항가6E ; 하단지지가조정 = 하단지지가6E ; 상단전환가조정 = 상단전환가6E ; 하단전환가조정 = 하단전환가6E ; 고점매도가조정 = 고점매도가6E ; 저점매수가조정 = 저점매수가6E ; 상단목표가조정 = 상단목표가6E ; 하단목표가조정 = 하단목표가6E ; 진입횟수조정 = 진입횟수6E ; CodeCheck = TRUE ; }
else if( CodeVX == SymbolCode ) then { 일봉이평선조정 = 일봉VX ; 시작시분초조정 = 시작시분초VX ; 종료시분초조정 = 종료시분초VX ; 상단저항가조정 = 상단저항가VX ; 하단지지가조정 = 하단지지가VX ; 상단전환가조정 = 상단전환가VX ; 하단전환가조정 = 하단전환가VX ; 고점매도가조정 = 고점매도가VX ; 저점매수가조정 = 저점매수가VX ; 상단목표가조정 = 상단목표가VX ; 하단목표가조정 = 하단목표가VX ; 진입횟수조정 = 진입횟수VX ; CodeCheck = TRUE ; }
else if( CodeDX == SymbolCode ) then { 일봉이평선조정 = 일봉DX ; 시작시분초조정 = 시작시분초DX ; 종료시분초조정 = 종료시분초DX ; 상단저항가조정 = 상단저항가DX ; 하단지지가조정 = 하단지지가DX ; 상단전환가조정 = 상단전환가DX ; 하단전환가조정 = 하단전환가DX ; 고점매도가조정 = 고점매도가DX ; 저점매수가조정 = 저점매수가DX ; 상단목표가조정 = 상단목표가DX ; 하단목표가조정 = 하단목표가DX ; 진입횟수조정 = 진입횟수DX ; CodeCheck = TRUE ; }
Vars : value(0);
Vars : exit(false);
Vars : io(0) ;
Vars : Gc(0) ;
Vars : Gv(0.0) ;
Vars : Bc(0) ;
Vars : Bv(0.0) ;
Vars : Rc(0) ;
Vars : Rv(0.0) ;
Vars : HRv(0.00) ; // 상단저항가
Vars : LSv(0.00) ; // 하단지지가
Vars : HTv(0.00) ; // 상단전환가
Vars : LTv(0.00) ; // 하단전환수
Vars : HSv(0.00) ; // 고점매도가
Vars : LBv(0.00) ; // 저점매수가
Vars : HGv(0.00) ; // 상단목표가
Vars : LGv(0.00) ; // 하단목표가
Gc = 0 ;
Gv = 0 ;
Bc = 0 ;
Bv = 0 ;
Rc = 0 ;
Rv = 0 ;
HRv=0 ;
LSv=0 ;
HTv=0 ;
LTv=0 ;
HGv=0 ;
LGv=0 ;
HSv=0 ;
LBv=0 ;
if( CodeCheck == TRUE ) Then
{
for value = 1 to 일봉이평선조정
{
{
Gc = Gc + 1.0 ;
Gv = Gv + ( DayHigh( value ) - DayLow( value ) ) ;
}
if( DayClose( value ) < DayOpen( value ) ) then // 음봉
{
Bc = Bc + 1.0 ;
Bv = Bv + ( DayHigh( value ) - DayOpen( value ) ) ;
}
if( DayClose( value ) > DayOpen( value ) ) then // 양봉
{
Rc = Rc + 1 ;
Rv = Rv + ( DayOpen( value ) - DayLow( value ) ) ;
}
}
if( Gc > 0 ) then Gv = Gv / Gc ;
if( Bc > 0 ) then Bv = Bv / Bc ;
if( Rc > 0 ) then Rv = Rv / Rc ;
HRv = DayOpen(0)+Bv - 상단저항가조정 ;
LSv = DayOpen(0)-Rv + 하단지지가조정 ;
HTv = DayOpen(0)+Bv + 상단전환가조정 ; //상단전환가
LTv = DayOpen(0)-Rv - 하단전환가조정 ; //하단전환가
HGv = DayLow (0)+Gv ;
LGv = DayHigh(0)-Gv ;
if( HGv < ( HRv + 상단목표가조정 ) ) then
{
HGv = ( HRv + 상단목표가조정 ) ;
}
if( LGv > ( LSv - 하단목표가조정 ) ) then
{
LGv = ( LSv - 하단목표가조정 ) ;
}
HSv = HGv + 고점매도가조정 - 상단목표가조정 ;
LBv = LGv - 저점매수가조정 + 하단목표가조정 ;
if( MarketPosition == 1 && MarketPosition != MarketPosition[1] ) Then
{
io = io + 1 ;
}
if( MarketPosition == -1 && MarketPosition != MarketPosition[1] ) Then
{
io = io + 1 ;
}
if( Time >= 종료시분초조정 && Time < 시작시분초조정 ) then
{
io = 0 ;
exit = false ;
ExitLong ("매수종료시간") ;
ExitShort("매도종료시간") ;
}
else if( C < LGv && C[1] >=LGv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Sell("하단목표가 매도",OnClose,def,1) ;
}
else if( MarketPosition == 1 ) then
{
io = 1000 ;
exit = true ;
ExitShort("하단매도목표가:숏제한") ;
ExitLong ("하단매수목표가:롱제한") ;
}
}
else if( C > LBv && C[1] <= LBv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Buy("저점매수가:매수",OnClose,def,1) ;
}
else if( MarketPosition == -1 ) then
{
io = 1000 ;
exit = true ;
ExitShort("저점매수가:숏제한") ;
ExitLong ("저점매수가:롱제한") ;
}
}
else if( C > HGv && C[1] <= HGV && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Buy("상단목표가:매수",OnClose,def,1) ;
}
else if( MarketPosition == -1 ) then
{
io = 1000 ;
exit = true ;
ExitLong ("상단매수목표가:롱제한") ;
ExitShort("상단매도목표가:숏제한") ;
}
}
else if( C < HSv && C[1] >= HSv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Sell("고점매도가:매도",OnClose,def,1) ;
}
else if( MarketPosition == 1 ) then
{
io = 1000 ;
exit = true ;
ExitLong ("고점매도가:롱제한") ;
ExitShort("고점매도가:숏제한") ;
}
}
else if( C > HTv && C[1] <= HTv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Buy("추세매수",OnClose,def,1) ;
}
else if( MarketPosition == -1 ) then
{
io = 1000 ;
exit = true ;
ExitLong ("추세매수:롱제한") ;
ExitShort("추세매수:숏제한") ;
}
}
else if( C < HRv && C[1] >= HRv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Sell("역추세매도",OnClose,def,1) ;
}
else if( MarketPosition == 1 ) then
{
io = 1000 ;
exit = true ;
ExitLong ("역추세매도:롱제한") ;
ExitShort("역추세매도:숏제한") ;
}
}
else if( C < LTv && C[1] >= LTv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Sell("추세매도",OnClose,def,1) ;
}
else if( MarketPosition == 1 ) then
{
io = 1000 ;
exit = true ;
ExitLong ("추세매도:롱제한") ;
ExitShort("추세매도:숏제한") ;
}
}
else if( C > LSv && C[1] <= LSv && exit == false ) then
{
if( io < 진입횟수조정 ) then
{
Buy("역추세매수",OnClose,def,1) ;
}
else if( MarketPosition == -1 ) then
{
io = 1000 ;
exit = true ;
ExitLong ("역추세매수:롱제한") ;
ExitShort("역추세매수:숏제한") ;
}
}
}
2023-07-23
1528
글번호 170856
답변완료
잘못된 곳 부탁드립니다.
if (c[1]<avg(c,20))and (rsi(9)<50)
Then Sell();
어디가 잘못되었는지 분봉차트에 아무런 표시가 안되네요.
2023-07-22
1146
글번호 170855
답변완료
전일 종가 대비 N틱을 활용한 방법
전일 종가 대비 몇틱 빠졌는지 올랐는지를 활용해서 매매하고 싶습니다.
5분봉 차트에
data1에 차트에 코스피200선물,
data2에 차트에 코스닥150선물,
각각 전일종가대비 몇틱씩 움직이고 있는지를 계산한 후에 그 값을 data1-data2한 값을 차트에 나타내고 싶습니다
즉,
전일 종가대비 당일 data1의 변동 틱 - 전일 종가대비 당일 data2의 변동 틱
을 차트로 만들고 싶습니다.
예를 들어서,
만약 (data1)코스피가 지금 전일종가 대비 -10틱 빠져있고, 코스닥이 -20틱 빠져있다면
차트에 -10 - (-20) = +10 값이 나오게 부탁드립니다.
5분봉 혹은 1분봉으로 해서 실시간으로도 장기간차트로도 보고싶습니다.
2023-07-22
1313
글번호 170854
답변완료
수식 문의 드립니다.
(1)
S=sum(1);
R=RSI(기간);
U7=Valuewhen(1, CrossUp(R, 기준), S);
D5=Valuewhen(1, CrossDown(R, 기준1), S);
순번조건=U7 < D5;
조건= CountSince(순번조건 && !순번조건(1),
CrossUp(R, 기준))==1;
조건 && !조건(1)
(2)
S=sum(1);
R=RSI(기간);
U7=Valuewhen(1, CrossUp(R, 기준), S);
D5=Valuewhen(1, CrossDown(R,기준1), S);
순번조건=U7 < D5;
조건= CountSince(순번조건 && !순번조건(1),
CrossUp(R, 기준))==1;
A=Valuewhen(1,조건 && !조건(1), O);
CrossUp(C, A)
기간9 기준 30 기준1 50
종목 검색식으로 부탁드립니다. 늘 고맙습니다.
2023-07-23
1129
글번호 170853
답변완료
지표 질문입니다
이번주 주봉 월요일 시가를 표시한다
이번주 주봉 화요일 시가를 표시한다
지난주 주봉 월요일 시가를 표시한다
지난주 주봉 화요일 시가를 표시한다
감사합니다
2023-07-22
1103
글번호 170852
답변완료
수식 부탁드립니다
안녕하세요
항상감사합니다
키움 수식을 예트 지표수식으로 변환부탁드립니다
m1=if(C>=C(1),V,0);//상승
m2=if(C>=C(1),0,V);//하락
m3=sum(m1,10)/sum(m2,10)*100;
m3
2023-07-21
1375
글번호 170851
답변완료
차트에 신호 화살표 표시
차트에 화살표 신호를 하려고 하는데 어떻게 해야 하나요? 아직 미숙해서 뭐가 뭔지 모르겠네요
요일(D) 함수 : 함수명을반드시 요일(D) 로 하셔야 합니다.
M = floor(D/100)%100;
YY = if((M+1-1) == 1 or (M+1-1) == 2, floor(D/10000)-1,floor(D/10000));
YA= floor(YY/100);
YB=YY%100;
MM = if((M+1-1) == 1, 13, if((M+1-1) == 2, 14, M));
DD=D%100;
A=(DD + floor(13*(MM+1)/5)+YB+ floor(YB/4)+floor(YA/4)+YA*5)%7;
if(A==0, 6, A-1)
화살표 수식
wvf = ((highest(C, 22) - low) / highest(C, 22)) * 100;
sDev = 2.0 * stdev(wvf, 20);
midLine = avg(wvf, 20);
upperBand = midLine + sDev;
rangeHigh = (highest(wvf, 50)) * ph;
os = (wvf >= upperBand) or (wvf >= rangeHigh);
ap = (HIGH+LOW+CLOSE)/3;
esa = eavg(ap, 기간1);
d = eavg(abs(ap - esa), 기간1);
ci = (ap - esa) / (0.015 * d);
wt1 = eavg(ci,기간2);
wt2 = avg(wt1,4);
A=Lowest(L, 260, 1);
A1=Lowest(L, 260, 1)*1.25;
A2=요일(DATE);
A3=Valuewhen(1,A2(1)>A2,O);
MO=floor(date/100);
MO1=MO%100;
A4=VALUEWHEN(1, MO1!=MO1(1),O);
wt1(1)<=-53 && (os(1) or os) && wvf(1)>wvf &&
(Crossup(wt1,wt2) or Crossup(wt1,-60) or Crossup(wt1,-53)) && C>O && A1>=C && A<=C && (A3<=C OR A4<=C)
-지표조건설정
기간1 : 10
기간2 : 21
PH : 0.85
이걸 차트에 화살표를 표시하려고 합니다
도와주세요 ㅠㅠ
2023-07-21
1542
글번호 170848
답변완료
함수요청
안녕하세요?
국내선물 1분봉으로 A전략, 5분봉으로 B전략, 10분봉으로 C전략을 하고 있는데
3개의 신호가 동일할 때 진입을 하는 전략을 구상중입니다.
가령 국내선물 1분봉으로 100ma 돌파 완성시 매수, 5분봉으로 60ma 돌파 완성시 매수,
10분봉으로 20m 돌파 완성시 매수하는데
3개 모두 매수신호 생성중이면 1분봉으로 매수를 진입하고 싶습니다.
스크립트를 수정해야 할까요? 참조함수를 쓰지 않고도 가능할까요?
샘플 부탁드립니다.
2023-07-21
1369
글번호 170843