커뮤니티

문의 드립니다.

프로필 이미지
즐겁게
2013-08-15 18:55:02
1090
글번호 222507
답변완료
항상 친절하신 답변에 깊이 감사드립니다. "스팟으로 이동평균값을 구해서 이용할 수 있는 방법"을 공부하고 있습니다. 제가 알고자 하는 것은, 굳이 차트에서의 이평선 값을 이용하는 것이 아니라, "스팟 자체에서 이평선 값을 구해서 이용하려면 어떻게 하면 되는가" 하는 것입니다. 아래의 3가지 질문을 올리오니, 알려 주시면 대단히 감사하겠습니다. 1. 현재, 차트에서 본다면, 200 이평선 위에 가격이 존재하는데, 이럴 때는 매수포지션만 보유하고, 매도포지션은 생성이 안 되게 하고 싶습니다. 만일 "현재 가격이 200 이평선 위" 수준인데, 잔고에 롱포지션도 없는데 미체결 매도주문이 있다면 그 것이 몇 개든 다 취소하고 싶고, 잔고에 롱포지션이 가령 두 계약이 있다 그러면, 그 것을 매수청산할 수 있도록, 두 계약 매도할 수 있는 미체결 매도주문만 남기고 나머지 미체결 매도주문은 다 취소해 버리고 싶습니다. 가능한 대로 "차트 쪽의 신세를 지지 않고 최대한 스팥 소스를 이용해서, 가격이 200 이동평균값 이상일 때는 미체결 매도주문을 취소"하려면 어떻게 소스를 짜는 것이 좋을지요? 2. 차트에서 매수진입신호가 왔을 때에, "스팟 식으로만 100 이평 값을 구해서 신호가격과 스팟에서의 이평가격을 비교해서 신호가격이 이평가격보다 높아야 스팟으로 매수주문"을 내고, 차트에서 매도진입신호가 왔을 때, "스팟에서 계산한 100 이평값보다 그 매도진입신호가격이 낮아야 스팟으로 매도주문"을 내는 식으로 하려면 어떻게 하면 좋을지요? ((예를 들자면, 차트에서 Buy신호가 발생했을 때에, 그 때 진입신호가격이 가령 245 라고 했을 때, 그 값이 100 이평선 값 위에 있으면, 가령 100 이평 값이 238이라면, 이 때는 실제로 매수주문을 내고, 만일 100 이평선이 그 진입신호가격보다 위라면, 가령 100 이평 값이 251이라면, 이 때는 매수신호를 무시하고 하는 것과 같은 식을, 최대한 차트에서 보내 주는 신호[정보]보다는, 스팥 자체로 해결하는 방법을 알고 싶습니다)) 3. 가급적이면 차트에의 의존을 줄이고 스팟으로 처리하는 비중을 높여 보려고 하는데, 아주 간단한 예로, 차트를 이용하지 않고, "스팟으로만, 가령 50 이평선과 200 이평 골든크로스에 매수, 데드크로스에 매도" 하는 수식을 부탁드리고 싶습니다. 대단히 감사합니다.
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2013-08-16 17:48:18

안녕하세요 예스스탁입니다. 답변이 늦어 죄송합니다. 아래식은 실시간으로 데이터의 시간을 계산해서 2분봉의 종가 데이터를 만들고 해당 데이터 이용해서 이평을 계산해서 20-100 골든/데드 매매를 하게 작성했습니다. 예스스팟에서 종목객체에서 따로 분봉의 데이터가 제공되지 않으므로 시간을 이용해 원하시는 분단위로 데이터를 저장해서 사용하셔야 합니다. 과거데이터가 없어 아래와 같이 2분봉에서 100이평을 계산하면 9시 장시작해서 12시 20분경부터 계산되고 주문이 나갈수 있습니다. 주기에 따라 너무 긴 기간의 지표는 당일 계산할수 없습니다. 흐름이해 하시는데 참고하시기 바랍니다. var CC = new Array(101); var T1 = -1; var T2 = -1; var T3 = -1; var T3 = -1; var mav20 = -1; var mav100 = -1; var Premav20 = -1; var Premav100 = -1; function Main_OnStart() { cnt = 0; } function Main_OnUp*dateMarket(sItemCode, lUp*dateID) //*제거 { if (sItemCode ==MarketData1.code && lUp*dateID == 20001)//*제거 { PreT3 = T3; T1 = Math.floor(MarketData1.time/100000000)*60; T2 = Math.floor((MarketData1.time%100000000)/1000000); T3 = (T1+T2)%2; //시간으로 2분 단위로 구분 if (T3 >= 0 && PreT3 >= 0 && T3 < PreT3) { //몇번 변경되었는지 카운트 cnt = cnt+1; //분단위 변경시점에서 각 배열의 값을 뒤방으로 값을 이전 for (var i = 100; i >= 1; i--) { CC[i] = CC[i-1]; } //이전 후 현재값을 [0]에 저장 CC[0] = MarketData1.current; Main.MessageList(CC); //총 5분봉 100개가 만들어 지면 if (cnt >= 100) { Premav20 = mav20; Premav100 = mav100; //배열변수 CC에서 값을 가져와 20이평 100이평 만듬 var sum1 = 0; var sum2 = 0; for (var ii = 1; ii <= 100; ii++) { if (ii <= 20) sum1 = sum1+CC[ii]; sum2 = sum2+CC[ii]; } mav20 = sum1/20; mav100 = sum2/100; Main.MessageList(cnt,mav20,mav100); // 이전봉의 값까지 모두 0이상의 값이 저장이 되면 if (Premav20 > 0 && Premav100 > 0) { // 현재값과 이전값을 비교해 진 if (mav20 > mav100 && Premav20 < Premav100) { Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1,MarketData1.Ask(3), 0); } if (mav20 > mav100 && Premav20 < Premav100) { Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1,MarketData1.Bid(3), 0); } } } } } } 즐거운 하루되세요 > 즐겁게 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 항상 친절하신 답변에 깊이 감사드립니다. "스팟으로 이동평균값을 구해서 이용할 수 있는 방법"을 공부하고 있습니다. 제가 알고자 하는 것은, 굳이 차트에서의 이평선 값을 이용하는 것이 아니라, "스팟 자체에서 이평선 값을 구해서 이용하려면 어떻게 하면 되는가" 하는 것입니다. 아래의 3가지 질문을 올리오니, 알려 주시면 대단히 감사하겠습니다. 1. 현재, 차트에서 본다면, 200 이평선 위에 가격이 존재하는데, 이럴 때는 매수포지션만 보유하고, 매도포지션은 생성이 안 되게 하고 싶습니다. 만일 "현재 가격이 200 이평선 위" 수준인데, 잔고에 롱포지션도 없는데 미체결 매도주문이 있다면 그 것이 몇 개든 다 취소하고 싶고, 잔고에 롱포지션이 가령 두 계약이 있다 그러면, 그 것을 매수청산할 수 있도록, 두 계약 매도할 수 있는 미체결 매도주문만 남기고 나머지 미체결 매도주문은 다 취소해 버리고 싶습니다. 가능한 대로 "차트 쪽의 신세를 지지 않고 최대한 스팥 소스를 이용해서, 가격이 200 이동평균값 이상일 때는 미체결 매도주문을 취소"하려면 어떻게 소스를 짜는 것이 좋을지요? 2. 차트에서 매수진입신호가 왔을 때에, "스팟 식으로만 100 이평 값을 구해서 신호가격과 스팟에서의 이평가격을 비교해서 신호가격이 이평가격보다 높아야 스팟으로 매수주문"을 내고, 차트에서 매도진입신호가 왔을 때, "스팟에서 계산한 100 이평값보다 그 매도진입신호가격이 낮아야 스팟으로 매도주문"을 내는 식으로 하려면 어떻게 하면 좋을지요? ((예를 들자면, 차트에서 Buy신호가 발생했을 때에, 그 때 진입신호가격이 가령 245 라고 했을 때, 그 값이 100 이평선 값 위에 있으면, 가령 100 이평 값이 238이라면, 이 때는 실제로 매수주문을 내고, 만일 100 이평선이 그 진입신호가격보다 위라면, 가령 100 이평 값이 251이라면, 이 때는 매수신호를 무시하고 하는 것과 같은 식을, 최대한 차트에서 보내 주는 신호[정보]보다는, 스팥 자체로 해결하는 방법을 알고 싶습니다)) 3. 가급적이면 차트에의 의존을 줄이고 스팟으로 처리하는 비중을 높여 보려고 하는데, 아주 간단한 예로, 차트를 이용하지 않고, "스팟으로만, 가령 50 이평선과 200 이평 골든크로스에 매수, 데드크로스에 매도" 하는 수식을 부탁드리고 싶습니다. 대단히 감사합니다.
프로필 이미지

즐겁게

2013-08-18 17:44:29

감사합니다! 열공 하겠습니다. (냉무)