커뮤니티

문의드립니다.

프로필 이미지
저니0
2025-03-23 15:26:25.0
183
글번호 226253
답변완료
안녕하세요. 수고가 많으십니다. 예스스팟에서 분할매수 및 청산 수식을 작성하는 데 어려움이 있어 도움을 요청드립니다. 1. 예스스팟 자동매매를 실행했을 때 계좌에 있는 종목(미리 수동매수한 종목)이 0.5%, 1%, 1.5%하락했을 때 10만 원씩 분할매수 2. 8% 상승시 보유 개수의 50% 익절 3. 5%이상 상승했다가 4%로 내려왔을 시 전량 청산(트레일링 스탑) 4. 첫번째 분할매수로 진입한 가격에서 2% 하락시 전량 손절 답변 주시면 정말 감사드리겠습니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-04-07 13:57:41.0

안녕하세요 예스스탁입니다. 스팟 수식답변은 가이드입니다. 아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다. 영문 업데이트가 게시판 금칙어라 Up*date와 같이 중간에 *이 추가되어 있습니다. 주석 참고하셔서 *제거해서 사용하시기 바랍니다. var List=[], Avg=[],OD=[],HH=[],XX=[],MK =[]; var req; var 추가매수금 = 100000; function Main_OnStart() { var num = Account1.GetTheNumberOfBalances(); if (num > 0) { Main.MessageList("시작시 보유종목 :",num); for (var i = 0; i < num; i++) { Account1.SetBalance(i); List.push(Account1.Balance.code); Avg.push(Account1.Balance.avgUnitCost); } req = 0; Main.MessageList("종목객체 요청:",List[req]); Main.ReqMarketData(List[req]); } else { Main.MessageList("시작시 보유종목 없음") } } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == List[req]) { MK.push(MarketData); OD.push(1); XX.push(0); P1.push(0); req = req+1; if (req < List.length) { Main.MessageList("종목객체 요청:",List[req]); S = Main.ReqMarketData(List[req]); if (S == -1) { Main.SetTimer(1, 15000); } } else { Main.MessageList("종목객체 생성 완료"); } } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Main.ReqMarketData(OrderList[req]); } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*제거 { if (lUp*dateID == 20001)//*제거 { for (var i = 0; i < MK.length; i++) { if (MK[i].current > HH[i]) { HH[i] = MK[i].current; } if (OD[i] > 0 && sItemCode == MK[i].code) { if (OD[i] == 1 && MK[i].current <= Avg[i]*0.995) { OD[i] = 2; P1[i] = MK[i].Ask(1); Account1.OrderBuy(MK[i].code, Math.floor(추가매수금/MK[i].Ask(1)),MK[i].Ask(1),0) } if (OD[i] == 2 && MK[i].current <= Avg[i]*0.99) { OD[i] = 3; Account1.OrderBuy(MK[i].code, Math.floor(추가매수금/MK[i].Ask(1)), MK[i].Ask(1), 0) } if (OD[i] == 3 && MK[i].current <= Avg[i]*0.985) { OD[i] = 4; Account1.OrderBuy(MK[i].code, Math.floor(추가매수금/MK[i].Ask(1)), MK[i].Ask(1), 0) } if (OD[i] == 4 && P1[i] > 0 && MK[i].current <= P1[i]*0.98) { OD[i] = 0; Account1.OrderSell(MK[i].code,Account1.Balance.count, 0, 1); } if (XX[i] == 0 && MK[i].current >= Avg[i]*1.08) { XX[i] = 1; Account1.SetBalance(MK[i].code, 0); if (Account1.Balance.count > 0) { Account1.OrderSell(MK[i].code,Math.min(1,Math.floor(Account1.Balance.count/2)), 0, 1) } } if (XX[i] >= 0 && HH[i] >= Avg[i]*1.05 && MK[i].current >= Avg[i]*1.04) { XX[i] = -1; Account1.SetBalance(MK[i].code, 0); if (Account1.Balance.count > 0) { Account1.OrderSell(MK[i].code,Account1.Balance.count, 0, 1) } } } } } } 즐거운 하루되세요 > 저니0 님이 쓴 글입니다. > 제목 : 문의드립니다. > 안녕하세요. 수고가 많으십니다. 예스스팟에서 분할매수 및 청산 수식을 작성하는 데 어려움이 있어 도움을 요청드립니다. 1. 예스스팟 자동매매를 실행했을 때 계좌에 있는 종목(미리 수동매수한 종목)이 0.5%, 1%, 1.5%하락했을 때 10만 원씩 분할매수 2. 8% 상승시 보유 개수의 50% 익절 3. 5%이상 상승했다가 4%로 내려왔을 시 전량 청산(트레일링 스탑) 4. 첫번째 분할매수로 진입한 가격에서 2% 하락시 전량 손절 답변 주시면 정말 감사드리겠습니다.