커뮤니티

예스스팟 Q&A

답변완료

array 변수의 특정값을 삭제하고자 합니다. 어떻게 해야 할까요?

list.array(데이터); 이렇게 하면 array변수에 데이터 추가하는것은 알겠습니다. 반대로 list.???(데이터) 형태로 특정 값(코드)를 삭제하고 싶습니다. 어떻게 하면 될까요?
프로필 이미지
2ndbus
2018-08-17
2886
글번호 224566

바람의나라 님에 의해서 삭제되었습니다.

프로필 이미지
바람의나라
2018-08-15
2
글번호 224565

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

프로필 이미지
2ndbus
2018-08-15
6
글번호 224564
답변완료

emini 나스닥100 과 snp 500 선물 데이터

안녕하세요 emini 나스닥100 과 s&p500 선물의 2분봉 데이터가 2015년 1월 1일부터만 있는데 혹시 그 이전의 차트데이터를 다운받을 수 있는 방법이 있을까요?
프로필 이미지
몽거루
2018-08-13
2950
글번호 224559
답변완료

청산전용 수식 부탁드립니다.

안녕하세요 답변주신 내용 활용하여 잘 매매하고 있는 투자자입니다. 청산전용에 관한 스팟수식 몇가지 초보임을 감안하여 답변부탁드립니다. 1. 동일 계좌안에 파생상품으로만(선물, 옵션, 미니선물, 미니옵션 등 매수 또는 매도포지션)을 다양하게 가진 상태에서 15시에 모든 종목을 일괄 5호가로 전부 청산하는 청산전용 스팟수식 부탁드립니다. 2. 동일 계좌안에 있는 여러 파생상품 중 옵션 종목(또는 미니옵션)만 골라서 15시에 콜풋 매수/매도 포지션 모두 5호가로 청산하는 청산전용 스팟수식 3.-1 동일 선물옵션 계좌의 평가손익이 100만원 이상일 때 1번 문의사항과 같이 보유종목 전체를 5호가로 청산하는 스팟전용 수식 3.-2 동일 선물옵션 계좌의 매입총액 대비 평가손익인 평가수익율이 30% 이상일 때 1번 문의사항과 같이 파생상품 전체를 5호가로 청산하는 스팟전용 수식 4. 15시에 계좌의 포지션을 파악하여 보유하고 있는 옵션 종목중 0.3P 가장 가까운 콜, 풋옵션 매도포션을 종목 5호가로 매도청산(매수)하는 스팟전용 수식 질문사항이 좀 많은데 꼭 필요한 수식이니 답변 정중히 부탁드리며 미리 감사드립니다. 수고하세요
프로필 이미지
탄젠트80
2018-08-12
2861
글번호 224558

지스카드 님에 의해서 삭제되었습니다.

프로필 이미지
지스카드
2018-08-15
1
글번호 224557

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

프로필 이미지
2ndbus
2018-08-08
12
글번호 224555

바람의나라 님에 의해서 삭제되었습니다.

프로필 이미지
바람의나라
2018-08-01
22
글번호 224554
답변완료

수식에 에러가 발생했습니다. 수정부탁합니다.

안녕하세요. 보내주신 수정한 수식을 예스트레이드로 돌려보니 아래와 같은 에러가 발생되네요. 수정부탁 드립니다. <에러발생내역> 1. 종목1 매도시 외부입력변수에 지정된 분할매도횟수(초기값 3회 분할매도) 만큼 매도가 되어야하나, 매도횟수는 3회 매도 주문이 정상적으로 나가고 있으나, 주문수량이 0 로 나가면서 매도체결이 되지 않고 매도처리 되어야 할 주식수량이 잔고로 남아 있습니다. 2. 종목2 매도시 외부입력변수에 지정된 분할매도횟수(초기값3회) 만큼 매도가 되어야하나, 매도횟수는 3회 매도 주문이 정상적으로 나가고 있으나 1회 매도주문수량이 많이 주문이 나갑니다. 3. 아래는 보내주신 스팟코딩 자료입니다. 수정부탁합니다 var HHMMSS,HHMMSS1; var count1, count2, count3, count4, count5; var M1; function Main_OnStart() { //1번 타이머 5초간격, 지정한 간격으로 시간체크하기 위한 용도 Main.SetTimer(1, 5000); } function Main_OnTimer(nEventID) { var d = new Date(); HHMMSS1 = HHMMSS; HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //종목1(MarketData1) // 첫매수 if (nEventID == 1 && HHMMSS >= 매수시간1 && HHMMSS1 < 매수시간1) { //지정한 금액만큼 매도3호가로 매수주문 var BuyPrice1 = MarketData1.Ask(3); var Bvol1 = Math.floor(매수금액1/BuyPrice1); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Bvol1,BuyPrice1,0); if (분할매수횟수1 >= 2) { //2번 타이머(종목1 추가매수 간격) Main.SetTimer(2, 분할매수시간간격1*1000); count2 = 1; } } //2번타이머 동작 //종목1(MarketData1) 추가매수(첫매수 후 N초 단위로) if (nEventID == 2) { //지정한 분할횟수보다 작으면 if (count2 < 분할매수횟수1) { //타이머 동작횟수 카운트 count2 = count2+1; //추가 매수 실행 var BuyPrice1 = MarketData1.Ask(3); var Bvol1 = Math.floor(매수금액1/BuyPrice1); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Bvol1,BuyPrice1,0); } //지정한 분할횟수에 도달하면 if (count2 == 분할매수횟수1) { //2번 타이머 종료 Main.KillTimer(2); } } //종목1(MarketData1) 첫매도 if (nEventID == 1 && HHMMSS >= 매도시간1 && HHMMSS1 < 매도시간1) { //종목1에 대한 매수 미체결 모두 취소 var num1 = Account1.GetTheNumberOfUnfills() for(var i = 1 ; i < num1 ; i++) { Account1.SetUnfill(i); if (Account1.Unfill.orderKind == 2 && Account1.Unfill.count > 0 && Account1.Unfill.code == MarketData1.code) { Account1.OrderCancel(Account1.Unfill.orderNum); } } //종목1 잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); //잔고수량 Xvol1 = Account1.Balance.count; if (분할매도횟수1 >= 2) { var V1 = Math.floor(Xvol1/분할매도횟수1); Xvol11 = Xvol1 - V1*(분할매도횟수1-1); Xvol12 = V1; } else { Xvol11 = Xvol1; } var SellPrice1 = MarketData1.Bid(3); Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Xvol11,SellPrice1,0); if (분할매도횟수1 >= 2) { //3번 타이머,10초 타이머(분할매도 간격) Main.SetTimer(3, 10000); count3 = 1; } } //종목1(MarketData1) 추가매수(첫매수 후 N초 단위로) if (nEventID == 3) { if (count3 < 분할매도횟수1) { count3 = count3+1; var SellPrice1 = MarketData1.Bid(3); Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Xvol12,SellPrice1,0); } if (count3 == 분할매도횟수1) { Main.KillTimer(3); } } //종목2(MarketData2) // 첫매수 if (nEventID == 1 && HHMMSS >= 매수시간2 && HHMMSS1 < 매수시간2) { //지정한 금액만큼 매도3호가로 매수주문 var BuyPrice2 = MarketData2.Ask(3); var Bvol2 = Math.floor(매수금액2/BuyPrice2); Account1.OrderBuy(Main.GetOrderCode(MarketData2.code),Bvol2,BuyPrice2,0); if (분할매수횟수2 >= 2) { //2번 타이머(종목1 추가매수 간격) Main.SetTimer(4, 분할매수시간간격2*1000); count4 = 1; } } //2번타이머 동작 //종목2(MarketData2) 추가매수(첫매수 후 N초 단위로) if (nEventID == 4) { //카운트 값이 지정한 분할횟수 미만이면 if (count4 < 분할매수횟수2) { //타이머 동작횟수 카운트 count4 = count4+1; //추가 매수 실행 var BuyPrice2 = MarketData2.Ask(3); var Bvol2 = Math.floor(매수금액2/BuyPrice2); Account1.OrderBuy(Main.GetOrderCode(MarketData2.code),Bvol2,BuyPrice2,0); } //지정한 분할횟수에 도달하면 if (count4 == 분할매수횟수1) { //4번 타이머 종료 Main.KillTimer(4); } } //종목2(MarketData2) 첫매도 if (nEventID == 1 && HHMMSS >= 매도시간2 && HHMMSS1 < 매도시간2) { //종목2에 대한 매수 미체결 모두 취소 var num1 = Account1.GetTheNumberOfUnfills() for(var i = 1 ; i < num1 ; i++) { Account1.SetUnfill(i); if (Account1.Unfill.orderKind == 2 && Account1.Unfill.count > 0 && Account1.Unfill.code == MarketData2.code) { Account1.OrderCancel(Account1.Unfill.orderNum); } } //종목2 잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData2.code), 0); //잔고수량 Xvol2 = Account1.Balance.count; //분할매도횟수가 2이상일때 if (분할매도횟수2 >= 2) { //잔고수량을 지정한 횟수로 나누어 1회 주문할 수량 계산 var V2 = Math.floor(Xvol2/분할매도횟수2); Xvol21 = Xvol2 - V2*(분할매도횟수2-1); Xvol22 = V2; } else { Xvol21 = Xvol2; } var SellPrice2 = MarketData2.Bid(3); Account1.OrderSell(Main.GetOrderCode(MarketData2.code),Xvol21,SellPrice2,0); if (분할매도횟수2 >= 2) { //3번 타이머,10초 타이머(분할매도 간격) Main.SetTimer(5, 10000); //횟수 카운트 변수는 초기값 1 count5 = 1; } } //종목1(MarketData2) 추가매수(첫매수 후 N초 단위로) if (nEventID == 5) { //카운트 값이 분할매도횟수2 미만이면 if (count5 < 분할매도횟수2) { //타이저 동작할때 마다 1씩 증가 count5 = count5+1; //추가매도 실행 var SellPrice2 = MarketData2.Bid(3); Account1.OrderSell(Main.GetOrderCode(MarketData2.code),Xvol22,SellPrice2,0); } //카운트 값이 분할매도횟수와 같이면 if (count5 == 분할매도횟수2) { //5번타이머 종 Main.KillTimer(5); } } }
프로필 이미지
택군아
2018-08-24
2721
글번호 224546
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 -변수 고정 -예스스탁 전략 작성 한 뒤에 시뮬레이션한 결과값(전략레포트에 나오는 것들, 승률, 손익비, n개월간 손익 레코드 기록 등)을 저장해서 엑셀로 뽑거나 할 수 있나요? 가능여부가 궁금합니다.
프로필 이미지
잡다백수
2018-07-30
2538
글번호 224544