커뮤니티

예스스팟 Q&A

답변완료

질문드립니다.

예스트레이더를 활용해 스팟을 구동할려고 하는데 차트객체와 실제 매매가 들어갈 종목객체를 다르게 설정해서 매매할 수 있나요? 예로 나스닥차트에서 나오는 신호를 마이크로나스닥으로 주문을 들어가게 하는 것 말이죠.
프로필 이미지
jack112
2020-04-21
3037
글번호 225204
답변완료

BarsSinceEntry 구현질문

BarsSinceEntry 를 구현을 이렇게 했는데 더 좋은 방법또는 기존함수같은게 있을까요? var BarsSinceEntry = 1; function Chart1_OnRiseSignal(Signal) { if (Signal.name != "") { BarsSinceEntry = 1; } } function Chart1_OnBarAppended(nData) { BarsSinceEntry++; }
프로필 이미지
detk
2020-04-20
3200
글번호 225202
답변완료

지표값이 엉뚱하게 나옵니다.

if (nEventID == 2 && BUYCON == 1 && SELLCON == 0) { BUYIK = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Account1.Balance.avgUnitCost)*1; BUYIK2 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Account1.Balance.avgUnitCost)*2; BUYIK3 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Account1.Balance.avgUnitCost)*3; BUYIK4 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Account1.Balance.avgUnitCost)*4; BUYIK5 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Account1.Balance.avgUnitCost)*5; BUYSON = Chart1.GetIndicatorData("#11.DJ밴드_색상변화_중심_2배",2,0) - SCALE*8; Main.MessageList("매수익절",BUYIK,"매수손절",BUYSON,"매도익절",SELLIK,"매도손절",SELLSON); Main.MessageList("매수익절",BUYIK,"매수익절2",BUYIK2,"매수익절3",BUYIK3,"매수익절4",BUYIK4,"매수익절5",BUYIK5); Main.KillTimer(2); //타이머 종료 } 위에 식을 이벤트가 발생했을때 지표값을 가져오게 작성했는데 제대로 나올때도 있는데 수시로 엉뚱한 값을 가져옵니다. 스팟시작시 제대로 읽어오는지 보려고 아래식으로 테스트해보았을땐 정상값을 읽어옵니다. 근데 포지션 진입후 1분뒤에 타이머 발동후 값을 가져올때는 엉뚱한 값이 나오는데 뭐가 잘못된건지 알고 싶습니다. function Main_OnStart() { BUYIK = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Chart1.GetIndicatorData("#2.매수선키움(최종)",1,2)); BUYIK2 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Chart1.GetIndicatorData("#2.매수선키움(최종)",1,2))*2; BUYIK3 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Chart1.GetIndicatorData("#2.매수선키움(최종)",1,2))*3; BUYIK4 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Chart1.GetIndicatorData("#2.매수선키움(최종)",1,2))*4; BUYIK5 = Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)+(Chart1.GetIndicatorData("#1.매도선키움(최종)",1,2)-Chart1.GetIndicatorData("#2.매수선키움(최종)",1,2))*5; Main.MessageList("매수익절",BUYIK,"매수익절2",BUYIK2,"매수익절3",BUYIK3,"매수익절4",BUYIK4,"매수익절5",BUYIK5); }
프로필 이미지
수다리
2020-04-20
3379
글번호 225201
답변완료

호가체결 문의드립니다

수고많으십니다. 제가 예스트레이더로 나스닥매매하고 있는데 +-5호가로 설정해놔도 갑작스러운 거래량 증가로 체결이 안되는 경우가 있어 난감합니다. 검색해보니 예스트레이더와 연동하여 예스스팟으로 +-10호가.20호가 체결설정할수 있다는데 어떻게 하면 되는지요?
프로필 이미지
망치2
2020-04-18
3429
글번호 225200

관리자에 의해 시스템시장 토론실로 이동되었습니다

프로필 이미지
donchon
2020-04-17
2
글번호 225199
0
답변완료

수식 오류 확인 부탁드립니다.

다음 수식으로 차트와 연결하여 사용하려고 하는데 주문이 나갈때도 있고 안나갈때도 있습니다. 무엇이 잘 못되었는지 검증 부탁드립니다. var T,YYYYMMDD,daycount; var d = new Date(); var T1 = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); function Main_OnStart() { Main.MessageList("Start"); T = 0; var d = new Date(); YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); Main.SetTimer(1, 5000); if (Main.GetUserValue(YYYYMMDD) == "20200611") { daycount = true; } else { daycount = false; } } function Chart1_OnRiseSignal(Signal) { if (T1>=90400 && Signal.signalKind == 1) { Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Ask(5), 0); } if (T1>=90400 && Signal.signalKind == 2) { Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, 0, 1); } if (T1>=90400 && Signal.signalKind == 3) { Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count, MarketData1.Bid(5), 0); } if (T1>=90400 && Signal.signalKind == 4) { Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count, 0, 1); } } function Main_OnTimer(nEventID) { var d = new Date(); var T1 = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && daycount == true && T1>=152100) { Main.KillTimer(1); Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } if (nEventID == 1 && daycount == false && T1>=153600) { Main.KillTimer(1); Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } }
프로필 이미지
삼룡이
2020-04-17
3558
글번호 225198
답변완료

스팟 스크립트에서 5분봉, 10분봉, 15분봉별로 매매하고자 경우, 선별은?

안녕하세요. 제가 단일 스팟 스크립트에서 같은 전략으로 분봉만 다르게 하여 5분봉, 10분봉, 15분동 3개 돌리고자 합니다. 아래는 제가 실제 구성해서 사용하고 있는 것으로 현재는 5분봉에 대해서만 사용합니다. 스크립트 객체는 1. Main 2. Account1 3. ChartEx1 YS 코드 function Main_OnRiseSignal(ChartEx, Signal) { if(Signal.signalKind == 1) { } } 제가 생각하는 방법으로는 .. 위 코드에 3개 분봉 CharEx을 만들어서 하면 될것 같습니다. 3. ChartEx1 <-- 5분봉 4. ChartEx2 <-- 10분봉 5. ChartEx3 <-- 15분봉 이렇게 하면 , OnRiseSignal 함수도 function Main_OnRiseSignal(ChartEx1, Signal) { } function Main_OnRiseSignal(ChartEx2, Signal) { } function Main_OnRiseSignal(ChartEx3, Signal) { } A. 이렇게 만들면 되는지요? B. 매매수량은 각 차트의 signal.count 로 사용해도 구분되는지요?
프로필 이미지
2ndbus
2020-04-16
3574
글번호 225197
답변완료

사용자 정의 함수의 인쇄

안녕하세요. YesSpot으로 만든 코드를 점검 중인데요. 코드를 프린터로 인쇄하여 가지고 다니며 들여다 보는데, 사용자 정의 함수는 어떻게 인쇄를 해야 하는 건지요? 아시는 분 있으시면 도움 부탁드립니다. 감사합니다.
프로필 이미지
좋은밤
2020-04-07
3957
글번호 225194
답변완료

파워종목에서 검색하면 아침에 검색이 잘 되던게 오후에는검색이 안됩니다

파워종목에서 검색하면 아침에 검색이 잘 되던게 오후에는검색이 안됩니다
프로필 이미지
소민수
2020-04-06
3770
글번호 225193
답변완료

미체결 주문 조회 및 취소

안녕하세요. 코스피200 선물 거래중 일정시간마다 미체결 내역을 조회후 해당 거래를 취소하는 스팟 코드를 작성중 질문드립니다. 일단 미체결 주문에 대한 조회를 하고 싶은데 아래와 같이 코드 작성후 수동으로 주문 이후 미체결 주문이 존재하는 상태에서 UnfillCnt가 계속 0으로 출력됩니다. 관련 내용 문의드립니다. function Main_OnStart() { Main.MessageLog("----- Start -----") Main.SetTimer(1, 10000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageLog(HHMMSS); if (nEventID == 1 && HHMMSS >= 110000) { Main.MessageLog("미체결 조회 시작") var UnfillCnt = A1.GetTheNumberOfUnfills(); Main.MessageLog("미체결 건수 :" + UnfillCnt); } }
프로필 이미지
지순신
2020-04-06
3693
글번호 225192