커뮤니티
수식작성좀 부탁드립니다.
2016-10-15 00:44:27
106
글번호 102993
여러가지 테스트 능력이부족하여 함수를 못만들어서 부탁좀드리겟습니다.
구현가능한 부분과 않되는 부분은 다른 대체 방법이 있는지 조언좀 부탁드립니다
구현하고 싶은 수식
매일 당일 9시 30분 선물 1분봉 기준으로 ATM에 가장 가까운 콜옵션 1개 풋옵션1개 시가매도
매일 당일 15시 00분 당일 매도 시가 강제청산
ex) 9/15일 9시 30분경 12월 선물 257.0 일시 257.5 근월물(11월) 풋,콜 1계약식 시가매도
15시 수익상관없이 콜,풋 매도청산
매일 반복
감사합니다.
답변 1
예스스탁 예스스탁 답변
2016-10-17 11:42:21
안녕하세요
예스스탁입니다.
예스랭귀지는 차트의 종목을 수식에서 지정할수 없습니다.
원하시는 종목의 차트를 열고 시스템을 적용하는 구조입니다.
문의하신 내용은 예스랭귀지로는 가능하지 않고
예스스팟이라는 다른 시스템언어로 구현하셔야 합니다.
예스스팟은 자바스크립트 언어로 코딩을 하게 되며
따로 수식을 작성해 드리지 않습니다.
답변해 드리는 내용은 식작성의 가이드라인입니다.
사용자분의 어느정도 코딩능력이 필요하므로
자바스크립트 관련서적과 도움말을 통해서 충분히 숙지후 사용하시기 바랍니다.
아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
스크립트 객체화면 설정
옵션객체 추가 --> 속성에서 객체명은 Option1
종목객체 추가 --> 속성에서 객체명은 MarketData1, 종목은 선물로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌설정
var Entry,Exit;
var Call, Put;
function Main_OnStart()
{
var d = new Date();
var HHMMDD = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
Main.SetTimer(1,1000);
Main.MessageList("스팟시작");
if (HHMMDD < 193000)
Entry = false;
else
Entry = true;
if (HHMMDD < 150000)
Exit = false;
else
Exit = true;
}
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMDD = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMDD >= 093000 && Entry == false)
{
Entry = true;
var V1 = Math.floor(MarketData1.current/2.5)*2.5;
var V2 = MarketData1.current%2.5;
if (V2 < 1.25)
ATM = V1;
else
ATM = V1+2.5;
Main.MessageList("선물현재가 : ",MarketData1.current, "/ATM : ",ATM);
if (ATM > 0)
{
Call = Option1.GetCodeByExercisePrice(0,ATM);
Put = Option1.GetCodeByExercisePrice(1,ATM);
Main.MessageList("콜매도 : ",Call);
Account1.OrderSell(Option1.GetCodeByExercisePrice(0,ATM), 1, 0,1);
Main.MessageList("풋매도 : ",Put);
Account1.OrderSell(Option1.GetCodeByExercisePrice(0,ATM), 1, 0,1);
}
}
if (HHMMDD >= 150000 && Exit == false)
{
Main.MessageList("당일청산");
Exit = true;
Account1.SetBalance(Call,0);
if (Account1.Balance.position == 1)
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1);
Account1.SetBalance(Put,0);
if (Account1.Balance.position == 1)
Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1);
}
}
즐거운 하루되세요
> 교두보 님이 쓴 글입니다.
> 제목 : 수식작성좀 부탁드립니다.
> 여러가지 테스트 능력이부족하여 함수를 못만들어서 부탁좀드리겟습니다.
구현가능한 부분과 않되는 부분은 다른 대체 방법이 있는지 조언좀 부탁드립니다
구현하고 싶은 수식
매일 당일 9시 30분 선물 1분봉 기준으로 ATM에 가장 가까운 콜옵션 1개 풋옵션1개 시가매도
매일 당일 15시 00분 당일 매도 시가 강제청산
ex) 9/15일 9시 30분경 12월 선물 257.0 일시 257.5 근월물(11월) 풋,콜 1계약식 시가매도
15시 수익상관없이 콜,풋 매도청산
매일 반복
감사합니다.
다음글
이전글