커뮤니티

한가지만 더 여쭤 볼께요 ^^

프로필 이미지
jarlye
2013-08-08 17:14:48
152
글번호 66254
답변완료
한가지만 더 여쭤 볼께요 ^^ if stime == 145900 Then exitlong("bx1",AtMarket,def,"",int(MaxContracts*0.2),1); MaxContracts*0.2 는 잔고의 20%를 청산한다는 뜻이죠? 그럼 잔고가 4개라고 하면 20% 인 0.8개가 아니라 올림하여 1개가 청산이 되나요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-08-08 17:28:53

안녕하세요 예스스탁입니다. int는 계산값 중 정수값만 취하게 됩니다. 0.8이므로 0입니다. 청산 수량이 0으로 셋팅이 되므로 해당 청산식 동작을 하지 않습니다. 만약 반올림하여 1로 만들어 1개를 청산하고자 하시면 int(MaxContracts*0.2) 대신에 round(MaxContracts*0.2,0)를 사용하셔야 합니다. 물론 반올림값이므로 0.5 미만은 0으로 처리되어 수량이 0이 되어 청산식 동작하지 않습니다. 즐거운 하루되세요 > jarlye 님이 쓴 글입니다. > 제목 : 한가지만 더 여쭤 볼께요 ^^ > 한가지만 더 여쭤 볼께요 ^^ if stime == 145900 Then exitlong("bx1",AtMarket,def,"",int(MaxContracts*0.2),1); MaxContracts*0.2 는 잔고의 20%를 청산한다는 뜻이죠? 그럼 잔고가 4개라고 하면 20% 인 0.8개가 아니라 올림하여 1개가 청산이 되나요?