Allmänt meddelande

Collapse
No announcement yet.

Bygga index

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Bygga index

    Kod för att bygga ett index mot de aktieurval man testar mot.

    Den räknar hur många aktier aktieurvalet har, gör ett jämnviktat köp av alla aktier. Ombalanserar en gång om året. Dyker det upp en ny aktie under året så köps den först vid nästa årsskifte.

    La in data check skriptet från ROC and Roll, ni får testa lite, kanske inte är nödvändigt att använda.

    Som prisskript används "Senast Betalt"

    Kod:
    {Bygg eget Index köp skript-2022-11-25}
    
    OMX=eqv(crcid(),468276556)
    
    datesame=eqv(int(d),int(ref(d,1)))
    dagar_data=sum(not(datesame),250)
    
    samma_dag=ge(int(d),sub(int(date()),2))
    
    days=sum(not(eqv(c,aref(c,1))),30)
    kontinuitet=and(mult(sum(not(eqv(d,aref(d,1))),20),and(eqv(int(d),int(date())),gt(days,20))),gt(int(aref(d,12)),sub(int(date()),25)))
    data_ok=and(and(and(samma_dag,gt(dagar_data,21)),kontinuitet),not(OMX))
    
    nolla=eqv(xtime(date(),h),9)
    setgvarif(0,1660,nolla)
    setgvarif(0,1661,nolla)
    setgvarif(0,1662,nolla)
    
    Antal_Aktie=getgvar(1660)
    aktie_id=getgvar(1661)
    aktie_stop=getgvar(1662)
    setgvarif(1,1662,eqv(aktie_id,crcid()))
    setgvarif(add(Antal_Aktie,1),1660,and(le(aktie_stop,0),data_ok))
    setgvarif(crcid(),1661,le(aktie_id,0))
    
    handelstid=eqv(xtime(date(),h),11)
    ej_innehav=le(portfolio(v),0)
    nytt_år=not(eqv(aref(yearnumber(),1),yearnumber()))
    trigger=and(and(and(and(ej_innehav,nytt_år),not(OMX)),handelstid),data_ok)​
    Kod:
    {Bygg eget Index sälj-skript 2022-11-25}
    
    nytt_år=not(eqv(aref(yearnumber(),1),yearnumber()))
    handelstid=eqv(xtime(date(),h),11)
    ej_sälj_samma_dag=gt(aref(d,1),lasttrade(b,d))
    innehav=gt(portfolio(v),0)
    
    trigger=and(and(and(gt(portfolio(v),0),nytt_år),ej_sälj_samma_dag),handelstid)​
    Kod:
    hävstång=div(1,getgvar(1660))
    
    konto=sub(add(cash(a),cash(t)),mult(2,abs(cash(s))))
    insats=mult(mult(int(div(konto,c)),1),hävstång)
    int(insats)​

    För att få ut kontovärde varje dag så används följande Dummy modell. Inget antal skript behövs, välj köp 1 och sälj 1 med prislimit 1kr i Modellen.

    Kod:
    {Dummy köp OMX}
    i1(
    ej_samma_dag=gt(int(d),lasttrade(b,d))
    stängning=le(mult(1440,sub(market(c),frac(date()))),7)
    ej_innehav=le(portfolio(v),0)
    OMX=eqv(crcid(),468276556)
    and(and(OMX,and(ej_innehav,gt(int(d),lasttrade(b,d)))),stängning)
    )​
    Kod:
    {Dummy sälj OMX}
    i1(
    innehav=gt(portfolio(v),0)
    OMX=eqv(crcid(),468276556)
    and(OMX,and(innehav,gt(int(d),lasttrade(s,d))))
    )​
    AlgoPal - Emotionless Trading - Hyr ut våra trading algoritmer for Autostock via algopal.com
Working...
X