14시 기준
당일의 (종가 - 저가) / (고가 - 저가) 를 계산해서
0.3이 넘으면
현물을 100만원만큼 종가에 사서, 익일 시초가에 파는
수식을 부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2018-05-28 17:21:30
안녕하세요
예스스탁입니다
아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
모두 시간을 지정해, 지정한 시간에 필요한 값 계산하고 이후 지정한 시간에 매수
지정한 시간에 매도하는 내용입니다.
스크립트 객체화면 설정
종목객체 추가 --> 속성에서 객체명은 MarketData1, 주문낼 현물종목으로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정
var Entry = false;
var Calc = true, vv;
var Exit = false;
function Main_OnStart()
{
Main.MessageList("Start");
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//현재시간이 14시 이전이면 매수가능하다는 의미로 true셋팅
Entry = false;
calc = false;
if (HHMMSS < 140000)
{
Entry = true;
calc = true;
}
//현재시간이 15시25분 이전이면 매도 가능하다는 의미로 true셋팅
Exit = false;
if (HHMMSS < 90000)
{
Exit = true;
}
if (Entry == true || Exit == true)
{
//1초간격 타이머
Main.SetTimer(1, 1000);
}
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//14시 되면 매수
if (nEventID == 1 && calc == true && HHMMSS >= 140000)
{
//false로 변수값 만들어서 한번만 동작
calc = false;
vv = (MarketData1.current-MarketData1.low)/(MarketData1.high-MarketData1.low);
}
//15시 25분되고 0.3넘으면 매수
if (nEventID == 1 && Entry == true && HHMMSS >= 152500 && vv > 0.3)
{
Account1.OrderBuy(MarketData1.code,Math.floor(1000000/MarketData1.current), MarketData1.current, 0);
Main.KillTimer(1);
}
//보유수량 매도
if (nEventID == 1 && Exit == true && HHMMSS >= 90000)
{
Account1.SetBalance(MarketData1.code,);
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,MarketData1.Bid(5),0);
}
}
}
즐거운 하루되세요
> 모루 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
> 14시 기준
당일의 (종가 - 저가) / (고가 - 저가) 를 계산해서
0.3이 넘으면
현물을 100만원만큼 종가에 사서, 익일 시초가에 파는
수식을 부탁드립니다.