안녕하세요.
실전에서 잔고함수를 써서 당일의 진입수량을 아래와 같이 결정하려고 합니다.
금일 실전에 투입해보았는데, 예상한 수량이 아닌 1의 값으로 주문이 발생했더라구요(09:01~09:02에 주문발생)
장시작직후에는 잔고값이 수신전라서 그런건지, 이유를 모르겠습니다.
다른 차트에 시험적용해보면(messagelog) 지금도 원하는 수량으로 k값이 잘 나오는걸 확인할 수 있는데, 왜 저렇게 되는지 궁금합니다.
-----------------------------------------
AccoundNum = getAccount(1);
Value = GetUnclearedDeposits(AccoundNum);
k = max(1,int(0.5*value/(data3(CloseD(1))*10000*margin)));
if sTime <= 종료시간
and MarketPosition == 0 then
{
Sell("KQMT매도진입",AtLimit,dayclose(1),k);
}
답변 1
예스스탁
예스스탁 답변
2022-09-13 11:17:54
안녕하세요
예스스탁입니다.
잔고값이 수신전이라서 발생하는 내용일것 같습니다.
실제 계좌의 예수금필드가 장시작후 새로 업데이트 될수도 있습니다.
값 수신후에 신호가 발생하게 if 조건문에 value가 0보다 클다라는 조건을 추가하시기 바랍니다.
AccoundNum = getAccount(1);
Value = GetUnclearedDeposits(AccoundNum);
k = max(1,int(0.5*value/(data3(CloseD(1))*10000*margin)));
if sTime <= 종료시간
and MarketPosition == 0 and value > 0 then
{
Sell("KQMT매도진입",AtLimit,dayclose(1),k);
}
즐거운 하루되세요
> 건곤대 님이 쓴 글입니다.
> 제목 : 잔고함수
> 안녕하세요.
실전에서 잔고함수를 써서 당일의 진입수량을 아래와 같이 결정하려고 합니다.
금일 실전에 투입해보았는데, 예상한 수량이 아닌 1의 값으로 주문이 발생했더라구요(09:01~09:02에 주문발생)
장시작직후에는 잔고값이 수신전라서 그런건지, 이유를 모르겠습니다.
다른 차트에 시험적용해보면(messagelog) 지금도 원하는 수량으로 k값이 잘 나오는걸 확인할 수 있는데, 왜 저렇게 되는지 궁금합니다.
-----------------------------------------
AccoundNum = getAccount(1);
Value = GetUnclearedDeposits(AccoundNum);
k = max(1,int(0.5*value/(data3(CloseD(1))*10000*margin)));
if sTime <= 종료시간
and MarketPosition == 0 then
{
Sell("KQMT매도진입",AtLimit,dayclose(1),k);
}