커뮤니티

계약수 수식 문의

프로필 이미지
cetvet
2011-02-08 11:41:42
904
글번호 35536
답변완료
초기자본금 방식으로 mdd 의 1.5배와 계약당 증거금의 합만큼 자본이 증가할 경우 1계약을 늘리는 수식에서, mdd를 계약수와 함께 증가시키면서 설정하고 싶습니다. 즉, 자본이 쌓일 수록 좀더 보수적으로 더디게 계약수 증가를 하고자 하는 것이죠. 1. 최대계약수가 200개일때 아래와 같은 수식에 덧붙여 늘어나는 계약수와 연동하여 mdd가 일정비율만큼 점증하는 수식을 조언해 주시면 감사하겠습니다. 2. 또 데이시스템에서 아래와 같은 수식에서 일중에 선물가격이 크게 변할때 계약수도 일중에 증감할 수 있는 우려가 있습니다. 하루에 하나의 고정된 계약수가 장시작시점에 결정될 수 있도록 조언도 부탁드립니다. Input: fraction(0.05); Var: qty(0), capital(50000000), margin(0.15), maxqty(200), mdd(20); qty = int((capital+NetProfit*500000)/(Close*500000*margin+mdd*1.5*500000)); mdd = qty*fraction + mdd; --> 이렇게 하니까 몇일 안가서 qty가 0으로 떨어져 버렸습니다. if qty < maxqty then { qty = qty; } else { qty = maxqty; } If qty < 1 or capital+NetProfit*500000 < Close*500000*margin then { qty = 0; } else { qty = 1; }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-02-08 18:01:28

안녕하세요 예스스탁입니다. 1. 수식상의 mdd = qty*fraction + mdd; 내용은 기존의 MDD값에 매봉 계산되는 qty*fraction을 더하라는 의미입니다. 즉 var1 = var1+1; 과 같이 작성하면 매봉 1씩 누적되어 값이 1,2,3,4,5,6,~~ 와 같이 증가하는 것처럼 mdd값도 매봉 증가하게 됩니다. 그러므로 qty = int((capital+NetProfit*500000)/(Close*500000*margin+mdd*1.5*500000)); 에서 분모의 값이 매봉 커져 일정 봉이 지나면 분자보다 커지므로 값이 1이하가 나오게 되고 아래 수식에 의해 qyt는 0이 되게 됩니다. If qty < 1 or capital+NetProfit*500000 < Close*500000*margin then { qty = 0; } else { qty = 1; } 해당 내용은 mdd의 증가방식을 다르게 처리하셔야 할것 같습니다. 해당 내용은 저희쪽에서 임의로 처리가 가능하지 않으므로 다른 계산식 내용으로 변경하셔야 합니다. 2. 해당 내용은 첫봉에서 qyt계산식을 다른 변수에 저장하여 해당 변수값을 수량으로 사용하면 해결됩니다. 즐거운 하루되세요 > cetvet 님이 쓴 글입니다. > 제목 : 계약수 수식 문의 > 초기자본금 방식으로 mdd 의 1.5배와 계약당 증거금의 합만큼 자본이 증가할 경우 1계약을 늘리는 수식에서, mdd를 계약수와 함께 증가시키면서 설정하고 싶습니다. 즉, 자본이 쌓일 수록 좀더 보수적으로 더디게 계약수 증가를 하고자 하는 것이죠. 1. 최대계약수가 200개일때 아래와 같은 수식에 덧붙여 늘어나는 계약수와 연동하여 mdd가 일정비율만큼 점증하는 수식을 조언해 주시면 감사하겠습니다. 2. 또 데이시스템에서 아래와 같은 수식에서 일중에 선물가격이 크게 변할때 계약수도 일중에 증감할 수 있는 우려가 있습니다. 하루에 하나의 고정된 계약수가 장시작시점에 결정될 수 있도록 조언도 부탁드립니다. Input: fraction(0.05); Var: qty(0), capital(50000000), margin(0.15), maxqty(200), mdd(20); qty = int((capital+NetProfit*500000)/(Close*500000*margin+mdd*1.5*500000)); mdd = qty*fraction + mdd; --> 이렇게 하니까 몇일 안가서 qty가 0으로 떨어져 버렸습니다. if qty < maxqty then { qty = qty; } else { qty = maxqty; } If qty < 1 or capital+NetProfit*500000 < Close*500000*margin then { qty = 0; } else { qty = 1; }