Anda di halaman 1dari 2

drop DateFile _merge

sort PERMCO Date


gen quarter=(mofd( Date)-mofd(mdy(3,12,1993)))/3+1
gen balance=1000
gen pastbalance=1000
gen StartShares=1000
gen InitialPortf=1000
gen TargetBalance=1000
gen ActualBalance=1000
gen Buy=1000
gen TradeCost=1000
gen sumcost=1000
gen expostreturn=1000
gen quarter=(mofd( Date)-mofd(mdy(3,12,1993)))/3+1
bysort Date: egen ew_spreat=mean(return)
forvalues x=1/88 {
if quarter=x {gen pastexpostreturn=expostreturn[_n-1]
replace pastbalance=balance[_n-1]
bysort Date: replace balance=pastbalance*(1+pastexpostreturn) if quarter>1
replace pastbalance=balance[_n-1]
bysort Date: replace balance=pastbalance if _n>1
replace StartShares=balance/prc
replace InitialPortf=balance*(1+return)
sort Date
replace TargetBalance=balance*(1+ew_spreat)
replace ActualBalance=StartShares*prc
replace Buy=-( ActualBalance- TargetBalance)/ bid
replace Buy=-(ActualBalance-TargetBalance)/ask if ActualBalance<= TargetBalance
replace TradeCost=(prc-bid)*Buy
replace TradeCost=-(prc-ask)*Buy if ActualBalance<= TargetBalance

bysort Date: replace sumcost=total(TradeCost)


replace expostreturn=ew_spreat+sumcost
}
}

Anda mungkin juga menyukai