커뮤니티

수식수정

프로필 이미지
회원
2013-05-06 12:39:56
254
글번호 62837
답변완료

첨부 이미지

붙임이미지와 같이 예스스팟을 실행하니 신호가 뜹니다... 그런데 1. 주문가격이 나오지 않습니다...원래 나오지 않는건가요? 2. 그리고 주문상태에는 종목코드값을 확인하라고 하는데요 종목객체는 선물을 선택했습니다.. 무엇이 문제인가요? 3. 손절매 매수손절은 -0.2포인트 매도손절은 +0.2포인트를 적용하고 싶은데요 예스랭귀지(챠트쪽)에 적용해야 하는가요? 아니면 예스스팟에 수식을 적용해야 하는가요? 예스스팟에 손절식 수정 부탁드립니다. -아래 - var cnt; function Main_OnStart() { cnt = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { cnt = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //Buy미완성신호 발생 if (IncompleteSignal.signalKind == 1) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 무포지션이나 매도포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() <= 0) Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } //Exitlong미완성신호 발생 if (IncompleteSignal.signalKind == 2) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 매수포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() >= 1) Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } //Sell미완성신호 발생 if (IncompleteSignal.signalKind == 3) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 무포지션이나 매수포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() >= 0) Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } //ExitShort미완성신호 발생 if (IncompleteSignal.signalKind == 4) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 매도포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() <= -1) Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-05-06 15:09:15

안녕하세요 예스스탁입니다. 시험적용은 실제 주문을 내지 않으므로 주문번호등은 없습니다. 다만 현재 식상에 시장가로 주문이 내게 되어 있어 주문가격이 0으로만 표시됩니다. 주문가격을 지정하고자 하시면 종목객체를 추가하신 후에 속성에서 chart1과 동일종목으로 지정하시고 해당객체에서 값을 가져와 주문가격을 지정하시면 됩니다. 아래식은 매수주문은 매도3호가, 매도주문은 매수3호가에 주문이 나가게 작성한 식입니다. //계좌객체 --> 객체명 : Account1 --> 속성에서 계좌번호 지정 //차트객체 --> 객체명 : Chart1 --> 속성에서 차트아이디 지정 //종목객체 --> 객체명 : MarketData1 --> 속성에서 차트와 같은 종목으로 지정 var cnt; function Main_OnStart() { cnt = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { cnt = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //Buy미완성신호 발생 if (IncompleteSignal.signalKind == 1) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 무포지션이나 매도포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() <= 0) Account1.OrderBuy(Main.GetOrderCode(Chart1.GetCode(1)), 1, MarketData1.Ask(3), 0); } //Exitlong미완성신호 발생 if (IncompleteSignal.signalKind == 2) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 매수포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() >= 1) Account1.OrderSell(Main.GetOrderCode(Chart1.GetCode(1)), 1, MarketData1.Bid(3), 0); } //Sell미완성신호 발생 if (IncompleteSignal.signalKind == 3) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 무포지션이나 매수포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() >= 0) Account1.OrderSell(Main.GetOrderCode(Chart1.GetCode(1)), 1, MarketData1.Bid(3), 0); } //ExitShort미완성신호 발생 if (IncompleteSignal.signalKind == 4) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 매도포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() <= -1) Account1.OrderBuy(Main.GetOrderCode(Chart1.GetCode(1)), 1, MarketData1.Ask(3), 0); } } 위식 적용하시면 오류보고 화면에 Chart1.GetOpenContracts()에 정확히 값이 할당이 되지 않습니다. 해당 부분은 현재 수정중인 부분으로 며칠이내에 수정반영될 예정입니다. 우선 시험적용으로만 테스트 해보시기 바랍니다. 2번 위 식에 수정되었습니다. 3번 전화로 답변드렸습니다. 즐거운 하루되세요 > HI_cbk4610 님이 쓴 글입니다. > 제목 : 수식수정 > 붙임이미지와 같이 예스스팟을 실행하니 신호가 뜹니다... 그런데 1. 주문가격이 나오지 않습니다...원래 나오지 않는건가요? 2. 그리고 주문상태에는 종목코드값을 확인하라고 하는데요 종목객체는 선물을 선택했습니다.. 무엇이 문제인가요? 3. 손절매 매수손절은 -0.2포인트 매도손절은 +0.2포인트를 적용하고 싶은데요 예스랭귀지(챠트쪽)에 적용해야 하는가요? 아니면 예스스팟에 수식을 적용해야 하는가요? 예스스팟에 손절식 수정 부탁드립니다. -아래 - var cnt; function Main_OnStart() { cnt = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { cnt = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //Buy미완성신호 발생 if (IncompleteSignal.signalKind == 1) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 무포지션이나 매도포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() <= 0) Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } //Exitlong미완성신호 발생 if (IncompleteSignal.signalKind == 2) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 매수포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() >= 1) Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } //Sell미완성신호 발생 if (IncompleteSignal.signalKind == 3) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 무포지션이나 매수포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() >= 0) Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } //ExitShort미완성신호 발생 if (IncompleteSignal.signalKind == 4) { //미완성신호 발생 카운트 cnt = cnt+1; //현재봉에서 첫번째 발생한 미완성 신호이고 차트 포지션이 매도포지션일때 if (cnt == 1 && Chart1.GetOpenContracts() <= -1) Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code), 1, 0, 1); } }