예스스탁
예스스탁 답변
2020-06-25 17:32:11
안녕하세요
예스스탁입니다.
1
PercentProfit은 승률이 50이면 50으로 리턴됩니다.
grossprofit: 2384 원
grossloss: -721원
NumWinTrades :1회
NumLosTrades :1 회
위 내용으로 작성된 지표식입니다.
적용해 보시면 해당종목에서 주문가능수량이 오늘 모두 99이상입니다.
input:max투자금액(100000);
Var : value(0),accoundNum("내 계좌번호"),예수금(0),평균손익비(0),kellyBet(0),주문가능수량(0);
#kelly BET
AccoundNum = getAccount(0); #계좌번호를 AccoundNum에 저장
예수금 = GetUnclearedDeposits(AccoundNum); ##AccoundNum으로 지정한 계좌의 예수금
평균손익비 =(2384/1)/(-721/1);
kellyBet = (50-((1-50)/평균손익비))*max투자금액;
주문가능수량 = floor((kellyBet)/C);
plot1(주문가능수량);
2
시스템식에서는 plot명령어를 사용할수 없으므로
수식에서 계산하신 내용을 messagelog함수를 이용해 디벙깅창에 출력해 보실수 있습니다.
input:max투자금액(100000);
Var : value(0),accoundNum("내 계좌번호"),예수금(0),평균손익비(0),kellyBet(0),주문가능수량(0);
#kelly BET
AccoundNum = getAccount(0); #계좌번호를 AccoundNum에 저장
예수금 = GetUnclearedDeposits(AccoundNum); ##AccoundNum으로 지정한 계좌의 예수금
평균손익비 =(GrossProfit/NumWinTrades ) /(GrossLoss/NumLosTrades);
kellyBet = (PercentProfit-((1-PercentProfit)/평균손익비))*max투자금액;
주문가능수량 = floor((kellyBet)/C);
#매매시스템
-생략
# 매수/매도청산
IF "매매시스템 생략" Then
{ Buy("kelly-B",onclose,DEF,iff(isnan(예수금) == true,1,주문가능수량));
}// 실시간으로만 주문가능 (과거 예수금은 1로적용함)
MessageLog("PercentProfit %.2f kellyBet %.2f 주문가능수량 %.f",PercentProfit, kellyBet,주문가능수량);
즐거운 하루되세요
> 하운드독 님이 쓴 글입니다.
> 제목 : 주문수량 오류 ,percentprofit 단위 문의
> 금일 시스템을 소액으로 실전 백테스트 하던도중, 시스템 오작동으로 보이는
주문이 발생하여 문의드립니다.
Q1. 시스템 검토
시스템 테스트상 주문이 1주 나가야 하는데
금일 99주가 발생했더군요. (대략 100배)
그래서 랭귀지를 다시 검토중인데,
아래 시스템 상의 문제인지, HTS 전상상의 문제인지 검토 부탁드립니다.
(다행히 큰금액손실은 발생 안났습니다.)
주문번호는 25008 , 종목은 아미코젠
Q2. 약100배수량이 주문이 된것으로 봐선, percentprofit 의 단위가 50(%)인지, 0.5 인지에 따라
주문수량이 달라진것으로 보이는데,(추측)
단위가 뭐인가요?
시스템 금일 이전 성과
이전 승률 50%, (1승,1패)
grossprofit: 2384 원
grossloss: -721원
NumWinTrades :1회
NumLosTrades :1 회
----매매 시스템----
input:max투자금액(100000);
Var : value(0),accoundNum("내 계좌번호"),예수금(0),평균손익비(0),kellyBet(0),주문가능수량(0);
#kelly BET
AccoundNum = getAccount(0); #계좌번호를 AccoundNum에 저장
예수금 = GetUnclearedDeposits(AccoundNum); ##AccoundNum으로 지정한 계좌의 예수금
평균손익비 =(GrossProfit/NumWinTrades ) /(GrossLoss/NumLosTrades);
kellyBet = (PercentProfit-((1-PercentProfit)/평균손익비))*max투자금액;
주문가능수량 = floor((kellyBet)/C);
#매매시스템
-생략
# 매수/매도청산
IF "매매시스템 생략" Then
{ Buy("kelly-B",onclose,DEF,iff(isnan(예수금) == true,1,주문가능수량));
}// 실시간으로만 주문가능 (과거 예수금은 1로적용함)