If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
Här kommer mina egenhändigt byggda Fusion slavscript. Utöver de fyra slavscripten har jag även behövt bygga om de fyra antalscripten. Notera att det kanske inte är den allra mest tjusiga kodningen, men den verkar fungera. OBS, jag tar inget ansvar för kodens funktion och om ni väljer att använda denna kod så gör ni det på egen risk!
Mina mål med slavscripten för följande:
1. Jag vill styra positionens gearing genom att sätta ett värde (målgearingen) i en Scrpar.
2. Jag vill kunna göra manuella justeringar i positionen utan att riskera att modellen återställer positionen automatiskt.
3. Då den sammanlagda signalen ändras, dvs. värdet i cell 857 ändras, ska hela innehavet "resettas" till ny beräknad position (baserad på portföljvärde och målgearing)
Hej,
några kommentarer, har inte direkt någon åsikt om hur det implementeras, men om det t.ex. går att implementera på enklare sett så brukar jag föredra det, ser att det är en del globala celler i bruk för att uppnå målen.
mål 1
Jag tänkte man kunde hushålla med Scrpar och antar antar att gearing 1 är det samma som att handla index för hela portföljen utan hävstång. Så med en logikändring att dela index med minifuture pris, Så skulle man kunna använda den befintliga Scrpar inputten, där man anger "-" för att representera portföljen i procent så borde man uppnå samma sak. Vill man ha gearing 3, så blir det -300 dvs 300% exponering av portföljen. Dom som vill fortsätta handla fast belopp kan göra det utan "-". Dom som idag hanlar med % av portfölj borde uppskatta hävstångsanpassningen.
Mål 2
Absolut en bra sak/trygghet att kunna sälja av / ändra position om nöden kräver.
Mål 3
Vad är syftet med reset? är det beräkning, optimering, ränta på ränta eller något sådant?
Mål 3 innebär ju helt enkelt att då signalen ändras görs en ny beräkning av målposition samt att den implementeras. Ett exempel, om man ligger 100% Long, men så känns det fel och man säljer av t.ex. 75% av innehavet. Om sedan signalen ändras till t.ex. 50% Long så köps en del av Long-instrumenten tillbaka så att man uppnår exakt 50% Long med vald gearing baserat på det aktuella portföljvärdet.
Fungerar dina modeller bra är det nog ingen mening att ändra. Jag moddade lite för att få ner antalet celler till två. Tror den uppfyller samma villkor som din. Förutsätter att bara Fusion handlas på depån och att varje ny signal tas. Va) scripten handlar till målantal i cell 859. Tog bara med Bull och Bear fungerar på liknande sätt.
Édit: Kanske var lite snabb. Såg att säljmodellen max får sätta signal till 0(exit) så att eventuell blankning kan ske. Markerat med blått.
KÖP BULL
======
i1(
{handelstider mm }
lt1=LastTrade(b,d)
MinSedanTrans=mult(sub(date(),lt1),1440)
TidSpärr=gt(MinSedanTrans,0.2)
trade_time=le(mult(1440,sub(market(c),frac(date()))),5.5)
öppet=ge(mult(1440,sub(market(c),frac(date()))),4)
samma_dag=eqv(int(date()),int(d))
släpp_order=and(and(and(TidSpärr,trade_time),öppet),samma_dag)
{ Läs in signal och kontrollera om ändring }
hämtasignal=div(getgvar(857),2)
köpsignal1=and(and(gt(hämtasignal,0),lt(GetGvar(858),hämtasignal)),släpp_order)
köpsignal2=and(köpsignal1,or(eqv(cash(a),0),gt(portfolio(v),0)))
Hendrik
Du skrev "Förutsätter att bara Fusion handlas på depån och att varje ny signal tas."
Jag kanske tolkat fel, men det låter som en väldig begränsning,
Jag tror många kan ha andra positioner än Fusion på depån, det borde vara ett krav att man kan ha ialla fall (Mål), menar du att det inte går?
Lika så kan man ju missa signal. Då kan man väll handla manuellt eller vänta på nästa..
Upptäckte att AutoTrade var avslagen 10-15 minuter och har ett litet glapp. Ser dock vid analysen att Fusion ligger fortfarande 100%. Skulle uppskatta ifall någon kunde posta hur Fusion agerar lite närmare stängning
Upptäckte att AutoTrade var avslagen 10-15 minuter och har ett litet glapp. Ser dock vid analysen att Fusion ligger fortfarande 100%. Skulle uppskatta ifall någon kunde posta hur Fusion agerar lite närmare stängning
Får också 100% Long, om du missat lite intradaydata påverkar det inte Fusion så länge dagsstapelns utseende inte ändrats, dvs High, Low, Open och Close strax innan stängning är det som avgör vad som händer.
Ursprungligen postat av Rikard AutostockVisa inlägg
Får också 100% Long, om du missat lite intradaydata påverkar det inte Fusion så länge dagsstapelns utseende inte ändrats, dvs High, Low, Open och Close strax innan stängning är det som avgör vad som händer.
Tack så mycket :-)
Uppdaterar kurserna ikväll så att ordningen blir återställd.
Det går med min kod (även om det inte är definierat som ett mål).
Det är lite olika om man kör en strategi per depå eller mixar.
Jag har justerat min så att den kan handla även om flera instrument finnas på depån. Christer, det kan fungera för dig. Problem kan dock uppstå med din beräkning av kapital. Egetkapital måste beräknas enligt den vanliga formeln. Om minifuture för strategin utgör en stor andel och inte handlas ofta måste cash(a) justeras. Tex add(sub(cash(a),mult(portfolio(v),c)),mult(portfolio(v),b)). Eventuellt kan man handla i två steg. Först en liten andel för att för att få fram marknadsvärdet. Om strategin utgör en mindre andel av depån kommer återinvesteringen bero på hela depån. Då kan man nästa handla belopp och justera med hävstång.
har tittat på antalskriptet i tidigare inlägg och justerat baserat på återanvändande av Scrpar21 så den hävstångsanpassas (-xxx% av portfölj). enligt min kommentar till Mål 1.
i1(
signal=div(getgvar(857),2)
insats1=div(abs(scrpar(21)),100) { beräkna på depåvärde: positioner+tillgängligt-utnyttjad kredit}
insats2=mult(sub(add(cash(a),cash(t)),cash(u)),insats1)
Index=cmpref(c,0,A)
hävstång=div(Index,s)
insats3=div(insats2,hävstång) { om beräknat belopp överstigger tillgängligt att handla, använd tillgängligt belopp istället}
insats4=if(ge(insats3,cash(t)),cash(t),insats3)
{handla för fast belopp eller hävstångsanpassad % av depån}
insats5=if(gt(scrpar(21),0),scrpar(21),insats4)
maxantal=Int(Div(insats5,s))
målantal=mult(if(gt(signal,0),signal,0),maxantal)
innehav=Portfolio(v)
övermål=Ge(innehav,målantal)
slutantal1=If(övermål,0,SUB(målantal,innehav))
add(0,slutantal1)
)
{@A(0,OMX Stock )}
Comment