답변완료
수식 부탁드립니다
현재가가 스토케스틱 (20.2)를 적용한 지표를 상하방 돌파할 경우 진입
진입 후 현재가가 조정, 반등이 발생하여 매수진입의 경우 현재가가 스토케스틱 (20.1) 지표 수식선을 상방 돌파할때, 매도 진입의 경우 현재가가 (20.1)선을 하방 돌파할때
청산하는 조건입니다
항상 감사합니다
안녕하세요
예스스탁입니다.
문의하신 내용은 예스스팟을 이용해야 하므로
스팟쪽 게시판에 이후에 답변드리겠습니다.
신호발생은 시스템으로 주문은 스팟에서 처리해야 합니다.
다만 문의하신 내용의 청산조건이 불명확합니다.
"진입 이후 지표 (20.1)로 조정 을 할경우 청산하고자 합니다"
위 내용은 좀더 구체적인 내용을 보강해서 스팟게시판에 올려주시기 바랍니다.
즐거운 하루되세요
> 미송 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 볼린저 밴드 지표 (20.2) 와 (20,1) 2개를 사용해서 스템을 만들고 싶습니다
볼린저밴드 지표 (20,2)를 상,하방 돌파할 경우 진입하고 진입 이후 지표 (20.1)로 조정
을 할경우 청산하고자 합니다
미완성봉으로 조건 만족시 진입하려고 합니다
진입 수량은 1개봉에 1개씩 진입하고, 청산조건 만족 못할시 5개봉까지 연속진입 허용하
고 청산은 일괄청산입니다
예스스팟을 사용해야 할 것 같아요
부탁드립니다
2015-04-27
2310
글번호 223448
예스스팟에서 배열 사용법 문의
제가 예스스팟을 지금 공부 중인데, 배열 선언과 사용에 있어서 좀 특이한 점들이 있어서 문의드립니다.
제가 예스스팟에서의 배열 사용법을 알아보려고 아래와같이 시험 테스트를 해보았습니다.
function Main_OnStart()
{
var aaa;
aaa = new Array(3);
aaa[0] = 0;
aaa[1] = 1;
aaa[2] = 2;
aaa[-1] = -1;
aaa[-2] = -2;
aaa[-3] = 33.33
aaa['a'] = 'abcd';
aaa['b'] = "efgh";
Main.MessageList(aaa[0], aaa[1], aaa[2], aaa[-1], aaa[-2], aaa[-3], aaa['a'], aaa['b']);
}
디버깅 창에 표시된 내용 ===> 0 1 2 –1 –2 33.33 abcd efgh
문의1)
먼저, 배열 선언해 줄 때, aaa = new Array(3); 와 같이 배열 요소 개수를 3개만 지정해주었는데도, 실제로 사용시엔 3개 이상 지정해도 아무 문제없이 사용이 가능하더군요.
예스스팟에서 new를 이용해 배열선언시에 요소갯수 지정은 아무런 의미가 없어 보이는데요.
위 경우처럼 new Array(3); 으로 지정해주지 않고, 그냥 괄호 () 속을 공란으로 두고 new Array();처럼 코딩해도 프로그램은 오류없이 잘 돌아가더군요.
수식 코딩할 때 배열요소 개수 지정은 안해줘도 상관없는 건가요?
예스스팟에서 배열이 동작하는 정확한 개념과 원리..메카니즘을 알고 싶습니다.
문의2)
aaa[-1], aaa['a']처럼 배열 요소를 인덱싱할 때 음수나 문자를 넣어도 문제없이 잘 돌아가던데, 이렇게 써도 문제 없는 건가요?
문의3)
배열요소에 값을 할당할 때 정수,실수,문자열 등을 막 집어넣어도 데이터 타입 오류를 발생시키지 않고 잘 돌아가던데, 예스스팟에선 원래 이런 방식을 허용하나요?
문의4)
예스스팟은 자바스크립트 기반으로 작동한다고 매뉴얼엔 씌여 있던데, 원래 자바 스크립트에선 위에서 언급한 것과 같은 방식의 배열 사용은 허용하지 않는 걸로 알고 있는데, (물론, 파이썬 같은 랭귀지에선 허용이 되긴 합니다만) 좀 희안하네요.
근데, 모의투자로 접속해선 저렇게 프로그래밍해도 잘돌아가긴 하지만...실전에 들어가서 실계좌에 돈을 입금한 상황에서 저런 방식으로 배열을 사용했을 때 오류가 발생해서 주문이 잘못나가거나 할까봐 걱정이 돼서 문의드립니다.
배열 사용에서 문제가 생겨 수식이 오작동해서 주문이 잘못나가기라도 하면 큰 손실을 볼수 있으니 말입니다.
홈페이지에 올라와 있는 예스스팟 매뉴얼에선 저렇게 사용하면 안되는 걸로 나와 있던데, 실제론 저렇게 프로그래밍 해도 되니 정말 저렇게 써도 될까? 의구심도 생기고 불안하기도 하고 그렇네요.
예스스팟에서 배열이 작동하는 기본 원리와 개념에 대해서 알고 싶습니다.
문의5)
예스스팟 스튜디오에서 스크립트 객체화면에서 종목객체추가 버튼을 누르면 종목이 추가되는데요.
거기 보면 current 라는 프로퍼티가 있던데, 설명에는‘현재가‘라고 되어 있더군요.
이 current 프로퍼티가 옵션같은 경우에는 현재 체결가인가요? 아니면 현재 그 종목의 이론가인가요?
옵션의 극외가격이나 극내가격 같은 경우에는 하루에 1건도 체결이 안되는..정말 거래량이 아예 없는 종목들도 있는데요.
그런 경우에는 현재 체결된 내역이 있으면 그 체결가를 current 가 저장하고, 체결된 내역이 없으며 이론가를 저장하고..그런 방식으로 작동하나요?
종목의 이론가만 따로 저장하고 있는 프로퍼티나 이론가를 구할수 있는 메소드를 찾아봐도 없는 거 같던데요.
예스스팟에서 옵션 이론가는 어떻게 참조하나요?
요약하면, current 프로퍼티가 체결가를 보관하는지 이론가를 저장하는지 여부와 이론가를 알고 싶을 때 어떤 방법이 있는지 궁금합니다.
문의6)
예스스팟 매뉴얼을 읽다보니 시간제한 관련한 내용이 있던데 잘 이해가 안되서 문의드리는데요.
GetLimitedTime(nKind)
설 명 : 조회나 주문 등에 시간제한이 발생했을 때 남은 시간을 1/1000초 단위로 반환합니다.
반 환 값 : 정수
매개변수 : 제한시간종류 (0:조회제한시간, 1:주문제한시간, 2:계좌정보조회 제한시간)
※ 종목객체 요청: 15초당 최대 60회
※ 주문: 15초당 최대 90회
※ 계좌 조회: 15초당 최대 60회
언뜻 봐서 15초당 60회 이상 조회하면 시간 제한이 있어서 더 이상 조회를 못한다는 내용같은데요.
예를들어, 100개 종목들을 스크립트 객체화면에서 종목객체추가 버튼을 눌러 추가시킨 경우에 main 객체내에 있는 OnUpdat eMarket 이벤트를 이용해서 이벤트 함수를 구현하면 무조건 15초 간격으로 60개 종목을 계속 조회하게 된다는 뜻인가요? 장종료되거나 예스스팟 종료전까지는 쉬지 않고 무조건 계속 15초 간격으로 조회하나요? 이런 경우 나머지 40개 종목은 어떻게 되는지요?
만일 100개의 종목에 대해 조회 요청을 했다고 가정했을 때 15초 동안 60개 종목만 조회를 허락하고 나머지 40개 종목은 15초가 지난 뒤에 조회가 된다는 뜻인가요?
사실 컴퓨터가 60개 종목 조회하는데는 1초도 안걸릴텐데요. 일단 1초동안 60개 종목 조회를 했다고 가정하면 15초제한으로 인해 14초 동안은 조회를 못하고 있다가 14초가 지난 다음에야 나머지 40개 종목을 조회하게 된다는 의미인가요?
매뉴얼에는 시간제한 발생했을 때 어떻게 처리하는지에 대한 프로그램 코딩 예제는 없어서 잘 감이 안잡히는데, 실제로 프로그램으로 코딩해서 어떤 방식으로 처리하는지 좀 가르쳐 주세요. 매뉴얼엔 너무 간단히 언급되어있어 잘 이해가 안되네요.
문의7)
그리고, 제가 테스트 차원에서 스크립트 객체화면에서 계좌객체, 옵션 객체를 추가시키고 간단히 다음과 같이 코딩해 봤습니다.
그랬더니 OnUp dateMarket 이벤트가 전혀 발생하지를 않더군요.
function Main_OnUpd ateMarket(sItemCode, lUp dateID)
{
Main.MessageList('OnUp dateMarket내부');
}
그래서, 스크립트 객체화면에서 종목객체 추가 버튼을 눌러 다시 5월물 콜270 종목 1개를 추가시키고, 다시 테스트 해봤더니 그제서야 OnUpd ateMarket 이벤트가 발생하네요.
스크립트 객체화면에서 Option 데이터라고 되어 있는 버튼을 눌러서 추가시킨 경우에는 OnUp d ateMarket 이벤트가 작동을 안하고, 스크립트 객체화면에서 종목객체 추가 버튼을 눌러서 추가시킨 종목에 대해서만 OnUpd ateMarket 이벤트가 작동하는 건가요?
그리고, 예스스팟은 최근월물(5월물),차근월물(6월물)까지만 지원해 주는 걸로 알고 있는데, 7월물이나 8월물같은 원월물에 대해서도 스크립트 객체화면에서 종목객체 추가 버튼을 눌러서 추가시키는 방식으로 하면 이에 대해서도 OnUpda teMarket 이벤트가 정상적으로 발생하나요?
또한, OnUp dateMarket 이벤트는 시세변동뿐만 아니라 호가변동시에도 발생하는 걸로 알고 있는데, 매수1호가(혹은 매도1호가)부터 매수10호가(매도10호가)까지의 호가변동만 감지해서 이벤트를 발생시키나요? 아니면 1호가부터 5호가까지만 보나요? 그것도 아니면 10호가 밖에 있는 호가 변동까지 다 감시를 하는 건가요?
2015-04-28
2152
글번호 223442
답변완료
수식 부탁합니다.
많은 도움을 받고 있습니다.
선물매수신호유지시 콜옵션 1.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
풋옵션 2.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
선물매도신호유지시 콜옵션 2.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
풋옵션 1.0 에 가장근접한 행사가를 15시04분 매도, 익일 15시 03분 청산
로스컷은 아래식으로 가능한지요?
//5초단위로 잔고 체크
function Main_OnTimer(nEventID)
{
var U1 = 0;
var P1 = 0;
var V1 = 0;
var Z1 = 0;
var U2 = 0;
var P2 = 0;
var V2 = 0;
var Z2 = 0;
//최근 buy발생상태이면
if (Start == 1)
{
A1.SetBalanceItem(CallCode1,0);
if (A1.Balance.count > 0 && A1.Balance.position == 1)
{
U1 = A1.Balance.avgUnitCost;
P1 = A1.Balance.current;
V1 = A1.Balance.count;
Z1 = ((U1-P1)*V1)*500000;
}
A1.SetBalanceItem(CallCode2,0);
if (A1.Balance.count > 0 && A1.Balance.position == 2)
{
U2 = A1.Balance.avgUnitCost;
P2 = A1.Balance.current;
V2 = A1.Balance.count;
Z2 = ((P2-U2)*V2)*500000;
}
if ((Z1+Z2) <= loss)
{
A1.OrderBuy(CallCode1, V1, Option.GetAskByCode(CallCode1, 2), 0);
A1.OrderSell(CallCode2, V2, Option.GetBidByCode(CallCode2, 2), 0);
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code1", " ");
Main.SetUserValue("Code2", " ");
}
}
//최근 SEll발생상태이면
if (Start == -1)
{
A1.SetBalanceItem(PutCode1,0);
if (A1.Balance.count > 0 && A1.Balance.position == 1)
{
U1 = A1.Balance.avgUnitCost;
P1 = A1.Balance.current;
V1 = A1.Balance.count;
Z1 = ((U1-P1)*V1)*500000;
}
A1.SetBalanceItem(PutCode2,0);
if (A1.Balance.count > 0 && A1.Balance.position == 2)
{
U2 = A1.Balance.avgUnitCost;
P2 = A1.Balance.current;
V2 = A1.Balance.count;
Z2 = ((P2-U2)*V2)*500000;
}
if ((Z1+Z2) <= loss)
{
Start = 0;
A1.OrderBuy(PutCode1, V1, Option.GetAskByCode(PutCode1, 2), 0);
A1.OrderSell(PutCode2, V2, Option.GetBidByCode(PutCode2, 2), 0);
Main.SetUserValue("Start", 0);
Main.SetUserValue("Code1", " ");
Main.SetUserValue("Code2", " ");
}
}
}
2015-04-20
1787
글번호 223436
답변완료
예스스팟에서 차차근월물,차차차근월물도 수식작성 가능한가요?
예스스팟에서 코스피200 옵션 최근월물,차근월물을 대상으로 수식작성은 가능한거 같은데, 차차근월물이나 차차차근월물에 대해서도 수식작성이 가능한가요?
현재로치면 5월물(최근월물), 6월물(차근월물)까진 예스스팟에서 지원되는 거 같은데, 7월물이나 8월물도 수식작성이 가능한지 궁금합니다.
그리고, CME 야간선물도 예스스팟에서 지원되는 것 같던데, 야간 옵션은 지원안되는 것 같더군요.
향후에 야간옵션도 혹시 지원될 예정은 없는지 궁금합니다.
그리고, 아래 1155번 글 예스스팟 OrderBuy() 함수 관련해서 문의한 것 답변주신대로 해봤는데, 제대로 안되서 재문의드렸습니다.
2015-04-20
1880
글번호 223433