첨부 이미지
그림1
그림2
안녕하세요.
매수: 매수신호 발생시 1호가 단위로 나눠서 분할매수 로직+ 투자금 1천만원
표제건관려하여, 투입금액(분할매수 최대금액)이 어느 정도 이상 올라가니,
수익률이 0%이되는 현상이 발생하네요.테스트는 30분봉으로 했고요.
상식적으로 이해가 안되는 상황이라,
제 수식에 문제 가 있거나, HTS상의 문제가 있어보입니다.
첨부 사진 보시면 알겠지만, 투자금액이 어느정도 이상되면 수익금이 0가 됩니다.
혹시 투자금액 한도 같은 게 걸려있나요?
-----인용------
Input : 금액(10000000),
#할당
//value = 매매기준(Period); //매매기준
var1 = int(금액*(1/9)/C); // 1번째 주문수량,다이아몬드형
var2 = Int(금액*(2/9)/C);
Var3 = Int(금액*(3/9)/C);
Var4 = Int(금액*(2/9)/C);
Var5 = Int(금액*(1/9)/C);
# 매수/매도청산
if CrossUP(매매기준, 매수선)//무포시 1차매수
then
buy("매수1",OnClose,def,Var1); //Buy("신호명", 신호타입, 가격조건, 수량)
if MarketPosition == 1 && BarsSinceEntry< Entry봉시간제한
Then// 1차 매수후 나머지 4분할 매수
{
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*1*buypriceunit Then //2틱하락시
buy("매수2",AtLimit,EntryPrice-PriceScale*1*buypriceunit,Var2); // 2차매수
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*2*buypriceunit Then
buy("매수3",AtLimit,EntryPrice-PriceScale*2*buypriceunit,Var3);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*3*buypriceunit Then
buy("매수4",AtLimit,EntryPrice-PriceScale*3*buypriceunit,Var4);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*4*buypriceunit Then
buy("매수5",AtLimit,EntryPrice-PriceScale*4*buypriceunit,Var5);
}
답변 1
예스스탁
예스스탁 답변
2020-05-06 10:44:24
안녕하세요
예스스탁입니다.
시스템 트레이딩 설정창의 피라미딩 탭하단에서
진입설정을 크게 지정해 보시기 바랍니다.
한번 혹은 수량 누적시 일정이상의 수량이나 횟수를 넘어가면
신호발생이 되지 않게 하는 옵션입니다.
즐거운 하루되세요
> 하운드독 님이 쓴 글입니다.
> 제목 : 분할매수 , 매수금액 최적화 시뮬레이션 오류.
> 안녕하세요.
매수: 매수신호 발생시 1호가 단위로 나눠서 분할매수 로직+ 투자금 1천만원
표제건관려하여, 투입금액(분할매수 최대금액)이 어느 정도 이상 올라가니,
수익률이 0%이되는 현상이 발생하네요.테스트는 30분봉으로 했고요.
상식적으로 이해가 안되는 상황이라,
제 수식에 문제 가 있거나, HTS상의 문제가 있어보입니다.
첨부 사진 보시면 알겠지만, 투자금액이 어느정도 이상되면 수익금이 0가 됩니다.
혹시 투자금액 한도 같은 게 걸려있나요?
-----인용------
Input : 금액(10000000),
#할당
//value = 매매기준(Period); //매매기준
var1 = int(금액*(1/9)/C); // 1번째 주문수량,다이아몬드형
var2 = Int(금액*(2/9)/C);
Var3 = Int(금액*(3/9)/C);
Var4 = Int(금액*(2/9)/C);
Var5 = Int(금액*(1/9)/C);
# 매수/매도청산
if CrossUP(매매기준, 매수선)//무포시 1차매수
then
buy("매수1",OnClose,def,Var1); //Buy("신호명", 신호타입, 가격조건, 수량)
if MarketPosition == 1 && BarsSinceEntry< Entry봉시간제한
Then// 1차 매수후 나머지 4분할 매수
{
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*1*buypriceunit Then //2틱하락시
buy("매수2",AtLimit,EntryPrice-PriceScale*1*buypriceunit,Var2); // 2차매수
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*2*buypriceunit Then
buy("매수3",AtLimit,EntryPrice-PriceScale*2*buypriceunit,Var3);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*3*buypriceunit Then
buy("매수4",AtLimit,EntryPrice-PriceScale*3*buypriceunit,Var4);
if Lowest(L,BarsSinceEntry) < EntryPrice-PriceScale*4*buypriceunit Then
buy("매수5",AtLimit,EntryPrice-PriceScale*4*buypriceunit,Var5);
}