분할매수 예제

var _1차매수 = 탐색종목.평가손익율 == 0.0; var _2차매수 = 탐색종목.평가손익율 < - 2.0 && 탐색종목.평가손익율 >= -4.0; var _3차매수 = 탐색종목.평가손익율 < -4.0; var _2차매수주문 = 탐색종목.체결내역.FirstOrDefault(w=>w.주문평가손익율 < -2.0 && w.주문평가손익율 >= 4.0); var _2차매수주문가능 = (_2차매수주문 == null) ? true : false; var _3차매수주문 = 탐색종목.체결내역.FirstOrDefault(w=>w.주문평가손익율 < -4.0 ); var _3차매수주문가능 = (_3차매수주문 == null) ? true : false; if (_1차매수) Post(매수, 30, 0, 비중계산:1, 메시지:"1차매수"); if (_2차매수 && _2차매수주문가능) Post(매수, 30, 0, 비중계산:1, 메시지:"2차매수"); if (_3차매수 && _3차매수주문가능) Post(매수, 40, 0, 비중계산:1, 메시지:"3차매수");

로깅 사용자함수

// 로그를 기록하는 사용자함수입니다. // 세트변수 및 사용자함수 창에 붙여넣기 하시고, 스크립트에서 호출해서 사용하면 됩니다. // 스크립트가 정상적으로 작동하는지 검증이 필요할때 이 함수를 사용하여 로그를 분석할 수 있습니다. // 세트변수 정의 및 사용자 정의 함수 작성영역에 작성 private void 로거(string 파일명, string 메시지) { string fileName = 파일명; string 로그메시지 = DateTime.Now.TimeOfDay + " " +메시지; using (System.IO.StreamWriter writer = new System.IO.StreamWriter(fileName, true)) { writer.WriteLine(로그메시지); } } // 스크립트 본문에서 아래와 같이 사용 var 로그 = String.Format( "진입조건_돌파 ={0}", 진입조건_돌파); 로거(@".\logs\인버스.txt",로그);

주문가격, 재주문 옵션 사용

// 종목이 속한 시장(거래소, 코스닥)이나 가격대에 따라 호가단위가 다릅니다. // 주문가격을 지정하여 주문할 경우, 호가 함수를 사용하여 사용자 가격을 주문이 가능한 호가단위 가격으로 변경하거나, 호가조정에 이용할 수 있습니다. // 아래 예제는 종가가 단기 이평선을 돌파할 경우, 당일 시가에서 1호가 위 가격으로 매수주문을 하는 예제입니다. // 호가함수에서 탐색종목을 매개변수로 넣는 이유는 종목이 어떤 시장에 속한 종목인지 확인하기 위한것입니다. // Post 옵션설명 // 주문가격 : 주문가격 사용자 지정시 사용. // 유지 : 주문접수 후 설정한 시간만큼 미체결 주문 유지 // 재주문 : 유지 옵션과 같이 사용하여, 유지 시간 경과후, 재주문(1), 주문취소(0), 주문완전취소(-1). 주문취소(0)의 경우, 신호조건에 따라 재주문이 가능한 상태로 됨. var _이평선돌파 = 일봉_0봉전.MA_단기 < 일봉_0봉전.종가; var _주문가격 = 호가(탐색종목, 일봉_0봉전.시가, 1); if (_이평선돌파)     Post(매수, 100, 주문가격:_주문가격, 유지:120, 재주문:1);

시장지수 데이터 사용하기

//스크립트에서 각 시장별 지수는 아래와 같이 사용할 수 있습니다. 해외지수와 환율 데이터를 사용하려면 추가 설정이 필요합니다(설정화면에서 해외지수 부분). // 국내 var _kospi = 시장.KOSPI.종가; var _kospi200 = 시장.KOSPI200.종가; var _kosdaq = 시장.kosdaq.종가; // 미국 var _나스닥종합 = 시장.나스닥종합.종가; var _다우산업 = 시장.다우산업.종가; var _snp500 = 시장.SNP500.종가; // 일본 var _니케이225 = 시장.니케이225.종가; // 중국 var _상해종합 = 시장.상해종합.종가; var _홍콩H = 시장.홍콩H.종가; // 환율 var _usd = 시장.USD.종가; var _eur = 시장.EUR.종가; var _jpy = 시장.JPY.종가; var _cny = 시장.CNY.종가;

조건식 이탈시에도 매수

// 와룸에서는 기본적으로 조건식 편입 상태에서만 신규 매수가 가능합니다. 추가매수시에는 조건식 편입여부를 체크하지 않습니다. // 그러나, 조건식으로 검색된 이후에는 편입여부와 상관없이 매수하고자 할 경우가 있습니다. 이때는 아래의 설정을 스크립트에 추가하면 됩니다. 탐색종목.조건식이탈시신규매수중지 = false;

자동매수 금지 종목 설정

// 조건식으로 검색되었어도, 매수하고 싶지 않은 종목들이 있을 경우, 자동으로 매수되지 않도록 설정할 수 있습니다. var 매수제외종목 = new string[] {"010140", "005930"}; var 매수제외 = (매수제외종목.Contains(탐색종목.종목코드)) ? true : false; if (!매수제외) {     // 여기에 매수신호 작성 }

요일, 시간, 시장상황을 고려한 매수

//1. 월요일부터 목요일까지만 매수가능. //2. 오전 9시 10분 이후부터 매수가능. //3. 시장에서 상승종목이 하락종목보다 많을 경우에만 매수. var 매수가능_요일  = ((int)DateTime.Now.DayOfWeek < 5 ) ? true : false;   //0:일, 1:월, 2:화, 3:수, 4:목, 5:금, 6:토, 7:일 var 매수가능_시간 = DateTime.Now.TimeOfDay > TimeSpan.Parse("09:10:00"); if (매수가능_요일 && 매수가능_시간) { var 시장_매수가능 = false;  if (탐색종목.시장구분 == 0) //kospi    시장_매수가능 = (시장.KOSPI.상한 + 시장.KOSPI.상승 >= 시장.KOSPI.하한 + 시장.KOSPI.하락) ? true : false;  else    시장_매수가능 = (시장.KOSDAQ.상한 + 시장.KOSDAQ.상승 >= 시장.KOSDAQ.하한 + 시장.KOSDAQ.하락) ? true : false;     if (시장_매수가능) {    //상세 매수조건 스크립트 } }