커뮤니티

예스스팟 Q&A

답변완료

수식 부탁드립니다.

아래 스팟식은 검색종목이 잔고에 없으면 매수주문하는 식입니다. 아래 스팟식을 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 5번까지 피라미딩 진입되도록 수식 업그레이드 부탁드립니다. 이게 어렵다면 날이 바뀌거나 주가 바뀌거나(선택가능하게 부탁) 재차 검색되면 검색종목 잔고가 500000이 될때까지 진입되게 부탁드려요. var EntryMoney; var ItemList,Count; //스팟시작 function Main_OnStart() { //타이머설정 Main.SetTimer(1, 600000);//간격(3600초 60분) EntryMoney = 100000; } function Main_OnTimer(nEventID) { //타이머동작하면 사용자검색조건 실행 if (nEventID == 1) { Main.ReqPowerSearch("Box-30"); Req = 0; } if (nEventID == 2 && Req < Count) { Main.ReqMarketData(ItemList[Req], 0, 0); Req = Req+1; Main.MessageList(ItemList[Req-1],Req); } } //종목검색이 완료 function Main_OnRcvItemList(aItemList, nCount) { //검색종목수가 1개 이상이면 if (nCount >= 1) { ItemList = aItemList; Count = nCount; //잔고셋팅해서 보유종목이 아니면 Account1.SetBalanceItem(ItemList[0],0); Main.MessageList(Count,ItemList,Account1.Balance.count); if (Account1.Balance.count == 0) { //종목객체 생성 요청 Req = 1; Main.ReqMarketData(ItemList[0], 0, 0); Main.SetTimer(2, 1000);//간격(1초) } } } //요청한 종목객체가 생성되면 function Main_OnRcvMarketData(MarketData) { var Ob = MarketData; var EntryVol = 0; //현재가가 EntryMoney 미만이면 수량계산 이상이면 1주 if (Ob.current < EntryMoney) EntryVol = Math.floor(EntryMoney/Ob.current); else EntryVol = 1; if (EntryVol > 0) { Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0); Main.RemoveMarketData(Ob); } }
프로필 이미지
무명
2015-05-29
1739
글번호 223489
답변완료

수식 수정 부탁드립니다.

아래는 종목검색 후 검색된 종목이 잔고에 있으면 해당 종목을 시장가로 청산하는 스팟식을 작성해 주셨습니다. 아래 점선 아래부분은 매수주문식 같은데 필요 없는것 아닌가요? 검색된 종목이 잔고에 있으면 해당 종목을 시장가로 청산하는 스팟식으로만 간단하게 줄여주시기 바랍니다. var EntryMoney; var ItemList,Count; //스팟시작 function Main_OnStart() { //타이머설정 Main.SetTimer(1, 300000);//간격(300초 5분) EntryMoney = Math.floor(Account1.GetBalanceETCinfo(0)*10); } function Main_OnTimer(nEventID) { //타이머동작하면 사용자검색조건 실행 if (nEventID == 1) { Main.ReqPowerSearch("Stest"); Req = 0; } if (nEventID == 2 && Req < Count) { Main.ReqMarketData(ItemList[Req], 0, 0); Req = Req+1; Main.MessageList(ItemList[Req-1],Req); } } //종목검색이 완료 function Main_OnRcvItemList(aItemList, nCount) { //검색종목수가 1개 이상이면 if (nCount >= 1) { ItemList = aItemList; Count = nCount; //잔고종목이 검색종목에 있으면 시장가로 전량 매도 var num = Account1.GetTheNumberOfBalances(); for(var i = 0; i < num; i++) { //잔고종목셋팅 Account1.SetBalance(i); //검색종목들과 잔고종목의 종목코드 비교 //같은 종목코드 있으면 true 아니면 false var cond = false; for(var j = 0; j < Count; i++) { if (Account1.Balance.code == ItemList[j]) { cond = true; } } //true이면 매도 if (cond == true) { Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1); } } ----------------------------------------------------------------------------------------------------> 이 부분부터는 필요없는것 아닌가요? //잔고셋팅해서 보유종목이 아니면 Account1.SetBalanceItem(ItemList[0],0); Main.MessageList(ItemList,Count,Account1.Balance.count); if (Account1.Balance.count == 0) { //종목객체 생성 요청 Req = 1; Main.ReqMarketData(ItemList[0], 0, 0); Main.SetTimer(2, 1000);//간격(1초) } } } //요청한 종목객체가 생성되면 function Main_OnRcvMarketData(MarketData) { var Ob = MarketData; var EntryVol = 0; EntryVol = Math.floor(EntryMoney/Ob.current); if (EntryVol > 0) { Account1.OrderBuy(Ob.code,EntryVol,Ob.Ask(5),0); Main.RemoveMarketData(Ob); } }
프로필 이미지
무명
2015-05-28
1715
글번호 223488

선물꾼 님에 의해서 삭제되었습니다.

프로필 이미지
선물꾼
2015-05-27
1
글번호 223487

선물꾼 님에 의해서 삭제되었습니다.

프로필 이미지
선물꾼
2015-05-27
0
글번호 223486
답변완료

미완성신호 주문

안녕하세요~ 다음 내용과 같이 수식 변경 부탁드립니다. -------------------- < 현재 수식 내용 > 1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우 2) 매수신호시 : 현재가격이 시초가-0.3 의 가격에 도달하면 5호가 매수 매도신호시 : 현재가격이 시초가+0.3 의 가격에 도달하면 5호가 매도 3) 변수 incompleteN, BuyID, BuyFill, SellID, SellFill function Main_OnStart() { Main.MessageLog("시작"); incompleteN = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //09시52초 이전 if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000) { if (incompleteN == 0 && IncompleteSignal.signalKind == 1 && MarketData1.current <= MarketData1.open-0.3) //시초가대비 0.3이상 하락하면 5호가 매수 { BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Ask(5),0); incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정 BuyFill = 0; } if (incompleteN == 0 && IncompleteSignal.signalKind == 3 && MarketData1.current >= MarketData1.open+0.3) //시초가대비 0.3이상 상승하면 5호가 매도 { SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Bid(5),0); incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정 SellFill = 0; } } < 변경요청 내용 > 1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우 2) 위의 방식은 atlimit의 개념이어서 다음과 같이 선주문 방식으로 변경 --> 미완성신호가 발생하는 즉시 매수신호시 : 시초가-0.3 에 주문 매도신호시 : 시초가+0.3 에 주문 --> 주문체결이 되면 incompleteN = 1; (체결이 안되면 0 유지) 3) 주어진 09:00:52 까지 2)의 주문이 미체결시, 09:00:54 해당주문 5호가로 정정 (즉, incompleteN = 1 이 아니면 5호가 정정주문) 4) 기존 변수는 다른 수식과 연관되어 있어 그대로 사용 //미완성신호 선주문 ..... ... ....... //09시54초 --> 09시52초까지 미체결시 if (MarketData1.time >= 0900540000 && 미완성신호 Buy주문 미체결시) { 해당 매수주문 5호가 정정 } if (MarketData1.time >= 0900540000 && 미완성신호 Sell주문 미체결시) { 해당 매도주문 5호가 정정 } ------------------------- 이상입니다. 그럼 활기찬 시간되시기를 바라며, 감사합니다 !!
프로필 이미지
새로운세상
2015-06-03
1578
글번호 223485

난이 님에 의해서 삭제되었습니다.

프로필 이미지
난이
2015-05-22
2
글번호 223481
답변완료

정정주문

수동이던 시스템이던 주문발생후 미체결주문이 있으면 5초후 자동정정으로 상대2호가에 주문내는 식 좀 부탁드립니다.
프로필 이미지
이디
2015-05-21
1564
글번호 223478
답변완료

수식 부탁드립니다.

안녕하십니까? 매번 성의있는 답변 감사드립니다. 결국 롤오버 문제 때문에 예스스팟으로 넘어오기로 했습니다. 그리고 예스스팟은 예스랭귀지 처럼 차트에 시뮬레이션 해볼 수 없나요? 또는 어떻게 시뮬레이션 해볼 수 있나요? 부탁드릴 수식은, 해외선물이라 16시~16시를 하루로 잡아 매일 16시 시가를 기준으로 1% 상승 또는 하락하면 매수 또는 매도 진입. (손절이나 청산이 되기 전에는 새로운 진입 신호는 무시.) (모든 진입, 청산 및 손절은 실시간으로 신호가 발생하는 즉시 시장가로 진입 또는 청산.) 손절은 1% 트레일링스톱으로 최소 1% 수익 이후에 수익의 50%가 감소하면 청산. 매월 25일 20시에 강제청산 후 다음월 종목으로 롤오버. 단, 롤오버시 25일 16시 시가를 기준으로 롤오버 하는 가격이 손절가나 또는 트레일링 스탑에 의한 청산에 걸리면, 진입하지 않고 걸리지 않으면 25일 20시에 현재월 종목 강제청산 후, 다음월 종목을 20시에 시장가 진입.
프로필 이미지
spek
2015-05-20
1487
글번호 223477

선물꾼 님에 의해서 삭제되었습니다.

프로필 이미지
선물꾼
2015-05-18
40
글번호 223474
답변완료

옵션 행사가 구분

안녕하세요. 다음 수식 부탁드립니다. ------------------------------ <1> 예스스팟에서 MarketData1 는 K200 지수이고, 옵션 행사가격을 결정하기 위하여 다음과 같이 수식이 작성되어 있습니다. PP = (Math.floor(MarketData1.current/2.5)*2.5); 이때 행사가격(PP)이 260, 265, 270 과 같이 5로 나누었을 때 나머지가 0 인 행사가격과 262.50, 267.50, 272.50 과 같이 5로 나누었을 때 나머지가 2.50 인 행사가격을 구분하고자 합니다. <2> 예스스팟에서 데이트레이딩이 아닌 포지션매매일 경우 진입횟수를 제한하고자 합니다. 제 생각으로는 Main.GetUserValue 함수를 사용하여 거래횟수를 기억시켜서 사용해야 될 것 같은데, 위의 방법 또는 다른 간단한 방법이 있으면 수식 부탁드립니다. (포지션매매, 진입횟수 3회로 제한) --------------------------- 그럼 오늘도 즐거운 시간되세요~ 감사합니다 !!!
프로필 이미지
새로운세상
2015-05-18
1666
글번호 223473