Det snackas mycket om volume profile på nätet. Jag har inte satt mig in i exakt hur det fungerar egentligen, men gjorde en snabb test enligt min tolkning:
1. En eller flera toppar i volymen visar att marknaden omsatt mest pengar vid en viss prisnivå, vilket tolkas som den "rätta" prislappen enligt marknaden. Det låter rimligt, och borde därmed kunna utgöra en "vägdelare" för om man ska köpa eller blanka osv.
2. Testmodellen definierar topp i volym som 10 perioders EMA på volym, och en stapel i mitten ska vara högre än de båda staplarna till vänster och höger.
3. De fyra senaste topparna enligt definition i punkt 2 returnerar varsin prisnivå med Find()-kommandot. Dessa fyra prisnivåer vägs samman till en "medelnivå" som anses vara marknadens rätta pris på aktien. Priset ska alltså tendera att återvända till den här nivån.
4. En köpgräns skulle kunna definieras som prisnivån i punkt 3 minus 1 standardavvikelse för de senaste 20 staplarna. Om kursen når över senaste 5 staplarnas High men fortfarande är under köpgränsen köps aktien.
5. En säljgräns definieras som prisnivån i punkt 3 plus 1 standardavvikelse för de senaste 20 staplarna. Om kursen når över denna gräns och därefter faller under de två föregående staplarnas Low säljs aktien.
Ingen stoploss finns i systemet i nuläget, det är bara tänkt för att se om vi kan hitta en bra modell som kan användas generellt. Jag tänkte att forumet skulle kunna utveckla det och ta det vidare. Det kanske allra viktigaste till att börja med är ju att avgöra om min tolkning är någorlunda rätt, eller om jag är helt ute och cyklar.
Bifogar lite simulerade resultat.
i60(
vmed=ema(v,10)
vbota=and(lt(aref(vmed,2),aref(vmed,1)),lt(aref(vmed,2),aref(vmed,3)))
vbotb=and(lt(aref(vmed,3),aref(vmed,4)),lt(aref(vmed,4),aref(vmed,5)))
vbotc=and(vbota,vbotb)
vtoppa=and(gt(aref(vmed,2),aref(vmed,1)),gt(aref(vmed,2),aref(vmed,3)))
vtoppb=and(gt(aref(vmed,3),aref(vmed,4)),gt(aref(vmed,4),aref(vmed,5)))
vtoppc=and(vtoppa,vtoppb)
toppv1=find(vtoppc,100,aref(c,2),1)
toppv2=find(vtoppc,100,aref(c,2),2)
toppv3=find(vtoppc,100,aref(c,2),3)
toppv4=find(vtoppc,100,aref(c,2),4)
price=div(add(add(toppv1,add(toppv2,toppv3)),toppv4),4)
level=sub(price,stdev(c,20))
draw(price,2,dgqbw)
draw(level,3,bqbw)
draw(vmed,4,bav)
ej_innehav=le(portfolio(v),0)
köp1=and(and({vbotc}1,lt(c,level)),ej_innehav)
köp2=and(köp1,gt(c,hhv(aref(h,1),5)))
mult(köp2,10)
i60(
vmed=ema(v,10)
vbota=and(lt(aref(vmed,2),aref(vmed,1)),lt(aref(vmed,2),aref(vmed,3)))
vbotb=and(lt(aref(vmed,3),aref(vmed,4)),lt(aref(vmed,4),aref(vmed,5)))
vbotc=and(vbota,vbotb)
vtoppa=and(gt(aref(vmed,2),aref(vmed,1)),gt(aref(vmed,2),aref(vmed,3)))
vtoppb=and(gt(aref(vmed,3),aref(vmed,4)),gt(aref(vmed,4),aref(vmed,5)))
vtoppc=and(vtoppa,vtoppb)
toppv1=find(vtoppc,100,aref(c,2),1)
toppv2=find(vtoppc,100,aref(c,2),2)
toppv3=find(vtoppc,100,aref(c,2),3)
toppv4=find(vtoppc,100,aref(c,2),4)
price=div(add(add(toppv1,add(toppv2,toppv3)),toppv4),4)
level=add(price,stdev(c,20))
innehav=gt(portfolio(v),0)
sell1=and(hhv(gt(c,level),3),innehav)
sell2=and(sell1,lt(c,llv(aref(l,1),2)))
mult(sell2,10)
)
)
1. En eller flera toppar i volymen visar att marknaden omsatt mest pengar vid en viss prisnivå, vilket tolkas som den "rätta" prislappen enligt marknaden. Det låter rimligt, och borde därmed kunna utgöra en "vägdelare" för om man ska köpa eller blanka osv.
2. Testmodellen definierar topp i volym som 10 perioders EMA på volym, och en stapel i mitten ska vara högre än de båda staplarna till vänster och höger.
3. De fyra senaste topparna enligt definition i punkt 2 returnerar varsin prisnivå med Find()-kommandot. Dessa fyra prisnivåer vägs samman till en "medelnivå" som anses vara marknadens rätta pris på aktien. Priset ska alltså tendera att återvända till den här nivån.
4. En köpgräns skulle kunna definieras som prisnivån i punkt 3 minus 1 standardavvikelse för de senaste 20 staplarna. Om kursen når över senaste 5 staplarnas High men fortfarande är under köpgränsen köps aktien.
5. En säljgräns definieras som prisnivån i punkt 3 plus 1 standardavvikelse för de senaste 20 staplarna. Om kursen når över denna gräns och därefter faller under de två föregående staplarnas Low säljs aktien.
Ingen stoploss finns i systemet i nuläget, det är bara tänkt för att se om vi kan hitta en bra modell som kan användas generellt. Jag tänkte att forumet skulle kunna utveckla det och ta det vidare. Det kanske allra viktigaste till att börja med är ju att avgöra om min tolkning är någorlunda rätt, eller om jag är helt ute och cyklar.
Bifogar lite simulerade resultat.
i60(
vmed=ema(v,10)
vbota=and(lt(aref(vmed,2),aref(vmed,1)),lt(aref(vmed,2),aref(vmed,3)))
vbotb=and(lt(aref(vmed,3),aref(vmed,4)),lt(aref(vmed,4),aref(vmed,5)))
vbotc=and(vbota,vbotb)
vtoppa=and(gt(aref(vmed,2),aref(vmed,1)),gt(aref(vmed,2),aref(vmed,3)))
vtoppb=and(gt(aref(vmed,3),aref(vmed,4)),gt(aref(vmed,4),aref(vmed,5)))
vtoppc=and(vtoppa,vtoppb)
toppv1=find(vtoppc,100,aref(c,2),1)
toppv2=find(vtoppc,100,aref(c,2),2)
toppv3=find(vtoppc,100,aref(c,2),3)
toppv4=find(vtoppc,100,aref(c,2),4)
price=div(add(add(toppv1,add(toppv2,toppv3)),toppv4),4)
level=sub(price,stdev(c,20))
draw(price,2,dgqbw)
draw(level,3,bqbw)
draw(vmed,4,bav)
ej_innehav=le(portfolio(v),0)
köp1=and(and({vbotc}1,lt(c,level)),ej_innehav)
köp2=and(köp1,gt(c,hhv(aref(h,1),5)))
mult(köp2,10)
i60(
vmed=ema(v,10)
vbota=and(lt(aref(vmed,2),aref(vmed,1)),lt(aref(vmed,2),aref(vmed,3)))
vbotb=and(lt(aref(vmed,3),aref(vmed,4)),lt(aref(vmed,4),aref(vmed,5)))
vbotc=and(vbota,vbotb)
vtoppa=and(gt(aref(vmed,2),aref(vmed,1)),gt(aref(vmed,2),aref(vmed,3)))
vtoppb=and(gt(aref(vmed,3),aref(vmed,4)),gt(aref(vmed,4),aref(vmed,5)))
vtoppc=and(vtoppa,vtoppb)
toppv1=find(vtoppc,100,aref(c,2),1)
toppv2=find(vtoppc,100,aref(c,2),2)
toppv3=find(vtoppc,100,aref(c,2),3)
toppv4=find(vtoppc,100,aref(c,2),4)
price=div(add(add(toppv1,add(toppv2,toppv3)),toppv4),4)
level=add(price,stdev(c,20))
innehav=gt(portfolio(v),0)
sell1=and(hhv(gt(c,level),3),innehav)
sell2=and(sell1,lt(c,llv(aref(l,1),2)))
mult(sell2,10)
)
)
Comment