답변완료
시스템 부탁드립니다~
안녕하세요 아래 답변 잘 받았습니다.
주말동안 스터디해서 예스스팟으로 전략을 작성했는데,, 검증이 안되내요.
부탁드리겠습니다
var cnt = 0;
function Main_OnStart()
{
Main.MessageLog("시작");
}
function Main _OnRiseSignal(Chart1,Signal) <- Chart1 완성시 시그널
{
if (var1==5 <- 시초 봉 5개 완료 후 진입
&&countif(GetClose <0 ,5)>=3 <- 시초 봉 5개 중 음봉 3개 이상 일때 진입
&& GetLow < GetLow(1) <- 진전봉의 저가 보다 이번봉의 저가가 낮을떄
&& GetClose <0 <- 음봉으로 종료
&& cnt=0)
{
cnt=1;
Main.OrderSell(Account_001, KQ150.code, 10 ,KQ150.Ask(1), 0);
Main.MessageLog("매도진입");
}
}
function Main_OnRiseSignal(Chart1,Signal)
{
if( GetClose >0 <-종가가 양봉으로 끝나고
&& GetHigh > GetHigh(1) <-직전 고가 보다 이번 고가가 높게 끝났을때
&& cnt=1)
{
cnt=0;
Main.OrderBuy(Account_001, KQ150.code, 10 , KQ150.Bid(1), 0);
Main.MessageLog("매도청산1");
}
}
function Main_OnRiseSignal(Chart1,Signal)
{
if( GetHigh(BarSinceEntry) < GetClose <- 진입 봉의 고가 보다 높은 종가로 끝나면 매도 청산
&& cnt=1)
{
cnt=0;
Main.OrderBuy(Account_001, KQ150.code, 10 , KQ150.Bid(1), 0);
Main.MessageLog("매도청산2");
}
}
AA= Account_001.GetTotalAvgCost(2,1) <- 선물, 매도포지션 계좌 평균 단가
BB= GetBid(KQ150,1) <- KQ150 종목의 매수 1호가
CC= BB/AA <- 스탑트레일링을 매수상대1호가 대비 계좌 평단가로 작성하고 싶습니다.
StopTrailing(0.2, 0.5, CALCMETHOD_PERCENT, 0) < CC를 수익률로 적용
StopEndOfDay (151500) <- 마지막 봉에 청산
2020-11-22
2538
글번호 225365
답변완료
예스 스팟 함수 관련 질문
YesLanguage로 시스템을 만들어서 테스트 하다 보니,
봉이 종료되어야만 주문이 들어간다는 것을 깨닫고
YesSpot으로 다시 만들어 보고 있습니다.
이에 몇가지 의문이 생겨 질문 드립니다.
1. 현재 주문 채결된 상태가 매수/매도 포지션을 알려주는 함수는 없나요?
기존 YesLanguage에서는 MarketPosition으로 처리했었는데, OnriseSignal 함수에서 오는 Signal 말고 별도로 알 수 있는 함수가 있는지 궁금합니다.
(YesLanguage의 시스템 적용을 하지 않고, YesSpot으로만 구현하려고 함)
2. 매수청산, 매도청산 함수에 대해 질문
OrderSell 하면 기존에 매수한 항목이 있으면 청산이 되나요?
기존 YesLanguage에서는 ExitBuy라는게 있어서 청산이 되었는데,
YesSpot에는 별도로 없는 것 같아 문의드립니다.
3. OrderBuy와 OrderSell항목이 계좌객체에도 있고 메인객체에도 있는데, 동일한 기능인지 궁금합니다.
2020-11-20
2692
글번호 225364
답변완료
오늘 패치이후 옵션객체가 조회가 안됩니다.
안녕하세요
function slectcode()
{
var UNum = Option1.uppersATM;
var LNum = Option1.lowersATM;
var upCallPrice = new Array(UNum + LNum + 1);
var upCallCode = new Array(UNum + LNum + 1);
var upPutPrice = new Array(UNum + LNum + 1);
var upPutCode = new Array(UNum + LNum + 1);
for(var i = -LNum; i <= UNum; i++)
{
if(Option1.GetCurrent(0,i) >= 1.5)
{
upCallPrice[i+LNum] = Option1.GetCurrent(0, i);
upCallCode[i+LNum] = Option1.GetATMCallRecent(i);
}
else
{
upCallPrice[i+LNum] = -1;
upCallCode[i+LNum] = -1;
}
}
for(var ii = -UNum; ii <= LNum; ii++)
{
if(Option1.GetCurrent(1, ii) >= 1.5)
{
upPutPrice[ii+UNum] = Option1.GetCurrent(1, ii);
upPutCode[ii+UNum] = Option1.GetATMPutRecent(ii);
}
else
{
upPutPrice[ii+UNum] = -1;
upPutCode[ii+UNum] = -1;
}
}
var upCC = 100;
upbuycallcode = -1;
for(var iii = -LNum; iii <= UNum; iii++)
{
Main.MessageLog(upCallPrice[iii+LNum]);
if(Math.abs(1.5 - upCallPrice[iii+LNum]) < upCC && upCallPrice[iii+LNum] != -1)
{
upCC = Math.abs(1.5 - upCallPrice[iii+LNum]);
upbuycallcode = upCallCode[iii+LNum];
}
}
var upPP = 100;
upbuyputcode = -1;
for(var iiii = -UNum; iiii <= LNum; iiii++)
{
if(Math.abs(1.5 - upPutPrice[iiii+UNum]) < upPP && upPutPrice[iiii+UNum] != -1)
{
upPP = Math.abs(1.5 - upPutPrice[iiii+UNum]);
upbuyputcode = upPutCode[iiii+UNum];
}
}
}
이렇게 로직을 사용하고있는데 옵션객체에서 모든종목이 -1로 들어오고있습니다.
원인이 무엇인가요
2020-11-18
2646
글번호 225357