답변완료
문의 드립니다.
항상 상세하시고 친절하신 답변에 감사드립니다.
예스스팟에서 손절 익절 추적스탑 등을 구현하는 방법을 공부하려고 하는데,
예스스팟의 "객체정보" 화면에서 보면,
StopLoss, StopPrifitTarget, StopTrailing이라는 객체들이 보입니다.
YesLanguage의 SetStopLoss, SetStopPrifitTarget, SetStopTrailing이라는 강제청산함수들과 기능이 매우 유사할 것으로 짐작이 되는데,
이 객체들의 실제 적용례를 부탁드립니다.
1.
StopLoss,
StopPrifitTarget,
StopTrailing
객체들의 실제 사용례를, 아주 간단하게라도 예문을 각각 보여 주시면 대단히 감사하겠습니다.
2.
특히, 이 객체들의 properties 중에 보면 "color"라고 하는 프라퍼티가 있어서, 화면상에 손절선, 익절선, 추적스탑선 등을 색깔로 표시해 주는 좋은 기능일 것으로 짐작이 되는데, 시뮬레이션 등을 할 수 없는 예스스팟에서 색깔로라도 그 것들을 볼 수 있으면 크게 도움이 될 거 같습니다.
이 color의 사용례도 (소스 코드 문장 중에) 보여 주시면 대단히 감사하겠습니다.
(3. 더불어서, StopEndOfDay, StopInactivity 객체들의 예문도 짧게라도 보여 주시면 감사하겠습니다)
감사합니다.
2013-08-09
1043
글번호 222496
답변완료
옵션데이타 데이타베이스 저장
옵션 데이타를 개인데이타 베이스에 저장하려 합니다.
아래와 같이 수식을 만들었는데
장시작시 부터 장 종료시까지만 데이타를 등록하고자 하려면
무엇을 추가해야 할까요 ?
var CCode = new Array(101);
var PCode = new Array(101);
var CPrice = new Array(101);
var PPrice = new Array(101);
var SQL_C;
var SQL_P;
function Main_OnStart()
{
for(var i = -50; i <= 50; i++)
{
CCode[50+i] = Option.GetATMCallRecent(i);
PCode[50+i] = Option.GetATMPutRecent(i);
Main.ReqMarketData(CCode[50+i], 1,0);
Main.ReqMarketData(PCode[50+i], 1,0);
}
Main.SetTimer(1, 60 * 1000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
for(var i = 0; i <= 100; i++)
{
CPrice[i] = Option.GetCurrentByCode(CCode[i]);
PPrice[i] = Option.GetCurrentByCode(PCode[i]);
SQL_C = "OPTION_DATA (O_CODE, O_VALUE, O_TIME) VALUES ('" + CCode[i] + "' , " + CPrice[i] + ", SYSTIMESTAMP )";
SQL_P = "OPTION_DATA (O_CODE, O_VALUE, O_TIME) VALUES ('" + PCode[i] + "' , " + PPrice[i] + ", SYSTIMESTAMP )";
DataBase1.In$ert(SQL_C);
DataBase1.In$ert(SQL_P);
}
}
}
2013-08-05
517
글번호 222489
답변완료
ReqMarketData - 옵션 종목 시세 업데이트
아래 코드는 다른 분의 문의 내용에 답변 주신 내용입니다. 차트 신호 발생 시 현재 진입한 옵션 종목의 시세를 확인하고 주문하는 내용이었습니다.
한 가지 추가로 질문 드릴 내용은 차트 신호와 관계 없이 현재 진입 중인 옵션 종목의 현재 시세를 계속 업데이트하면서 확인하려면 어떻게 해야하는지요?
==============================================
var BuyCallCode;
var Sig;
var Request;
function Chart1_OnRiseSignal(Signal)
{
//발생된 신호종류 저장
Sig = Signal.signalKind;
//buy신호 발생하면
if (Sig == 1 )
{
//ATM 콜옵션 종목코드 저장
BuyCallCode = Option.GetATMCallRecent(0);
//BuyCallCode 종목객체 요청
//(종목코드는 BuyCallCode, 일봉갯수는 1개(전일것만), 수급데이터는 0개)
Main.ReqMarketData(BuyCallCode, 1,0);
//Request는 true(매수신호 발생 후 한번만 요청하기 위한 변수)
Request = true;
}
}
//요청한 종목객체 생성완료
function Main_OnRcvMarketData(MarketData)
{
//item에 수신받은 종목객체 저장
var item = MarketData;
//최근 buy신호 발생되었고
//Request는 true이고
//생성된 종목객체의 종목코드가 BuyCallCode와 같으면
if (Sig == 1 && Request == true && item.code == BuyCallCode)
{
//Request는 false
Request = false;
//현재가가 전일종가보다 크면
if (item.current > item.GetPrevClose(1));
{
//BuyCallPrice에 매도2호가 저장
var BuyCallPrice = item.Ask(2);
//BuyCallCode종목을 BuyCallPrice에 지정가 매수주문
Account1.OrderBuy(BuyCallCode, 1, BuyCallPrice, 0);
//주문 후 종목객체 삭제
Main.RemoveMarketData(item);
}
}
}
2013-08-05
550
글번호 222486
답변완료
엑셀 개체 관련 문의
var nSheetIndex = 1;
// 엑셀 시트에서 해당 구역 행을 삭제하면서 RowCount = 0 이 되기를 기대
// 행 전체를 삭제하려면 ?
XLSInventory.Clear(nSheetIndex, "A1", "Z65536");
for ( var i=0; i<10; i++) {
// RowCount = 1 부터 10 에 데이터가 추가되기를 기대
XLSInventory.SetRowData(nSheetIndex, "A"+( XLSInventory.GetRowCount(nSheetIndex) + 1 ), i,i*2,i*3,i*4);
Main.MessageList(XLSInventory.GetRowCount(nSheetIndex));
}
위 코드가 기대한대로 동작을 하지 않는데, 어떻게 해결해야 할런지요 ?
2013-08-02
671
글번호 222484