Hi Neko,
Below is the modified awk script.
Notice I added a "vcontrol" and "vshares" to track virtual shares. I defaulted to twice the control, but you can change it to any amount ( a multiple of control or an absolute number like "vcontrol = 1300").
It calculates the new virtual shares and then adds or subtracts actual shares based on the change to virtual shares. (it uses oshares and ovshares to store the old value).
So if virtual shares go up by 300, then you would buy 300 shares.
BEGIN {
control = 2000
vcontrol = 2 * control
cash = control
orig = control
}
{
price = $1
value = shares * price + cash
ovshares = vshares
oshares = shares
vshares = int(vcontrol / price)
if (vshares > ovshares)
shares = oshares + (vshares - ovshares)
else
shares = oshares - (ovshares - vshares)
if (shares < 0)
shares = 0
cash = value - shares * price
if (cash < 0)
{
value += -1*cash
orig += -1*cash
cash = 0
}
print price" "shares" "cash" "value" "orig
}