커뮤니티

예스스팟 Q&A

답변완료

동시진입에 대해 문의드립니다.

안녕하세요? 선물챠트의 예스랭귀지 시스템에서 하나의 신호를 받아서, 예스스팟으로 하나의 계좌에서 동시에 선물매수 진입과 선물매도 진입이 가능한지요? 또 그렇게 동시에 진입했다면, 청산은 동시에 할 수도 있고 또한 각각으로도 할 수가 있는지요? 만약 가능하다면 어떻게 하면 되는지 문의드립니다. 감사합니다.
프로필 이미지
2mak
2015-04-11
1911
글번호 223419
답변완료

예스스팟 수식문의

안녕하세요 언제나 훌륭한 답변해 주셔서 감사합니다. 예스스팟 메뉴얼에 있는 예제5번 합성선물에 관한 사항인데요 예제.선물차트에서 매수신호가 발생하면 ATM 콜매수+풋매도 선물차트에서 매수청산신호가 발생하면 매수신호시 주문종목 청산 선물차트에서 매도신호가 발생하면 ATM 콜매도+풋매수 선물차트에서 매도청산신호가 발생하면 매도신호시 주문종목 청산 상기 예제를 ATM 등가격이 아닌 프리미엄 2.0 에 가장 가까운 옵션 종목으로 진입청산하고 싶습니다. 진입가격은 +-5호가 입니다. 초보라 하나하나 따라서 하는데 쉽지가 않네요 아래는 메뉴얼에 있는 로직입니다. ========================= 예제로직 =============================== /*스크립트시작-----------------------------------------------------*/ var Start; var BuyCallCode; var BuyPutCode; var SellCallCode; var SellPutCode; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1 ) { Start = 1; BuyCallCode = Option.GetATMCallRecent(0); BuyPutCode = Option.GetATMPutRecent(0); var BuyCallPrice = Option.GetAskByCode(BuyCallCode,2); var BuyPutPrice = Option.GetBidByCode(BuyPutCode,2); A1.OrderBuy(BuyCallCode, Vol, BuyCallPrice, 0); A1.OrderSell(BuyPutCode, Vol, BuyPutPrice, 0); Main.MessageLog("합성선물매수"); } if (Start == 1 && Signal.signalKind == 2 ) { var BxCallPrice = Option.GetBidByCode(BuyCallCode, 2); var BxPutPrice = Option.GetAskByCode(BuyPutCode, 2); A1.OrderSell(BuyCallCode, Vol, BxCallPrice, 0); A1.OrderBuy(BuyPutCode, Vol, BxPutPrice, 0); Main.MessageLog("합성선물매수청산"); } if (Signal.signalKind == 3 ) { Start = 1; SellCallCode = Option.GetATMCallRecent(0); SellPutCode = Option.GetATMPutRecent(0); var SellCallPrice = Option.GetBidByCode(SellCallCode,2); var SellPutPrice = Option.GetAskByCode(SellPutCode,2); A1.OrderSell(SellCallCode, Vol, SellCallPrice , 0); A1.OrderBuy(SellPutCode, Vol, SellPutPrice, 0); Main.MessageLog("합성선물매도"); } if (Start == 1 && Signal.signalKind == 4 ) { var SxCallPrice = Option.GetAskByCode(SellCallCode, 2); var SxPutPrice = Option.GetBidByCode(SellPutCode, 2); A1.OrderBuy(SellCallCode, Vol, SxCallPrice, 0); A1.OrderSell(SellPutCode, Vol, SxPutPrice, 0); Main.MessageLog("합성선물매도청산"); } } /*스크립트끝-------------------------------------------------------*/ ========================= 로 직 끝 =============================== 소중한 답변 기다리겠습니다. 수고하세요
프로필 이미지
탄젠트80
2015-04-10
1818
글번호 223418

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

프로필 이미지
큰상
2015-04-09
1
글번호 223416
답변완료

예스스팟 주문시 증거금 문의

안녕하세요~ 현재 스팟으로 매매하고 있는 투자자입니다. 리버스 선물시스템은 증거금이 2배가 필요한데 이 선물시스템을 이용하여 스팟으로 신호받아서 주문시에도 2배의 증거금이 필요한지요? 현재 스팟으로 옵션매수만 해서 증거금에 대한 부담은 없었는데 이제는 옵션매도도 포트폴리오에 추가해 보고자 질문드립니다. 답변 부탁드립니다.
프로필 이미지
탄젠트80
2015-04-09
1584
글번호 223415
답변완료

예스스팟 사용자 모듈 작성방법 예제는 ?

안녕하세요. 예스스팟 사용자객체, 사용자함수를 만들려고 하니, 어떻게 해야하는지 설명된 곳을 찾을 수가 없네요. 그리고 제공되는 객체들처럼 사용자객체 또는 함수에도 리턴 받는 값을 여러가지로 나누어 받을 수 있는지요 ? 우선.. 사용자 모듈 작성방법에 관련되어 참고할 수 있는 서적이나 메뉴얼, 파일, 링크 등이 있으시면 알려주시면 감사하겠습니다. 혼자공부하는데.. 너무 답답하네요. 8개 파일로 나누어 실전에 돌리는데, 사용자함수만 있으면 간략히 1개로 줄여서 사용 가능할꺼 같은데... 실전 돌리고는 있지만 많이 답답합니다. 혹시 관련 상세한 메뉴얼 있으면 알려주세요. 홈페이지에 있는 예스스팟 매뉴얼은 출력해서 보고 있는데 해당부분은 한,두페이지로 간략히 기능이 있다는 정도 설명이네요. 이곳 게시글 답변도 한개 있던데, 그정도는 시행착오 거치면서 벌써 해봤구요. 사용자객체, 함수를 제대로 만들고 싶은데. 조금 복잡한 예제나 설명서를 보내주시면 감사하겠습니다. 제 메일 주소는 anyhelp@naver.com 입니다.
프로필 이미지
anyhelp
2015-04-09
1667
글번호 223413

무명 님에 의해서 삭제되었습니다.

프로필 이미지
무명
2015-04-08
1
글번호 223412
답변완료

수식문의 드립니다.

아래 식을 변경하여 계좌잔고의 옵션의 손실금이 10%이상 나면 손절청산, 계좌잔고의 옵션이익금이 20%이상이 되면 수량의 절반 이익청산될수 있도록 부탁드립니다. 안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 잔고는 5초단위로 감시합니다. 스크립트 객체화면에 계좌객체 추가하시고 객체명은 Account1로 하시고 계좌번호 지정해 주시면 됩니다. 1. function Main_OnStart() { Main.SetTimer(1, 5000);//5초단위 } //5초간격으로 잔고 감시해 손실이 50만원 이상이면 모든 옵션종목 시장가로 청산 function Main_OnTimer(nEventID) { //계좌의 잔고수 var num = Account1.GetTheNumberOfBalances(); var PL = 0; //잔고를 하나씩 불러와 손익을 계산하고 합산해서 옵션 총 평가손익을 계산 for(var i = 0; i < num; i++) { //잔고셋팅 Account1.SetBalanceIndex(i); //옵션종목이면 if (Account1.Balance.code.substring(0,1) == "2" || Account1.Balance.code.substring(0,1) == "3") { //매도포지션이면 if (Account1.Balance.position == 1) { PL = PL+(Account1.Balance.avgUnitCost-Account1.Balance.current)*Account1.Balance.count*500000; } //매수포지션이면 if (Account1.Balance.position == 2) { PL = PL+(Account1.Balance.current-Account1.Balance.avgUnitCost)*Account1.Balance.count*500000; } } } Main.MessageList("손익",PL); //손익이 -50만원 이상이면 if (PL <= -500000) { //잔고를 하나씩 불러와 옵션종목이면 시장가로 청산 for(var i = 0; i < num; i++) { //잔고셋팅 Account1.SetBalanceIndex(i); //옵션종목이면 if (Account1.Balance.code.substring(0,1) == "2" || Account1.Balance.code.substring(0,1) == "3") { //매도포지션이면 시장가청산 if (Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } //매수포지션이면 시장가청산 if (Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1) } } } } } 2. var Exit1,Exit2; function Main_OnStart() { Main.SetTimer(1, 5000);//5초단위 Exit1 = false; Exit2 = false; } //5초간격으로 잔고 감시해 +100만원 이상이면 모든 옵션종목 시장가로 수량의 절반 청산 function Main_OnTimer(nEventID) { if (nEventID == 1 && Exit1 == false) { //계좌의 잔고수 var num = Account1.GetTheNumberOfBalances(); var PL = 0; //잔고를 하나씩 불러와 손익을 계산하고 합산해서 옵션 총 평가손익을 계산 for(var i = 0; i < num; i++) { //잔고셋팅 Account1.SetBalanceIndex(i); //옵션종목이면 if (Account1.Balance.code.substring(0,1) == "2" || Account1.Balance.code.substring(0,1) == "3") { //매도포지션이면 if (Account1.Balance.position == 1) { PL = PL+(Account1.Balance.avgUnitCost-Account1.Balance.current)*Account1.Balance.count*500000; } //매수포지션이면 if (Account1.Balance.position == 2) { PL = PL+(Account1.Balance.current-Account1.Balance.avgUnitCost)*Account1.Balance.count*500000; } } } Main.MessageList("손익",PL); //손익이 +100만원 이상이면 if (PL >= 1000000) { Exit1 = true;//Exit1을 true로 만들어 한번만 동작하게 함 //잔고를 하나씩 불러와 옵션종목이면 수량의 절반을 시장가로 청산(수량이 1계약이면 1계약 청산) for(var i = 0; i < num; i++) { //잔고셋팅 Account1.SetBalanceIndex(i); //옵션종목이면 if (Account1.Balance.code.substring(0,1) == "2" || Account1.Balance.code.substring(0,1) == "3") { //매도포지션이면 시장가청산 if (Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Math.max(Math.floor(Account1.Balance.count*0.5),1),0,1); } //매수포지션이면 시장가청산 if (Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Math.max(Math.floor(Account1.Balance.count*0.5),1),0,1) } } } } } if (nEventID == 1 && Exit2 == false) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= 143000) { Exit2 = true;//Exit2를 true로 만들어 한번만 동작하게 함 for(var i = 0; i < num; i++) { //잔고셋팅 Account1.SetBalanceIndex(i); //옵션종목 남은수량 전량 청산 if (Account1.Balance.code.substring(0,1) == "2" || Account1.Balance.code.substring(0,1) == "3") { //매도포지션이면 시장가청산 if (Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } //매수포지션이면 시장가청산 if (Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1) } } } } } } 즐거운 하루되세요 > 바다리 님이 쓴 글입니다. > 제목 : 청산식 문의요... > 예스스팟으로... 수동으로 매수하던 전일 오버나잇한 계약수가 있던지 상관없이... 1. 현재 계좌에 보유한 옵션 평가 손실 총액이 50만원 이상이 되면 보유한 주식을 모두 손절처리(시장가) 할수 있는지요... 즉, 매수식은 없고, 다만 현계좌를 파악해서 청산식만 가동되도록 할수 있는지 수식예제좀 부탁합니다. 2. 반대로 현계좌에 보유중인 옵션 평가액 총액이 100만원이면 보유수량의 절반을 청산하고, 나머지는 14시 30분에 전량 시장가로 매도청산하는 수식도 부탁드립니다.
프로필 이미지
무명
2015-04-08
1837
글번호 223411
답변완료

수식 부탁드립니다.

안녕하세요. 선물 일봉챠트상 신호를 기준으로 선물을 매매하는데요. 아래와 같은 명령을 수식으로 부탁드립니다. 감사드립니다. 1. 1번 차트에서 미완성 매수신호(미완성 신호가 1시간 이상 지속될 경우)가 발생하는 경우 =>잔고를 확인하여 매도한 물량이 있다면 전부 청산한다. =>매도물량 청산 후 선물 3개를 시장가로 신규매수한다 (*)미완성신호라함은 미완성 신호가 발생후 1시간 이상 지속되는 경우를 말함 2. (1번차트상 미완성 매수신호 발생 or 1번챠트상 매수상태) & 2번차트상 매도상태인 경우 =>선물 1개를 시장가로 매수하되, 최대 3개까지만 매수한다. (**)매도상태라 함은 일봉차트상 몇일 전에 이미 매도신호가 발생한 후 계속 매도진행 중인 상태를 말함 3. (개인 콜옵션 순매수금액 - 개인 풋옵션 순매수금액) > 5억원인 경우 =>1억원씩 더 차이날 때만다 선물 1개씩 시장가로 매도한다. 매번 감사드립니다.
프로필 이미지
지나리
2015-04-09
1962
글번호 223407
답변완료

수식부탁합니다

안녕하세요 아래 수식을 다음과 같이 변경하려고 합니다. 선물 매수 신호시; 콜옵션 ATM 매도, ATM-1 매수 / 풋옵션 ATM 매도, ATM+1 매수 청산 선물 매도 신호시; 풋옵션 ATM 매도, ATM+1 매수 / 콜옵션 ATM 매도, ATM-1 매수 청산 선진입한 콜, 풋의 잔고 청산하고 콜,풋 양쪽 포지션 없이 어느쪽이든 1개만 유지 진입 후 잔액대비 5% 손실 청산(로스컷) var Start; var BuyCallCode; var BuyPutCode; var SellCallCode; var SellPutCode; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function C1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1 ) { Start = 1; BuyCallCode = Option.GetATMCallRecent(0); BuyPutCode = Option.GetATMPutRecent(0); var BuyCallPrice = Option.GetAskByCode(BuyCallCode,2); var BuyPutPrice = Option.GetBidByCode(BuyPutCode,2); A1.OrderBuy(BuyCallCode, Vol, BuyCallPrice, 0); A1.OrderSell(BuyPutCode, Vol, BuyPutPrice, 0); Main.MessageLog("합성선물매수"); } if (Start == 1 && Signal.signalKind == 2 ) { var BxCallPrice = Option.GetBidByCode(BuyCallCode, 2); var BxPutPrice = Option.GetAskByCode(BuyPutCode, 2); A1.OrderSell(BuyCallCode, Vol, BxCallPrice, 0); A1.OrderBuy(BuyPutCode, Vol, BxPutPrice, 0); Main.MessageLog("합성선물매수청산"); } if (Signal.signalKind == 3 ) { Start = 1; SellCallCode = Option.GetATMCallRecent(0); SellPutCode = Option.GetATMPutRecent(0); var SellCallPrice = Option.GetBidByCode(SellCallCode,2); var SellPutPrice = Option.GetAskByCode(SellPutCode,2); A1.OrderSell(SellCallCode, Vol, SellCallPrice , 0); A1.OrderBuy(SellPutCode, Vol, SellPutPrice, 0); Main.MessageLog("합성선물매도"); } if (Start == 1 && Signal.signalKind == 4 ) { var SxCallPrice = Option.GetAskByCode(SellCallCode, 2); var SxPutPrice = Option.GetBidByCode(SellPutCode, 2); A1.OrderBuy(SellCallCode, Vol, SxCallPrice, 0); A1.OrderSell(SellPutCode, Vol, SxPutPrice, 0); Main.MessageLog("합성선물매도청산"); } }
프로필 이미지
팡팡
2015-04-08
1912
글번호 223404

왼손잡이 님에 의해서 삭제되었습니다.

프로필 이미지
왼손잡이
2015-04-06
0
글번호 223403